SQL通用语法
DDL 语法(数据库和表管理)
数据库管理
- SHOW DATABASES; 查询所有数据库
- SELECT DATABASE(); 查询当前数据库(与use对应)
- CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排列规则]; 创建一个新的数据库,字符集推荐使用utf8mb4
- DROP DATABASE [IF EXISTS]; 数据库名
- USE 数据库名; 使用数据库
表操作
-
SHOW TABLES; 查询当前所有表格
-
DESC 表名; 选择当前表
-
SHOW CREATE TABEL 表名; 查询指定表的建表语句
-
CREAT TABLE 表名(字段1 字段类型 [COMMENT 字段1注释], ...) [COMMENT 表注释]; 建表语句
数值类型
表修改
- ALTER TABLE 表名 ADD 字段名 数值类型(长度) [COMMENT 注释]; 增加字段
- ALTER TABLE 表名 MODIFY 字段名 新的数值类型(长度); 改变字段数值类型
- ALTER TABLE 表名 CHANGE 字段名 新的字段名 新的数据类型(长度); 改变字段名和数据类型
- ALTER TABLE 表名 DROP 字段名; 删除字段
- DROP TABLE [IF EXISTS] 表名; 删除表
- TRUNCAT TABLE 表名; 删除表,并且重新创建(类似初始化)
DML 语法(表操作)
表插入
- INSERT INTO 表名 (字段1,字段2...) VALUES (值1,值2...),(值1,值2...); 插入一个或多个字段的一组或多组值
- INSERT INTO 表名 VALUES (值1,值2...); 给所有字段添加值
表更新和删除
- UPDATE 表名 SET 字段1= 值1,字段2 = 值2,... [WHERE 条件]; 修改数据,如果没有条件,则会修改整张表的值
- DROP FROM 表名 [WHERE 条件]; 删除数据,如果没有条件,则会修改整张表的值,且不能删除某个字段的值,只能用UPDATA修改为空
DQL 语法(基础查询)
基本语法
SELECT 字段列表 FROM 表列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排列字段列表 LIMIT 分页参数
- GROUP BY 根据哪个字段进行分组
- ORDER BY 字段1 排列方法1,... ASC升序(默认),DESC降序
- LIMIT 起始索引,查询记录数 索引时页数-1
聚合函数
函数 | 功能 |
count | 统计数量 |
max | 最大值 |
min | 最小值 |
sum | 总和 |
avg | 平均值 |
语法: SELECT 聚合函数(字段列表) FROM 表名;
DCL语法 (权限管理)
用户管理
用户权限管理表格在mysql中,所以我们首先用 USE mysql;选取到用户表格
- SELECT * FROM mysql; 查询所有的用户
- CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; 创建用户
- ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '密码'; 修改用户密码
- DROP USER '用户名'@'主机名'; 删除用户
主机名: localhost 仅允许本地主机访问,%允许任意主机访问
权限管理
- SHOW GRANTS FOR '用户名'@'主机名'; 查询用户权限
- GRANT 权限列表 ON 数据库.表 TO '用户名'@'主机名'; 赋予用户权限
- REVOKE 权限列表 ON 数据库.表 TO '用户名'@'主机名'; 撤销用户权限
函数
字符串函数
数值函数
日期函数
流程函数
约束
外键约束
删除与更新
多表查询
内、外、自连接
内连接:取二者的交集
外连接:取左或右的全部集合及二者的交集
自连接:对自身表格进行连接处理
联合查询
事务
事务语法