MySQL入门:DCL数据控制语言(管理用户,权限控制),MySQL函数(字符串,数值,日期,流程)

目录

1.DCL(数据控制语言)

DCL英文全称是Data ControlLanguage(数据控制语言),用来管理数据库用户、控制数据库的访问权限。

1.管理用户

1.查询用户

sql 复制代码
USE mysql;
SELECT * FROM user;

2.创建用户

sql 复制代码
CREATE USER '用启名'@'主机名' IDENTIFIED BY '密码';

3.修改用户密码

sql 复制代码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

4.删除用户

sql 复制代码
DROP USER'用户名'@'主机名';

注意:

  • 主机名可以使用%通配
  • 这类SQL开发人员操作的比较少,主要是DBA ( Database Administrator数据库管理员)使用

2.权限控制

1.查询权限

sql 复制代码
SHOW GRANTS FOR '用户名'@'主机名';

2.授予权限

sql 复制代码
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

3.撤销权限

sql 复制代码
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注意:

  • 多个权限之间,使用逗号分隔
  • 授权时,数据库名和表名可以使用*进行通配,代表所有

2.函数

函数是指一段可以直接被另一段程序调用的程序或代码。

1.字符串函数

演示:

sql 复制代码
-- 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);

2.数值函数

演示:

sql 复制代码
-- ceil 向上取整
select ceil(1.1);
-- floor 向下取整
select floor(1.9);
-- mod 取模
select mod(6,4);
-- rand 随机数
select rand();
-- round 四舍五入
select round(2.3444,2);

3.日期函数

演示:

sql 复制代码
-- 当前日期
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');

4.流程函数

演示:

sql 复制代码
-- 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;
相关推荐
平头哥技术团队10 分钟前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
冬木家居1 小时前
40㎡客厅变形记,小家住出大自由[特殊字符]
android·经验分享·笔记·智能家居·微信公众平台
Mr.朱鹏1 小时前
Linux 服务器 LVM 根分区在线动态扩容
linux·服务器·数据库
摇滚侠1 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
qiuhaipeng11 小时前
Claude code 升级后上下文长度变短问题
java·前端·数据库
AFinalStone2 小时前
Android 7系统无障碍服务(六)输入事件拦截与 TouchExplorer
android·无障碍服务
天空之城--2 小时前
MT管理器Android逆向工程完全指南:从入门到实战
android
云贝贝贝2 小时前
腾讯云 TDSQL(MySQL 版)运维高频 6 坑:代理路由、读写分离、分片键、监控、PITR
运维·mysql·腾讯云
wxwx_bscxy3222 小时前
基于Python新冠疫情可视化分析系统的设计与实现
java·数据库·spring boot·python·微信小程序·sqlite
Anhty3 小时前
2026九月最新变声器测评:iOS安卓双端适配,低延迟运行更稳定
android·人工智能·功能测试·ios·智能手机