慕课网视频教程《与MySQL的零距离接触》 的一些笔记。
一、MySQL初涉
1. 启动/关闭MySQL服务
2. 登录MySQL
参数 |
描述 |
-D, –database=name |
打开指定数据库 |
–delimiter = name |
指定分隔符 |
-h, –host=name |
服务器名称 |
-p, –password[=name] |
服务器名称 |
-P, –port=# |
端口号 |
–prompt=name |
设置提示符 |
-u, –user=name |
用户名 |
-V, –version |
输出版本信息且退出 |
3. 退出MySQL
mysql> exit;
mysql> quit;
mysql> \q;
4. 修改提示符
- 连接客户端时通过参数指定
mysql -uroot -proot --prompt 提示符
- 连接完成之后,通过prompt命令修改
参数 |
描述 |
\D |
完整的日期 |
\d |
当前数据库 |
\h |
服务器名称 |
\u |
当前用户 |
5. 常用命令
6. 创建数据库
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name
7. 查看当前服务器下的数据库列表
SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | 'WHERE expr']
8. 修改数据库
ALTER {DATABASES | SCHEMAS} [db_name] [DEFAULT] CHARACTER SET[=] charset_name
9. 删除数据库
DROP {DATABASES | SCHEMAS} [IF EXISTS] db_name
二、数据类型与操作数据表
1. 整型
数据类型 |
存储范围 |
字节 |
TINYINT |
有符号值:-2^7 ~ 2^7-1 , 无符号值:0 ~ 2^8-1 |
1 |
SMALLINT |
有符号值:-2^15 ~ 2^15-1, 无符号值:0 ~ 2^16-1 |
2 |
MEDIUMINT |
有符号值:-2^23 ~ 2^23-1, 无符号值:0~2^24-1 |
3 |
INT |
有符号值:-2^31 ~ 2^31-1, 无符号值:0~2^32-1 |
4 |
BIGINT |
有符号值:-2^63 ~ 2^63-1, 无符号值:0~2^64-1 |
8 |
2. 浮点型
数据类型 |
存储范围 |
FLOAT[(M,D)] |
M-数字总位数,D-小数点之后的位数 |
DOUBLE[(M,D)] |
M-数字总位数,D-小数点之后的位数 |
3. 日期时间型
列类型 |
存储需求 |
YEAR |
1 |
TIME |
3 |
DATE |
3 |
DATETIME |
8 |
TIMESTAMP |
4 |
4. 字符型
列类型 |
存储需求 |
CHAR(M) |
M个字节,0<=M<=255 |
VARCHAR |
L+1字节,L<=M且0<=M<=65535 |
TINYTEXT |
L+1字节,L<2^8 |
TEXT |
L+2字节,L<2^16 |
MEDIUMTEXT |
L+3字节,L<2^24 |
LONGTEXT |
L+4字节,L<2^32 |
ENUM(‘value1’,’value2’,…) |
1或2字节 |
SET(‘value1’,’value2’,…) |
1,2,3,4或8字节 |
5. 创建数据表
CREATE TABLE [IF NOT EXISTS] table_name (column_name data_type,...)
栗子:
mysql> CREATE TABLE tb1(
-> username VARCHAR(20),
-> age TINYINT UNSIGNED,
-> salary FLOAT(8,2) UNSIGNED
-> );
6. 查看数据表
SHOW TABLES [FROM db_name] [LIKE ‘pattern’ | WHERE expr]
7. 查看数据结构
SHOW COLUMNS FROM tbl_name
8. 记录的插入和查找
INSERT [INTO] tbl_name [(col_name,...)] VALUES(val,...)
SELECT expr,... FROM tbl_name
9. 空值与非空
NULL – 可以为空
NOTNULL – 不能为空
10. 自动编号
- 自动编号,必须与主键组合使用
- 默认起始值为1,增量为1
11. 主键
- 主键约束
- 每个数据表只能存在一个主键
- 主键保证记录唯一性
- 主键自动为NOT NULL
12. 唯一约束
- 唯一约束
- 可保证记录的唯一性
- 唯一约束的字段可以为空NULL
- 每张数据表克存在多个唯一约束
13. 默认约束
- 默认值
- 插入记录时,若没有明确为字段赋值,则自动设为默认值
三、约束及修改表
1. 约束
- 约束保证数据的完整性和一致性
- 分为表级约束和列级约束
- 约束类型分为:NOT NULL(非空约束)、PRIMARY KEY(主键约束)、UNIQUE KEY(唯一约束)、DEFAULT(默认约束)、FOREIGN KEY(外键约束)
2. 外键约束
保证完整性和一致性,实现一对一或一对多
*要求:
- 父表和子表必须使用相同存储引擎,且禁止使用临时表
- 数据表存储引擎只能是InnoDB