慕课网视频教程《与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