DCL英文全称是
Data ControlLanguage
(数据控制语言),用来管理数据库用户、控制数据库的访问权限。
1.查询用户
USE mysql;
SELECT * FROM user;
2.创建用户
CREATE USER '用启名'@'主机名' IDENTIFIED BY '密码';
3.修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
4.删除用户
DROP USER'用户名'@'主机名';
注意:
主机名可以使用%通配
1.查询权限
SHOW GRANTS FOR '用户名'@'主机名';
2.授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
3.撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
注意:
逗号分隔
数据库名和表名可以使用*进行通配,代表所有
函数
是指一段可以直接被另一段程序调用的程序或代码。
演示:
-- concat
select concat('hello ', 'MySQL');
-- lower
select lower('Hello');
-- upper
select upper('hello');
-- lpad
select lpad('01', 5, '-');
-- rpad
select rpad('01', 5, '-');
-- trim
select trim(' Hello MySQL ');
-- substring
select substr('Hello MySQL',1,5);
演示:
-- ceil 向上取整
select ceil(1.1);
-- floor 向下取整
select floor(1.9);
-- mod 取模
select mod(6,4);
-- rand 随机数
select rand();
-- round 四舍五入
select round(2.3444,2);
演示:
-- 当前日期
select current_date();
-- 当前的时间
select current_time();
-- 当前日期加时间
select now();
-- 获取当前年
select YEAR(NOW());
-- 获取当前月
select MONTH(NOW());
-- 获取当前天
select DAY(NOW());
-- 往后推自然数天之后的日期
select date_add(now(), interval 50 day);
-- 两个指定日期之间相差的天数
select datediff('2024-03-01', '2024-1-12');
演示:
-- if 判断真假
select if(false, 'Ok', 'Error');
-- 判断是否为空
select IFNULL('Ok', 'Default'); # ok
select IFNULL('', 'Default'); # ''
select IFNULL(null, 'Default');# Default
-- case when then else
select employee.name,
(case employee.work_address
when '北京' then '一线城市'
when '上海' then '一线城市'
else '二线城市' end) as '工作地址'
from employee;