当前位置: 首页 > news >正文

MySQL--DQLDCL

目录

 DQL

DQL - 介绍

DQL - 语法和执行顺序

DQL - 基本查询

DQL - 条件查询

DQL - 聚合函数

DQL - 分组查询

DQL - 排序查询

DQL - 分页查询

DCL

DCL - 介绍

DCL - 管理用户

DCL - 权限控制


 DQL

DQL - 介绍

DQL 英文全称是 Data Query Language (数据查询语言),数据查询语言,用来查询数据库中表的记录。

查询关键字:SELECT

DQL - 语法和执行顺序

编写顺序

  • select  字段列表
  • from  表名列表
  • where  条件列表
  • group by  分组字段列表
  • having  分组后条件列表
  • order by  排序字段列表
  • limit  分页参数

执行顺序 

DQL - 基本查询

查询多个字段

  • select 字段1, 字段2, 字段3 ... from 表名;
  • select * from 表名;

设置别名

  • select 字段1 [as '别名1'], 字段2 [as 别名2] ... from 表名;

去除重复记录

  • select distinct 字段列表 from 表名;

DQL - 条件查询
  • select 字段列表 from 表名 where 条件列表;
比较运算符功能描述
>大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
BETWEEN … AND …在某个范围之内(含最小、最大值)前小后大
IN(...)在 IN 之后的列表中的值,多选一
LIKE 占位符模糊匹配(_ 匹配单个字符,% 匹配任意个字符)
IS NULL是 NULL
逻辑运算符功能描述
AND 或 &&并且(多个条件同时成立)
OR 或 ||或者(多个条件任意一个成立)
NOT 或!非,不是

DQL - 聚合函数

介绍

  • 将一列数据作为一个整体,进行纵向计算。

常见聚合函数

函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和

语法

  • select 聚合函数(字段列表)from 表名;

注意:所有null值不参与聚合函数计算

DQL - 分组查询

语法:

  • select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

where 与 having 区别:

  • 执行时机不同:where 是分组之前进行过滤,不满足 where 条件,不参与分组;而 having 是分组之后对结果进行过滤。
  • 判断条件不同:where 不能对聚合函数进行判断,而 having 可以。

注意:

  • 执行顺序:where > 聚合函数 > having。
  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
-- 查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
select workaddress,count(*) from emp where age < 45 group by workaddress having count(*) >= 3;

DQL - 排序查询

语法:

  • select 字段列表 from 表名 order by 字段1 排序方式1 , 字段2 排序方式2 ;

排序方式:

  • ASC:升序(默认值)
  • DESC:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

DQL - 分页查询

语法:

  • select 字段列表 from 表名 limit 起始索引, 查询记录数 ;

注意:

  • 起始索引从 0 开始,起始索引 =(查询页码 - 1)* 每页显示记录数。
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL 中是 limit。
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

 

DCL

DCL - 介绍
  • DCL(Data Control Language ,数据控制语言 ),其功能是管理数据库用户、控制数据库访问权限 。

DCL - 管理用户

查询用户:

  • use mysql;
  • select * from user;


创建用户:

  • create user '用户名'@'主机名' identified by '密码';


修改用户密码:

  • alter user '用户名@主机名' identified with mysql_native_password by '新密码';


删除用户:

  • drop user '用户名@主机名';

注意:

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

DCL - 权限控制

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

权限说明
all, all privileges所有权限
select查询数据
insert插入数据
update修改数据
delete删除数据
alter修改表
drop删除数据库 / 表 / 视图
create创建数据库 / 表

查询权限:

  • show grants for '用户名@主机名';


授予权限:

  • grant 权限列表 on 数据库名.表名 to '用户名@主机名';


撤销权限:

  • revoke 权限列表 on 数据库名.表名 from '用户名@主机名';

 

http://www.dtcms.com/a/271383.html

相关文章:

  • uniapp如何创建并使用组件?组件通过Props如何进行数据传递?
  • 七牛云C++开发面试题及参考答案
  • Synology Cloud Sync构建的企业级跨域数据中台
  • OpenGL 生成深度图与点云
  • Spring Boot多数据源配置详解
  • 【AI】环境——深度学习cuda+pytorch配置
  • aichat-core简化 LLM 与 MCP 集成的前端核心库(TypeScript)
  • 前端开发流程设计详解
  • 【leetcode】2235. 两整数相加
  • 【LeetCode 热题 100】21. 合并两个有序链表——(解法二)递归法
  • 仓颉语言 1.0.0 升级指南:工具链适配、collection 操作重构与 Map 遍历删除避坑
  • 深度学习12(卷积神经网络)
  • java idea 本地debug linux服务
  • Vue响应式原理四:响应式-监听属性变化
  • 国密算法(SM2/SM3/SM4)
  • 【MySQL】一些操作:修改MySQL root密码等等
  • Java 多线程编程:原理与实践
  • UI前端与数字孪生结合实践探索:智慧物流的仓储优化与管理系统
  • 供应链管理:定量分析中的无量纲化处理
  • Java 各集合接口常用方法对照表
  • 虚拟化技术,容器技术和Docker
  • Android View 绘制流程 简述 (无限递归+BitMap问题)
  • android activity生命周期温习
  • Java HashMap 的 get 和 put 方法的实现流程
  • android——热修复(补丁)
  • 微软官方C++构建工具:历史演变、核心组件与现代实践指南
  • SQL注入:现象、本质与防御详解
  • 文本标签提取与大模型理解:方法论深度指南
  • Kubernetes 集群部署、配置和验证-使用kubeadm快速部署一个K8s集群_笔记
  • 【K8S】在 Kubernetes 上配置安装 Nginx Ingress 控制器指南