文章目录
- 1.数据库
- 1.1数据库简介
- 1.2MySQL数据库的优点
- 1.3SQL简介
- 1.4如何修改MySQL命令提示符
- 1.5MySQL常用命令
- 1.6MySQL的语法
- 1.6MySQL的一些语句
- 2.数据库操作
- 3.mysql中的数据类型
- 3.1整数类型
- 3.2浮点类型
- 3.3字符串类型
- 3.4日期时间类型
- 3.5二进制类型
- 3.6如何表示布尔类型
- 4.存储引擎
- 4.1查看存储引擎
- 4.2存储引擎优缺点及选择
- 5.数据表的创建
- 5.1什么是数据表
- 5.2创建数据表
- 5.3数据表相关操作
1.数据库
1.1数据库简介
①数据库
数据库(database)就是存储数据的仓库,为了方便数揭数据的存储和管理,将数据按照特定的规律存储在磁盘上。通过数据库管理系统,有效地组织和管理存储在数据库中的数据。
②数据库系统
数据库系统和数据库不是—个概念,数据库系统(DBS) 比数据库大很多,由数据库、数据库管理系统、应用开发工具构成。
③数据库管理系统
数据库管理系统(DataBase Management System),简称DBMS,用来定义数据、管理和维护数据的软件。它是数据库系统的一种重要的组成部分。
1.2MySQL数据库的优点
- 开放源代码
- 跨平台性好
- 开源免费
- 功能强大使用方便
1.3SQL简介
①SQl
Structured Query Language简称SQL,结构化查询语言,数据厍管理系统通过SQL语言来管理数据库中的数据。
②SQL语言的组成部分
- DDL(Data Defination Language):数据定义语言,主要用于定义数据库、表、视图、索引和触发器等像DROP、 CREATE、ALTER等语句
- DML(Data Manipulation Language):主要包括对数据的增删改。INSERT插入数据、UPDATE更新数据、DELETE删除数据
- DQL(Data Query Language):数据检索语句,用来从 表中获得数据,确定数据怎样在应用程序中给出,像SELECT查询数
- DCL(Data Control Language):数据控制语言,主要用于控制用户的访问权限,像GRANT、REVOKE、COMMIT、ROLLBACK等语句。
1.4如何修改MySQL命令提示符
连接客户端时通过参数指定:-uroot -proot --prompt提示符
连接上客户端后,通过prompt命令修改:prompt提示符
命令提示符常用参数:
\D:完整的日期
\d:当前数据库
\h:服务器名称
\u:当前用户名
1.5MySQL常用命令
SELECT VERSION();显示当前版本
SELECT NOW();显示当前日期时间
SELECT USER();显小当前用户
1.6MySQL的语法
关键字与函数名称全部大写
数据库名称、表名称、字段名称等全部小写
SQL语句必须以分隔符结尾(;或者\g 也可以进行修改)
SQL语句支持折行操作,但不能把单词、标记或引号字符串分割为两部分
数据库名称、表名称、字段名称等尽量不要使用MySQL的保留字,如果需要使用的时候需要使用反引号(``)将名称括起来
1.6MySQL的一些语句
\c:不执行当前语句
DELIMITER //:将命令分隔符修改为两个斜线
\T 保存路径\文件名称:将所写的命令保存到当前的文本文件中
\t:结束文本日志
2.数据库操作
--创建数据库和指定编码方式
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name[[DEFAULT] CHARACTER SET [=] charset_name]
--查看警告
SHOW WARNINGS;
--查看当前数据库
SHOW {DATABASES|SCHEMAS}
--查看指定数据库的定义
SHOW CREATE{DATABASE|SCHEMA}db_name
--修改指定数据库的编码方式
ALTER DATABASE bd_name [DEFAULT] CHARACTER SET [=] charset_name
--打开指定数据库
USE db_name
--当前打开数据库名称
SELECT DATABASE()
--删除指定的数据库
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name
--使用帮助
help
?
\h
3.mysql中的数据类型
3.1整数类型
3.2浮点类型
3.3字符串类型
3.4日期时间类型
3.5二进制类型
用于保存二进制数据,比如视频格式还有图片格式(但通常使用路径来储存所以不怎么用得到)
3.6如何表示布尔类型
TINYINT(1)
4.存储引擎
存储引擎指的是表的类型,不同的存储引擎决定了表在计算机中的存储方式
4.1查看存储引擎
4.2存储引擎优缺点及选择
① innoDB(默认的引擎)
优:
- 支持事务处理也支持外界
- 支持崩溃修复能力和并发控制
缺:
- 读写效率差
- 占用空间大
适用场景:
- 更新密集的表:InnoDB存储引擎特别适合处理多重并发的更新请求。
- 事务:InnoDB存储引擎是唯一支持事务的标准MySQL存储引擎,这是管理敏感- 数据(如金融信息和用户注册信息)的必须软件
- 自动灾难恢复:与其他存储引擎不一样,InnoDB表能够自动从灾难中恢复。虽然MyISAM表也能在灾难后修复,但其过程要长的多
- 如对事务完整性要求较高并实现并发控制则选择
- 频繁更新删除,因为支持事务提交和回滚
② MyISAM
优:
- 插入数据速度快
- 空间内存使用比较低
缺:
- 不支持事务,事务完整性并发性要求不重要情况下使用
适用场景:
- 只用于插入、存储和读取就选择
③ memory
优:
- 将数据存储在内存中数据的处理速度快
缺: - 不能建立太大的表
- 安全性不高
适用场景: - 需要很快读写速度但对安全性不高可以选择
- 生命周期短一次性的比较合适
总结:
同一个数据库中可以使用多种数据引擎的表
较高数据处理innodb
查询写入速度快myisam
查询临时表memory,使用完成后释放掉
5.数据表的创建
5.1什么是数据表
数据表是数据库最重要的组成部分之一,是其它对象的基础,是存储数据的数据结构
数据表由行(row)和列(column)构成的二维网络
数据表一定先有表结构,再有数据
5.2创建数据表
mysql> CREATE TABLE [IF NOT EXISTS] tbl name( 字段名称字段类型[完整性约束条件]...)ENGINE=引擎名称CHARSET=编码方式;
# 举例
->CREATE TABLE IF NOT EXISTS user (
->id SAMLLINT,
->username VARCHAR(20),
->age TINYINT,
->married TINYINT(1) COMMENT '0代表未婚,非0代表已婚' # 给字段添加注释的方法
) ENGINE=INNODB CHARSET=UTF8;
Query OK, 0 rows affected
mysql> SHOW TABLES;
+----------------+
| Tables_in_sjk1 |
+----------------+
| user |
+----------------+
1 row in set
5.3数据表相关操作
--临时转变客户端的方式
SET NAMES GBK
--查看擦好看数据库下的数据表
SHOW TABLES
--查看指定表的表结构
DECS tbl_name
DESCRIBE tbl_name
SHOW COLUMNS FROM tbl_name
--查看数据类型取值范围
?MEDIUMINT
--向表中插入记录
INSERT tbl_name VALUE|VALUES(值,....);#如果超过范围则插入记录不成功
--查询表中所有记录
SELECT * FROM test1;
--测试无符号
CREATE TABLE IF NOT EXISTS user (
num1 TINYINT UNSIGNED, #取值范围从-128到127变成0到255
num2 TINYINT
);
--测试ZEROFILL
mysql> CREATE TABLE IF NOT EXISTS user9(
-> id TINYINT(5) ZEROFILL,
-> name TINYINT);
Query OK, 0 rows affected (0.03 sec)
mysql> INSERT user9 VALUES(1,3);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM user9;
+-------+------+
| id | name |
+-------+------+
| 00001 | 3 |
+-------+------+
1 row in set (0.00 sec)
#如果规定了显示长度是2位但是存储123只要不超过他的存储范围也是可以的