Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql DCL权限控制和函数

mysql DCL权限控制和简单函数案例说明

作者:wysysy

DCL语句主要是DBA用来管理系统中的对象权限时所使用,一般的开发人员很少使用,这篇文章主要介绍了mysql DCL权限控制和简单函数的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

引言

SQL(Structured Query Language)是数据库管理的核心语言,涵盖数据操作(DML)、数据定义(DDL)、数据控制(DCL)等功能。本笔记详细解析用户提供的代码中涉及的DCL权限控制、字符串函数、数值函数、日期函数和流程控制函数,并结合案例说明应用场景。建议使用数据库可视化工具(如MySQL Workbench)执行查询并查看结果图表。

1. DCL权限控制

DCL(Data Control Language)用于管理数据库访问权限,包括用户授权和撤销权限。关键命令:

应用场景:控制用户对数据库的读写权限,确保数据安全。例如,管理员授予开发人员只读权限,防止误操作。

2. 字符串函数

字符串函数用于文本处理,包括拼接、大小写转换、填充和截取等。常见函数:

案例:统一工号格式,不足5位左侧补零。

UPDATE emp SET workno = LPAD(workno, 5, '0'); -- 将workno填充至5位,左侧补0

3. 数值函数

数值函数处理数学运算,包括取整、模运算和随机数生成:

案例:生成6位随机验证码。

SELECT LPAD(ROUND(RAND()*1000000, 0), 6, '0'); -- 步骤:1. RAND()*1000000 生成随机数;2. ROUND 取整;3. LPAD 左侧补0至6位

 通过数据库函数,生成6位随机验证码,rand求随机数*1000000得随机数,round舍去后面小数,lpad在左侧补0保证6位数

4. 日期函数

日期函数处理时间数据,包括获取当前日期、提取成分和计算差值:

案例:计算员工入职天数并排序。

SELECT name, DATEDIFF(CURDATE(), entrydate) AS entrydays FROM emp ORDER BY entrydays ASC;

5. 流程控制函数

流程控制函数实现条件逻辑,包括简单判断和分支选择:

案例1:分类工作地址。

SELECT name, 
  (CASE workaddress 
    WHEN '北京' THEN '一线城市' 
    WHEN '上海' THEN '一线城市' 
    ELSE '二线城市' 
  END) AS '工作地址' 
FROM emp;

案例2:学员成绩分级(基于score表)。

SELECT id, name,
  (CASE WHEN math >= 85 THEN '优秀' WHEN math >= 60 THEN '及格' ELSE '不及格' END) '数学',
  (CASE WHEN english >= 85 THEN '优秀' WHEN english >= 60 THEN '及格' ELSE '不及格' END) '英语',
  (CASE WHEN chinese >= 85 THEN '优秀' WHEN chinese >= 60 THEN '及格' ELSE '不及格' END) '语文'
FROM score;

数学表示:CASE 语句可视为分段函数,例如成绩分级:

案例:统计班级各个学员的成绩,展示的规则如下:

-- >=85 ,展示优秀
-- >=60 ,展示及格
-- 否则,展示不及格

6. 综合案例:学员成绩分析

用户创建了score表并插入数据:

CREATE TABLE score(
    id INT COMMENT 'ID',
    name VARCHAR(20) COMMENT '姓名',
    math INT COMMENT '数学',
    english INT COMMENT '英语',
    chinese INT COMMENT '语文'
) COMMENT '学员成绩表';
INSERT INTO score VALUES (1, 'Tom', 67, 88, 95), (2, 'Rose', 23, 66, 90), (3, 'Jack', 56, 98, 76);

使用流程控制函数分级成绩:

SELECT id, name,
  (CASE WHEN math >= 85 THEN '优秀' WHEN math >= 60 THEN '及格' ELSE '不及格' END) '数学',
  -- 类似逻辑应用于英语和语文
FROM score;

结果示例(建议用表格展示):

IDName数学英语语文
1Tom及格优秀优秀
2Rose不及格及格优秀
3Jack及格优秀及格

配图建议:在数据库工具中执行查询,导出为CSV或图表,展示成绩分布(如条形图显示各等级人数)。

总结

SQL函数极大简化了数据处理:

到此这篇关于mysql DCL权限控制和简单函数的文章就介绍到这了,更多相关mysql DCL权限控制和函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文