3.DQl
完整语法:
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段
HAVING
分组后条件
ORDER BY
排序字段
LIMIT
分页限定
条件查询
SELECT 字段列表 FROM 表名 WHERE 条件列表;
模糊查询
使用关键字like,利用通配符进行查询;"_"代表单个字符,"%"代表任意个数字符。
例如:"张%"表示查询所有姓张的数据,"_张%"表示查询第二个字为张的所有数据(只有两个字符),"_张%"表示查询第二个字是张的所有数据(字符数不限)。
排序查询
使用ORDER BY关键字(SQL中关键字大小写不影响,但要注意操作系统,linux下默认对大小写敏感)
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;(如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序)
ASC:升序排序(默认值)
DESC:降序排序
聚合函数
| 函数名 | 功能 |
|---|---|
| count(列名) | 统计数量(一般选用不为null的列) |
| max(列名) | 最大值 |
| min(列名) | 最小值 |
| sum(列名) | 求和 |
| avg(列名) | 平均值 |
语法:SELECT 聚合函数名(列名) FROM 表;
分组查询
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义(其他字段会产生无意义报错)
分页查询
语法:SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;(起始索引是从0开始)
4.DCL
DCL管理用户:
查询用户
SELECT *FROM user;
创建用户
CREAT USER '用户名'@'主机名' IDENTIFIED BY'密码';
修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
删除用户
DROP USER '用户名'@'主机名';
权限控制
| 权限 | 说明 |
|---|---|
| ALL,ALL PRIVILEGES | 所有权限 |
| SELECT | 查询数据 |
| INSERT | 插入数据 |
| UPDATE | 修改数据 |
| DELETE | 删除数据 |
| ALTER | 修改表 |
| DROP | 删除数据库/表/视图 |
| CREATE | 创建数据库/表 |
查询用户权限
SHOW GRANTS FOR'用户名'@'主机名';
授予用户权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
撤销用户权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';