本篇文章,主要对DCL、 函数、 约束和多表查询进行知识总结和学习。
期待和大家一起学习进步。
DCL
DCL-介绍
数据控制语言,用来管理数据库用户、控制数据库的访问权限。
DCL-管理用户
查询用户
USE mysql;
SELECT * FROM user;
创建用户
CREATE USER ‘用户名’@’主机名’IDENTIFIED BY ’密码’;
修改用户密码
ALTER USER ’用户名’@’主机名’ IDENTIFIED WITH mysql_password BY ‘新密码’;
删除密码
DROP USER ‘用户名’@’主机名’;
注意:
本机名可以使用%统配 这类SQL开发人员操作较少,主要是数据库管理人员使用。
DCL-权限控制
MySQL常用
ALL,ALL PRIVILEGES 所有权限 SELECT 查询 INSERT 插入 UPDATE 修改 DELETE 删除 ALTER 修改表 DROP 删除数据库/表/视图 CREATE 创建数据库/表 ![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/dd8da57d2b434e9285b643dde136af36.png)
查询权限
SHOW CRANTS FOR‘用户名’@’主机名’;
授予权限
CREATE 权限列表 ON 数据库名.表名 TO ‘用户名’@’主机名’;
撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM‘用户名’@’主机名’;
注意:
多个权限之间,使用逗号分割 授权时,数据库名和表名可以使用*进行通配,代表所有。
函数
是指一段可以直被另一段程序调用的程序或代码
分类
字符串函数、数值函数、日期函数、流程函数
常用字符串函数
CONCAT(S1,S2,...Sn)字符串拼接,将S1,S2...Sn拼接成一个字符串 LOWER(str)将字符串str全部转为小写 UPPER(str)将字符串str全部转为大写 LPAD(str,n,pad)左填充,用字符串pad对str的左边进行填充,达到n个字符串长度 RPAD(str,n,pad)右填充,用字符串pad对str的右边进行填充,达到n个字符串长度 TRIM(str)去掉字符串头部和尾部的空格 SUBSTRING(str,start,len)返回从字符串str从start位置起的len个长度的字符串
常用的数值函数
CEIL(x)向上取整 FLOOR(x)向下取整 MOD(x,y)返回x/y的模 RAND()返回0~1内的随机数 ROUND(x,y)求参数x的四舍五入的值,保留y位小数
常用的日期函数
CURDATE() 返回当前日期 CURTIME() 返回当前时间 NOW()返回当前日期和时间 YEAR(date)获取指定date的年份 MONTH(date)获取指定date的月份 DAY(date)获取指定date的日期 DATE_ADD(date,INTERVAL expr type)返回一个日期/时间值加上一个时间 间隔expr后的时间值 DATEDIFF(date1,date2)返回起始日期date1和结束时间date2之间的天数
流程函数
IF(value,t,f)如果value为true,返回t,否则返回f IFNULL(value1,value2)如果value1不为空,返回value1,否则返回value2 CASE WHEN [val]THEN[res1]...ELSE[default] END 如果val1为true,返 回res1,...否则返回default默认值 CASE[exper] WHEN[val1] THEN[res1]...ELSE[default] END 如果expr的值 等于val1返回res1,..否则返回default默认值