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

mysql学习——SQL中的DQL和DCL

SQL中的DQL和DCL

  • DQL
    • 基本查询
    • 条件查询
    • 聚合函数
    • 分组查询
    • 排序查询
    • 分页查询
  • DCL
    • 管理用户
    • 权限控制

学习黑马MySQL课程,记录笔记,用于复习。

DQL

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

基本查询

#1.查询多个字段
select 字段1, 字段2, 字段3 ... from 表名 ;
select * from 表名 ;
#2.字段设置别名
select 字段1 [ as 别名1 ] , 字段2 [ as 别名2 ] ... from 表名;
select 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... from 表名;
#去重
select distinct 字段列表 from 表名;

条件查询

select 字段列表 from 表名 where 条件列表;

条件列表(除大于小于):

比较运算符功能
<> 或 !=不等于
between … and …在某个范围之内
in()in后列表内任一值
like 占位符_单个字符 , % 任意字符
is null为空
#查询姓名为两个字的员工信息
select * from emp where name like '__';
#查询身份证号最后一位是X的员工信息
select * from emp where idcard like '%X';

聚合函数

将一列数据作为一个整体,进行纵向计算
常见的聚合函数(null值不参与计算):

count统计数量
max最大值
min最小值
avg平均值
sum求和
select 聚合函数(字段列表) from 表名;
select count(*) from emp; -- 统计总记录数
select count(idcard) from emp; -- 统计idcard字段不为null的记录数

分组查询

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

where与having区别:

  • 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;having是分组之后对结果进行过滤。
  • 判断条件不同:where不能对聚合函数进行判断,having可以。
    注意事项:
    • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
    • 执行顺序: where > 聚合函数 > having 。
    • 支持多字段分组, 具体语法为 : group by columnA,columnB
#根据性别分组 , 统计男性员工 和 女性员工的数量
select gender, count(*) from emp group by gender ;
#查询年龄小于45的员工, 并根据工作地址分组 , 获取员工数量大于等于3的工作地址
#1.查询年龄小于45的员工数量
select count(*) from emp where age < 45;
#2.根据工作地址分组,并把count(*)起别名address_count
select workaddress,count(*) address_count from emp where age < 45 group by workaddress;
#3.获取员工数量大于等于3的工作地址
select workaddress,count(*) address_count from emp where age < 45 group by workaddress having address_count >= 3;

排序查询

#多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序 ;
select 字段列表 from 表名 order by 字段1 排序方式1 , 字段2 排序方式2 ;

排序方式:

  • ASC:升序(默认值)
  • DESC:降序
select * from emp order by age asc , entrydate desc;

分页查询

select 字段列表 from 表名 limit 起始索引, 查询记录数 ;
  • 起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。
#查询第1页员工数据, 每页展示10条记录
select * from emp limit 10;
#查询第2页员工数据, 每页展示10条记录 -----> (页码-1)*页展示记录数=(2-1)*10=10
select * from emp limit 10,10;
#查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序。
select name , age from emp where age <= 35 order by age asc , entrydate desc;
#查询性别为男,且年龄在20-40 岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序
#1.查询性别为男,且年龄在20-40 岁(含)以内的员工
select * from emp where gender = '男' and age between 20 and 40
#2.对查询的结果按年龄升序排序,年龄相同按入职时间升序排序,前5个员工信息
select * from emp where gender = '男' and age between 20 and 40 order by age asc, entrydate asclimit 5;

执行顺序: 表–>条件–>分组–>返回字段–>排序–>分页
在这里插入图片描述

DCL

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

管理用户

#查询用户
select * from mysql.user;

在这里插入图片描述
Host代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以远程访问的。
User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识一个用户。

#创建用户
create user '用户名'@'主机名' identified by '密码';
create user 'sxl'@'%' identified by '123456';
#修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password BY '新密码' ;
#删除用户
drop user '用户名'@'主机名' ;

在这里插入图片描述

权限控制

权限说明
all所有权限
select查询数据
insert插入数据
update修改数据
delete删除数据
alter修改表
drop删除数据库/表/视图
create创建数据库/表
#查询权限
show grants for '用户名'@'主机名' ;
#授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
grant all on test.* to 'sxl'@'%';
#撤销权限
reveke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

相关文章:

mysql学习——SQL中的DQL和DCL

SQL中的DQL和DCL DQL基本查询条件查询聚合函数分组查询排序查询分页查询 DCL管理用户权限控制 学习黑马MySQL课程&#xff0c;记录笔记&#xff0c;用于复习。 DQL DQL英文全称是Data Query Language(数据查询语言)&#xff0c;数据查询语言&#xff0c;用来查询数据库中表的记…...

windows系统上nginx搭建文件共享

1、下载windows版nginx 下载地址 2、配置nginx 编辑nginx.conf配置文件 在http模块下添加这个参数 underscores_in_headers on;#修改location内容&#xff0c;共享哪个文件夹&#xff0c;就写哪个文件夹&#xff0c;最后一定要跟上/&#xff0c;否则无法访问 location / {…...

星闪指向遥控,做家电交互的破壁人

“面壁者罗辑&#xff0c;我是你的破壁人。” 科幻小说《三体》中&#xff0c;当人类的基础科学被三体人封锁&#xff0c;变得停步不前&#xff0c;人类启动了自救的面壁计划&#xff0c;通过一次又一次破壁&#xff0c;找到战胜三体人的办法。 现实中&#xff0c;有一点已经成…...

SpringBoot使用AutoConfigure实现依赖库自动导入配置

我们知道导入配置有两种&#xff0c;一种是Value&#xff0c;一种是ConfigurationProperties&#xff0c;将对应的类标记为Component即可导入。但是被注解标识的类创建Bean有一个前提&#xff0c;只对启动类所在的包路径下的所有带有Component等注解的类才会创建Bean。如果我们…...

QT中利用动画弄一个侧边栏窗口,以及贴条效果

1、效果 2、关键代码 void Widget::on_sliderBtn_clicked() {m_sliderWidget->show();QPropertyAnimation* animation = new QPropertyAnimation(m...

win10免安装配置MySQL8.4.0

注&#xff1a;此教程基于win10 22H2 版本 1、下载最新版本MySQL压缩包 下载链接&#xff1a;MySQL官网下载地址 点击第二行的 ZIP Archive 后面的Download&#xff08;当前时间2024-06-19最新版本是8.4.0&#xff09; 2、解压并添加配置文件 下载完毕后&#xff0c;解压缩…...

VS Code安装及环境配置(超详细)

VS Code简介 Visual Studio Code&#xff08;简称 VS Code &#xff09;是 Microsoft 于2015年4月发布的一款代码编辑器&#xff0c;以界面简洁、轻量著称。 它是一款免费开源的现代化轻量级代码编辑器&#xff0c;支持几乎所有主流开发语言的语法高亮、智能代码补全、自定义…...

shell脚本通过解析日志使用串口开关屏知识点整理

#!/bin/bash #logPath 写日志的存放路径 #logPath/home/workspace/tvs/trainborne logPath/home/firefly tmpFile$$ function getLogName() { #echo "$logPath/LCDController_"date "%Y%m%d000000.log" echo "LCDController_20240424000000.log&quo…...

速盾:视频cdn和网站cdn的相同点与不同点

CDN&#xff08;Content Delivery Network&#xff09;是一种分布式网络架构&#xff0c;旨在为用户提供高效、高质量的内容传送服务。CDN主要通过将内容分发到全球各地的边缘节点&#xff0c;并根据用户的地理位置选择最近的节点来提供内容&#xff0c;从而加速内容的传输并降…...

37.自定义协议

自定义协议要素 1.魔数:用来第一时间判定是否是无效数据包。 2.版本号:主持协议升级。 3.序列化算法:消息正文到底采用那种序列化方式,可以由此扩展,例如:json,protobuf(google的序列化算法,基于二进制,虽然可读性不好,但是字节数占用更少),hessian(基于二进制)…...

【React Native】measureInWindow在安卓上无法正确获取View在屏幕上的布局信息

问题描述&#xff1a; 在React Native中&#xff0c;我们可以使用measureInWindow的方式去获取一个View在屏幕中的位置信息&#xff1a; 下面这个Demo中&#xff0c;我们写了一个页面HomePage和一个列表项组件ListItemA&#xff0c;我们期望每过5s监测一次列表中每一项在屏幕中…...

C++ 教程 - 04 类的使用

文章目录 类的定义类定义案例构造函数 类的定义 C 在 C 语言的基础上增加面向对象编程&#xff0c;类是用于指定对象的形式&#xff0c;是一种用户自定义的数据类型&#xff0c;封装了数据和函数。类可以被看作是一种模板&#xff0c;可以用来创建具有相同属性和行为的多个对象…...

excel按模板文件导出多个文件并压缩为ZIP格式返回前端

思路&#xff1a;先准备好模板文件和与之对应的实体类&#xff0c;数据库数据等&#xff0c;还是之前思路&#xff0c;根据查出的数据&#xff0c;填充模板文件&#xff0c;生成一个临时文件&#xff0c;最后将这些个临时文件打包为zip返回前端&#xff0c;并将多个临时文件删除…...

自动驾驶仿真测试用例表格示例 ACC ELK FCW

自动驾驶仿真测试用例表格示例 测试用例概览 本测试用例表格涵盖了自动驾驶系统中多个关键功能和场景的测试&#xff0c;旨在确保系统在不同条件下的表现和稳定性。 用例编号测试项目测试描述预期结果实际结果通过/失败TC-001ACC功能测试在高速公路上启用ACC&#xff0c;测试车…...

数组 (java)

文章目录 一维数组静态初始化动态初始化 二维数组静态初始化动态初始化 数组参数传递可变参数关于 main 方法的形参 argsArray 工具类sort 中的 comparable 和 comparatorcomparator 比较器排序comparable 自然排序 一维数组 线性结构 静态初始化 第一种&#xff1a;int[] a…...

时序预测 | Matlab基于Transformer多变量时间序列多步预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于Transformer多变量时间序列多步预测&#xff1b; 2.多变量时间序列数据集&#xff08;负荷数据集&#xff09;&#xff0c;采用前96个时刻预测的特征和负荷数据预测未来96个时刻的负荷数据&#xff1b; 3…...

suuk-s.php.jpg-python 库劫持

做virtualBox的端口映射吧 suukmedim文件白名单绕过、反弹shell、$paht环境变量更改、python 库劫持提权、Reptile提权、sandfly-processdecloak使用 服务扫描 ┌──(kali㉿kali)-[~] └─$ sudo nmap -sV -A -T 4 -p 22,80 192.168.18.238GetSHell 访问80http://192.168.…...

python3GUI--ktv点歌软件By:PyQt5(附下载地址)

文章目录 一&#xff0e;前言二&#xff0e;展示1.启动2.搜索2.服务1.首页2.天气预报3.酒水饮料4.酒水饮料2 3.服务4.灯光5.调音6.排行榜7.分类点歌9.歌手点歌10.歌手个人页 三&#xff0e;心得体会1.关于代码2.关于设计3.关于打包 四&#xff0e;总结 文件大小&#xff1a;33.…...

opencascade AIS_InteractiveContext源码学习2

AIS_InteractiveContext 前言 交互上下文&#xff08;Interactive Context&#xff09;允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是&#xff0c;对于已经被交互上下文识别的交互对象&#xff0c;必须使用上下文方法进行…...

scale()函数详解

scale()函数是R语言中用于标准化和中心化数据的一个函数。这个函数通常用于数据预处理&#xff0c;以便于后续的分析和建模。下面是对scale()函数的详细介绍&#xff1a; 用法 scale(x, center TRUE, scale TRUE)参数 x: 一个数值型向量、矩阵或数据框&#xff0c;是需要进…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...