DDL(Data Definition Language)
表查询
1
| SHOW CREATE TABLE TABLE_NAME;
|
表创建
1 2 3 4
| CREATE TABLE TABLE_NAME ( COLUMN_NAME TYPE [COMMENT] [CONDITION], ... );
|
数据类型
- 数值类型
- TINYINT 1byte
- SMALLINT 2bytes
- MEDIUMINT 3bytes
- INT / INTEGER 4bytes
- SIGINT 8bytes
- FLOAT 4bytes float(m, d) 类似decimal
- DOUBLE 8bytes double(m,d) 类似decimal
- DECIMAL decimal(a,b) a表示小数点左边能存储的十进制数字最大数,b表示小数点右边…
对于数值类型,可以在字段约束条件中使用unsigned来声明无符号类型。
- 字符串类型
- CHAR CHAR(N) 定长为n的字符串
- VARCHAR VARCHAR(N) 最长为n的字符串
- TINYTEXT, BLOB, TEXT, … 等长文本或二进制数据
- 日期类型
- DATE
- TIME
- YEAR
- DATETIME 日期+时间
- TIMESTAMP 时间戳
表修改
修改表名
1 2 3 4
| ALTER TABLE TABLE_NAME RENAME AS NEW_TABLE_NAME;
RENAME TABLE OLD_TABLE_NAME TO NEW_TABLE_NAME
|
添加字段
1
| ALTER TABLE TABLE_NAME ADD COLUMN TYPE [COMMENT] [CONDITION];
|
修改字段类型
1
| ALTER TABLE TABLE_NAME MODIFY COLUMN NEWTYPE;
|
修改字段名
1
| ALTER TABLE TABLE_NAME RENAME OLD_COLUMN TO NEW_COLUMN;
|
修改字段名和类型
1
| ALTER TABLE TABLE_NAME CHANGE OLD_COLUMN NEW_COLUMN NEWTYPE [COMMENT] [CONDITION];
|
删除字段
1
| ALTER TABLE TABLE_NAME DROP COLUMN;
|
删除表
1
| DROP TABLE [IF EXISTS] TABLE_NAME;
|
删除并重新创建表
1
| TRUNCATE TABLE TABLE_NAME;
|
DML (Data Manipulation Language)
添加数据
1
| INSERT INTO TABLE_NAME [(COLUMN1, COLUMN2, ...)] VALUES (VALUE1, VALUE2,...), (VALUE1, VALUE2,...), ...;
|
添加数据时忽略未给出字段,则表明给全部字段添加数据
修改数据
1 2
| UPDATE TABLE_NAME SET COLUMN1=VALUE1, COLUMN2=VALUE2,... [WHERE CONDITION];
|
删除数据
1
| DELETE FROM TABLE [WHERE CONDITION];
|
DQL(Data Query Language)
关键知识点:
- 选择查询
- 别名
- where条件
- order by排序
- group by分组
- limit 截断和偏移
- case when then … end条件分支
- having条件(针对group by 分组)
- 内连接、外连接
- 聚合函数
- 开窗函数
- 子查询, exist, in
- with as语句
DCL(Data Control Language)
查询用户
1 2
| USE mysql; SELECT * FROM user;
|
创建用户
1
| CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
|
可以使用通配符%来表示任意主机。
修改用户密码
1
| ALTER USER 'username'@'hostname' IDENTIFIED BY 'newpassword';
|
删除用户
1
| DROP USER 'username'@'hostname';
|
查询权限
1
| SHOW GRANTS FOR 'username'@'hostname';
|
赋予权限
1
| GRANT ALL|OTHER PRIVILEGE ON DATABASE.TABLE TO 'username'@'hostname';
|
撤销权限
1
| REVOKE ALL|OTHER PRIVILEGE ON DATABASE.TABLE FROM 'username'@'hostname';
|