DCL DQL

2024-01-03 18:07:58

*DCL(数据控制语言) ?:GRANT ?REVOKE
? ?#创建数据库用户
? ?CREATE USER 用户名@地址 IDENTIFIED BY '密码';
? ?#权限授予
? ?GRANT 权限1, … , 权限n ON 数据库.* TO 用户名;
? ?#撤销权限
? ?REVOKE权限1, … , 权限n ON 数据库.* FROM 用户名;
? ?#查询用户权限
? ?SHOW GRANTS FOR 用户名;
? ?#修改用户密码
? ?UPDATE mysql.USER SET authentication_string=PASSWORD(密码) WHERE USER=账号 AND HOST=IP地址;
? ?FLUSH PRIVILEGES;


*DQL(数据查询语言): SELECT?
? ?SELECT 字段列表 ?FROM ? 表名
? ?[WHERE 条件语句]
? ?[ GROUP BY ?分组字段]
? ?[ HAVING 分组条件 ]
? ?[ORDER BY 排序字段] ? -DESC[降序] -ASC[升序(默认)]
? ?[LIMIT 偏移量,数量]

? ?注意: WHERE 条件语句 ?1.但是分组之前的条件 2.WHERE 后不能使用聚合函数
? ? ? ? ?HAVING 条件语句 ?1.分组后的条件 ? 2.HAVING后面可以使用聚合函数

? ?聚合函数
? ?1.COUNT():统计
? ?2.SUM():求和
? ?3.MIN():最小值
? ?4.MAX():最大值
? ?5.AVG():平均值

? ?模糊查询
? ?LIKE:像...一样 ? 匹配符[%:单个或者多个字符 _:单个字符]
? ?IN ?:在...范围之内
? ?BETWEEN...AND...: 介于...之间

? ?多重IF
? ?SELECT `ename` '姓名',`sal` '薪水',?
? ?CASE?
? ? WHEN `sal` >= 2500 THEN '高工资'
? ? WHEN `sal` < 2500 AND `sal` > 1500 THEN '中等工资'
? ? ELSE '低工资'
? ?END '薪水情况'
? ?FROM `emp`;

? 单独IF
? SELECT IF(`comm` IS NULL,0,`comm`) FROM `emp`;

*多表查询
? ?联合查询
? ?UNION:去除重复记录,例如:SELECT * FROM t1 UNION SELECT * FROM t2;
? ?UNION ALL:不去除重复记录,例如:SELECT * FROM t1 UNION ALL SELECT * FROM t2。

? ?连接查询
? ?-内连接
? ?INNER JOIN...ON...
? ?-外连接
? ? ?*左外连接
? ? ? ?LEFT [OUTER] JOIN .... ON....
? ? ?*右外连接
? ? ? ?RIGHT [OUTER] JOIN .... ON....


? 自连接
? SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件 ... ;

? ? ??

文章来源:https://blog.csdn.net/m0_62840476/article/details/135368551
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。