Data Control Language
查询用户 select * from mysql.user;#Host代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以 远程访问的。 User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识一 个用户。
创建用户 CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
修改用户密码 ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;
删除用户 DROP USER '用户名'@'主机名' ;
#注意事项: • 在MySQL中需要通过用户名@主机名的方式,来唯一标识一个用户。
• 主机名可以使用 % 通配。表示任意主机
• 这类SQL开发人员操作的比较少,主要是DBA( Database Administrator 数据库 管理员)使用。
权限控制
权限定义:
所有权限 all,all privileges
查询权限 selct
插入权限 insert
修改数据 update
删除数据 delete
修改表 alter
删除数据库/表/视图 drop
创建数据库/表 create
查询权限 SHOW GRANTS FOR '用户名'@'主机名' ;
授予权限 GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
撤销权限 REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
注意事项: • 多个权限之间,使用逗号分隔
• 授权时, 数据库名和表名可以使用 * 进行通配,代表所有。
函数:字符串函数 数值函数 日期函数 流程函数#使用函数时演示效果一般需要用select引导,体现MySQL的脚本中的增删查改思想。
字符串函数
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 [ val1 ] THEN [res1] ... ELSE [ default ] END 如果val1为true,返回res1,... 否 则返回default默认值#when x then y 形式类似if函数,可以接多个when then 结构最后再接else。
CASE [ expr ] WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END 如果expr的值等于val1,返回 res1,... 否则返回default默认值#when x then y 形式类似if函数,可以接多个when then 结构最后再接else。