DCL语句和函数

news2025/1/8 6:05:50

1.DCL语句

DCL:数据控制语言,用来管理数据库用户,控制数据库的访问权限。

1.控制数据库有哪些用户可以访问。

2.控制每一个用户的访问权限。

1.1 DCL-管理用户

查询用户

USE mysql
SELECT * FROM user;

 创建用户

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

修改用户密码

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

​

删除用户  

DROP USER '用户名'@'主机名';

练习:

1. 创建用户itcast,只能够在当前主机localhost访问,密码123456
CREATE USER 'itcast'@'localhost' IDENTIFIED BY '123456';
2. 创建用户lifiyu,可以在任意主机访问数据库,密码12345.
CREATE USER 'lifiyu'@'%' IDENTIFIED BY '12345';
3. 修改用户itcast 的访问密码1234;
ALTER USER 'itcast'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';
4.删除用户itcast
DROP USER 'itcast'@'localhost';

注意:

主机名可以使用%通配。(任意主机都可以访问mysql服务器)。

这类SQL开发人员操作的比较少,主要是DBA(数据库管理员)使用。

 

1.2 DCL-权限控制

MySQL中定义了很多种权限,但是常用的就以下几种:

 

查询权限

SHOW GRANTS FOR '用户名'@'主机名';

授予权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

撤销权限

REVOKE 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

注意:

多个权限之间,使用逗号分隔

授权时,数据库名和表名可以使用*进行通配,代表所有

 

2 函数

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

2.1 字符串函数

MySQL中内置了很多字符串函数,常用的有如下几个:

 练习:

--CONCACT连接字符串
SELECT CONCAT('HELLO','WORLD','!');
--LOWER将字符串转为小写
SELECT LOWER('HELLO');
--UPPER将字符串转为大写
SELECT UPPER('hello');
--LPAD左填充
SELECT LPAD('01',5,'-');
--RPAD右填充
SELECT RPAD('01',5,'-');
--TRIM去除空格(头部和尾部)
SELECT TRIM('  HE LLO  ');
--SUBSTRING 截取字符串,并返回(索引从1开始)
SELECT SUBSTRING('HELLO',1,3);

练习:企业员工的工号统一为5位数,目前不足5位数的全部在前面补0,比如,1号员工的工号应该为00001

UPDATE employee SET worknumber = LPAD(worknumber,5,'0');

2.2 数值函数

 

--ceil 向上取值
SELECT CEIL(1.5); --2
--floor 向下取值
SELECT FLOOR(1.5); --1
--MOD 返回x/y的模(取余)
SELECT MOD(3,4); --3
--RAND 返回0-1内的随机数
SELECT RAND();
--ROUND 求参数X的四舍五入的值,保留y位小数
SELECT ROUND(2.346,2); -- 2.35

练习:通过数据库函数,生成一个六位数的随机验证码

SELECT LPAD(ROUND(RAND()*1000000 ,0),6,'0');

2.3 日期函数

--CRUDATE返回当前日期
SELECT CURDATE(); --2024-12-09
--CURTIME返回当前时间
SELECT CURTIME(); --14:20:55
--NOW返回当前日期和时间
SELECT NOW();
-- YEAR,--MONTH,--DAY 获取年、月、日
SELECT YEAR(NOW());
SELECT MONTH(NOW());
SELECT DAY(NOW());
--DATE_ADD 返回时间相加后的结果
SELECT DATE_ADD(NOW(),INTERVAL 70 DAY); --2025-02-17 14:29:57
--DATEDIFF 返回时间相差的天数(相减后)
SELECT DATEDIFF('2024-12-20','2024-12-31'); -- -11

 

练习:

查询所有员工的入职天数,并根据入职天数倒序排序。

SELECT name, datediff(CURDATE(), entrydate) AS 'entrydays' FORM employee ORDER BY entrydays DESC;

 

2.4 流程函数

--IF
SELECT if(true, 'ok','Error');
--IFNULL
SELECT IFNULL('OK','DEFAULT');
--CASE WHEN
需求:查询emp表的员工姓名和工作地址(北京/上海--> 一线城市,其它 --> 二线城市)
SELECT 
	name,
	(CASE workaddress WHEN '北京' THEN '一线城市' HWEN '上海' then '一线城市' ELSE '二线城市' END) AS '工作地址' FROM emp;

 练习: 统计班级各个学院的成绩,展示的规则如下: >= 85 ,展示优秀, >=60 展示及格,否则展示不及格

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2257312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[go-redis]客户端的创建与配置说明

创建redis client 使用go-redis库进行创建redis客户端比较简单,只需要调用redis.NewClient接口创建一个客户端 redis.NewClient(&redis.Options{Addr: "127.0.0.1:6379",Password: "",DB: 0, })NewClient接口只接收一个参数red…

【NLP高频面题 - 分词篇】WordPiece 分词器是如何训练的?

【NLP高频面题 - 分词篇】WordPiece 分词器是如何训练的? 重要性:★★ 💯 NLP Github 项目: NLP 项目实践:fasterai/nlp-project-practice 介绍:该仓库围绕着 NLP 任务模型的设计、训练、优化、部署和应用…

机器学习决策树原理详解

一、引言 在当今蓬勃发展的人工智能与大数据领域,大模型正以前所未有的影响力改变着众多行业的格局。而决策树作为机器学习算法家族中的经典成员,以其简洁直观的特点和广泛的适用性,不仅能独立解决诸多实际问题,更是诸多先进大模…

[小白系列]Ubuntu安装教程-安装prometheus和Grafana

Docker安装prometheus 拉取镜像 docker pull prom/prometheus 配置文件prometheus.yml 在/data/prometheus/建立prometheus.yml配置文件。(/data/prometheus/可根据自己需要调整) global:scrape_interval: 15s # By default, scrape targets ev…

【Qt之·类QSettings·参数保存】

系列文章目录 文章目录 前言一、概述1.1 QSetting是什么1.2 为什么学习QSetting是重要的 二、不同存储位置的优缺点三、 QSetting的高级用法四、实例演示总结 前言 在当今的应用程序开发中,设置管理是一个至关重要的方面。应用程序的设置包括用户偏好、配置选项和其…

HCIP——VRRP的实验配置

一、VRRP的理论知识 1.1VRRP(虚拟路由冗余协议)的概述: 通过把几台路由设别联合组成一台虚拟的路由设备,既能够实现网关的备份,又能解决多个网关之间互相冲突的问题。 1.2VRRP状态机: VRRP协议状态机有…

从爱尔兰歌曲到莎士比亚:LSTM文本生成模型的优化之旅

上一篇:《再用RNN神经网络架构设计生成式语言模型》 序言:本文探讨了如何通过多种方法改进模型的输出,包括扩展数据集、调整模型架构、优化训练数据的窗口设置,以及采用字符级编码。这些方法旨在提高生成文本的准确性和合理性&am…

Mysql | 尚硅谷 | 第02章_MySQL环境搭建

Mysql笔记:第02章_MySQL环境搭建 说明:本内容整理自尚硅谷B站MySQL视频>>尚硅谷B站MySQL视频 文章目录 Mysql笔记:第02章_MySQL环境搭建第02章_MySQL环境搭建 1. MySQL的卸载步骤1:停止MySQL服务步骤2:[软件](h…

unity 让文字呈现弧度变化

效果: using UnityEngine; using TMPro; using Core;[ExecuteInEditMode] public class TMTextWrap : MonoBehaviour {private TMP_Text m_TextComponent;public AnimationCurve VertexCurve new AnimationCurve(new Keyframe(0, 0), new Keyframe(0.5f, 1), new …

java抽奖系统(一)2.0

1. 项⽬介绍 1.1 背景 随着数字营销的兴起,企业越来越重视通过在线活动来吸引和留住客⼾。抽奖活动作为⼀种有效的营 销⼿段,能够显著提升⽤⼾参与度和品牌曝光率。于是我们就开发了以抽奖活动作为背景的Spring Boot项⽬,通过这个项⽬提供⼀…

【5G】Spectrum 频谱

频谱是移动运营商的关键资产,可用的频谱是定义移动网络容量和覆盖范围的重要因素。本章讨论了5G的不同频谱选项、它们的特性以及5G早期部署阶段的预期频谱。5G是首个旨在利用大约400 MHz到90 GHz之间所有频段的移动无线系统。5G还设计用于在许可、共享和非许可频谱带…

复现论文:PromptTA: Prompt-driven Text Adapter for Source-freeDomain Generalization

github:zhanghr2001/PromptTA: Source-free Domain Generalization 论文:[2409.14163] PromptTA: Prompt-driven Text Adapter for Source-free Domain Generalization 自己标注:PromptTA: Prompt-driven Text Adapter for Source-free Domai…

电子应用设计方案-43:智能手机充电器系统方案设计

智能手机充电器系统方案设计 一、引言 随着智能手机的广泛应用,对充电器的性能、效率和安全性提出了更高的要求。本方案旨在设计一款高效、安全、兼容多种快充协议的智能手机充电器。 二、系统概述 1. 系统目标 - 提供快速、稳定、安全的充电功能。 - 兼容主流的智…

基于springboot+vue实现的项目评审系统 (源码+L文+ppt)4-116

摘 要 相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低运营人员成本,实现了项目评审系统的标准化、制度化、程序化的管理,有效地防止了项目评审的随意管理,提高了信息的处理速度和精确度,能够及时、准确…

深入了解架构中常见的4种缓存模式及其实现

4种缓存模式 随着应用程序的复杂性日益增加,缓存管理变得至关重要。缓存不仅能有效减轻数据库负载,还能显著提升数据访问速度。选择合适的缓存模式能够在不同的业务场景下发挥出最佳效果。 本文将详细介绍四种常见的缓存模式:Cache-Aside (…

【论文阅读】处理器芯片敏捷设计方法:问题与挑战

作者:包云岗老师 包云岗老师是计算机体系结构方向的大牛,推动了体系结构方面的开源事业! 欢迎对本栏目感兴趣的人学习"一生一芯"~ 学习体会: 已有的软硬件生态系统和开发成本制约了对新结构的探索。但目前仍在几种路线上做尝试~ 1…

Android记单词app(包含数据库)

一、功能与要求 实现功能:设计与开发记单词系统的,系统功能包括用户登录、用户注册、单词操作(单词的添加、查询、修改及删除)以及忘记密码等。 指标要求:通过用户登录、用户注册、单词操作、忘记密等功能的设计与开发,掌握Android常用布局、控件的使用、监听器的设置以及…

数据结构与算法学习笔记----树与图的深度优先遍历

数据结构与算法学习笔记----树与图的深度优先遍历 author: 明月清了个风 first publish time: 2024.12.9 pa⭐️这里只有一道题哈哈。 Acwing 846.树的重心 给定一棵树,树中包含 n n n个节点(编号 1 ∼ n 1 \sim n 1∼n)和 n − 1 n - 1 n…

TSWIKI知识库软件

TSWIKI 知识库软件介绍 推荐一个适合本地化部署、自托管的知识库软件 TSWIKI介绍 tswiki 是一个适合小团队、个人的知识库、资料管理的软件,所有数据均本地化存储。可以本地化、私有云部署,安装简单。在线预览。 主要功能说明 1、简化的软件依赖和安…

mid360使用cartorapher进行3d建图导航

1. 添加urdf配置文件&#xff1a; 添加IMU配置关节点和laser关节点 <!-- imu livox --> <joint name"livox_frame_joint" type"fixed"> <parent link"base_link" /> <child link"livox_frame" /> <o…