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

DQL(数据查询)

目录

1. DQL概念

2. DQL - 编写顺序

3. 基础查询

3.1 查询多个字段

3.2 字段设置别名

3.3 去除重复记录

3.4 案例

4. 条件查询 

4.1 语法

4.2 条件

4.3 案例:

5. 聚合函数

5.1 常见的聚合函数:

5.2 语法

5.3 案例:

6. 分组查询

6.1 语法

6.2 案例

7. 排序查询

7.1 语法

7.2 排序方式

7.3 案例 

8. 分页查询

8.1 语法

8.2 案例

9. 执行顺序

1. DQL概念

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

查询关键字: select

在一个正常的业务系统中,查询操作的频次是要远高于增删改的,当我们去访问企业官网、电商网站,在这些网站中我们所看到的数据,实际都是需要从数据库中查询并展示的。而且在查询的过程中,可能还会涉及到条件、排序、分页等操作。

2. DQL - 编写顺序

  1. select  字段列表

  2. from   表名列表

  3. where  条件列表

  4. group BY  分组字段列表

  5. having  分组后条件列表

  6. order BY  排序字段列表

  7. limit  分页参数

3. 基础查询

在基本查询的DQL语句中,不带任何的查询条件,查询的语法如下:

3.1 查询多个字段
  • select  字段1, 字段2, 字段3 ... from 表名 ;
  • select  * from 表名 ;

注意 : * 号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率)。

3.2 字段设置别名
  • select  字段1 [ as 别名1 ] , 字段2 [ as 别名2 ] ... from 表名;
  • select  字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... from 表名;
3.3 去除重复记录

select  distinct 字段列表 from 表名;

3.4 案例
-- ------------------------------------------------------------------基础查询
# 查询name, workno, age
select name, workno, age from emp;# 查询所有数据
select * from emp;# 将ID=3的名字修改为张飞
update emp set name = '张飞' where id = 3;# 查询workaddress
select workaddress from emp;# 修改别名
select workaddress as '工作地址' from emp;
select workaddress '工作地址' from emp;# 去重
select distinct workaddress '工作地址' from emp;# 修改表中wordaddress为workaddress
alter table emp change wordaddress workaddress varchar(50) comment '工作地址';

4. 条件查询 

4.1 语法

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

4.2 条件

常用的比较运算符如下:

比较运算符功能
>大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
between... and...在某个范围之内(含最小、最大值)
in(...)在in之后的列表中的值,多选一
like占位符模糊匹配(_匹配单个字符, %匹配任意个字符)
is NULL是NULL

常用的逻辑运算符如下:

逻辑运算符功能
and 或 &&并且 (多个条件同时成立)
or 或 ||或者 (多个条件任意一个成立)
not 或 !非 , 不是
4.3 案例:
-- ------------------------------------------------------------------条件查询
# 查询年龄不等于18
select * from emp where age != 18;
select * from emp where age <> 18;# 查询年龄小于40
select * from emp where age <= 40;# 查询idcard不空值的数据
select * from emp where idcard is not null;# 查询idcard是空值的数据
select * from emp where idcard is null;# 设置16行idcard为空值
update emp set idcard = null where id = 16;
update emp set idcard = '12345678998765432x' where id = 13;# 查询年龄在30到50之间
select * from emp where age >= 30 && age <= 50;
select * from emp where age >= 30 and age <= 50;
select * from emp where age between 30 and 50;# between接最小值,and接最大值
select * from emp where age between 50 and 30;# 查询性别女,且在蜀国的数据
select * from emp where gender = '女' and workaddress = '蜀国';# 查询年龄等于18或等于30或等于40
select * from emp where age = 18 or age = 30 or age = 40;
select * from emp where age in(18, 30, 40);# 查询名字为三个字的名字
select * from emp where name  like '___';# 查找idcard的最后一位为x
select * from emp where idcard  like '%X';

5. 聚合函数

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

5.1 常见的聚合函数:
函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和
5.2 语法

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

注意 : NULL值是不参与所有聚合函数运算的。

5.3 案例:
-- ------------------------------------------------------------------聚合函数
# 统计所有数量
select count(*) from emp;
select count(id)  from emp;# 统计所有人平均年龄
select avg(age) from emp;# 统计最大年龄
select max(age) from emp;# 统计最小年龄
select min(age) from emp;# 统计蜀国将领人员的年龄之和
select sum(age) from emp where workaddress = '蜀国';

6. 分组查询

6.1 语法

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

where与having区别:

执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。

判断条件不同:where不能对聚合函数进行判断,而having可以。

6.2 案例
-- ------------------------------------------------------------------分组查询
# 根据性别分组,统计男性和女性的分组
select gender, count(*) from emp group by gender;# 根据性别分组,统计男性员工和女性员工的平均年龄
select gender, avg(age) from emp group by gender;# 查询年龄小于45的人员数量,并且根据工作地址分组,获取人员数量大于等于3的工作地址
select workaddress, count(*) from emp where age < 45 group by workaddress having count(*) >= 3;
# 起别名
select workaddress, count(*) address_count from emp where age < 45 group by workaddress having address_count >= 3;

注意事项:

  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
  • 执行顺序: where > 聚合函数 > having 。
  • 支持多字段分组, 具体语法为 : group by columnA,columnB

7. 排序查询

7.1 语法

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

7.2 排序方式
  1. ASC : 升序(默认值)
  2. DESC: 降序
7.3 案例 
-- ------------------------------------------------------------------排序查询
# 根据年龄升序排序
select * from emp order by age asc;
# asc可省略
select * from emp order by age;# 根据年龄升序降序
select * from emp order by age desc;# 修改入职时间
update emp set entrydate = '1990-02-03' where id = 4;
update emp set entrydate = '1993-12-03' where id = 6;
update emp set entrydate = '1993-05-03' where id = 8;
update emp set entrydate = '1909-02-03' where id = 11;# 根据入职时间做降序排序
select * from emp order by entrydate desc;# 根据年龄升序,年龄相同再按照入职时间降序排序
select * from emp order by age, entrydate desc;

注意事项:

  • 如果是升序, 可以不指定排序方式ASC ;
  • 如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序 ;

8. 分页查询

8.1 语法

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

8.2 案例
-- ------------------------------------------------------------------分页查询
# 查询第1页人员数据,根据展示5条记录
select * from emp limit 0, 5;
# 查询首页0可以省略
select * from emp limit 5;# 查询第3页人员数据,根据展示5条记录(页码-1*页码展示记录数)
select * from emp limit 10,5;

注意事项:

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

9. 执行顺序

相关文章:

DQL(数据查询)

目录 1. DQL概念 2. DQL - 编写顺序 3. 基础查询 3.1 查询多个字段 3.2 字段设置别名 3.3 去除重复记录 3.4 案例 4. 条件查询 4.1 语法 4.2 条件 4.3 案例&#xff1a; 5. 聚合函数 5.1 常见的聚合函数&#xff1a; 5.2 语法 5.3 案例&#xff1a; 6. 分组查…...

LeetCode 2951.找出峰值:模拟(遍历)

【LetMeFly】2951.找出峰值&#xff1a;模拟&#xff08;遍历&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/find-the-peaks/ 给你一个下标从 0 开始的数组 mountain 。你的任务是找出数组 mountain 中的所有 峰值。 以数组形式返回给定数组中 峰值 的…...

软考结束。有什么要说的

1. 竟然是机试&#xff0c;出乎我意料。是 考试机构觉得笔试成本高了么。这次的考试是机试&#xff0c;相比以往有所不一样。感言是不是以后都会在固定地点考试也说不准。 2. 遇到年轻人。 这次旁边的一个女同学第一次参加&#xff0c;还像我询问了一些关于软考的事。我是有…...

Matlab读取Swarm球谐系数,并绘制EWH全球格网图(存在疑问)

ICGEM官网下载 COST-G发布的4040的球谐系数 close all; clearvars -except; % addpath(E:\Code\Tool\Function\GRACE_functions); dir_degree_1 E:\Code\GRACE_data\Degree_1\deg1_coef.txt; dir_c20 E:\Code\GRACE_data\Degree_2\C20_RL06.txt; myDir_Swarm E:…...

Vue集成Iframe

一、应用场景&#xff0c;为什么要集成Iframe&#xff1f; 1、庞大项目拆分后&#xff0c;便于管理和部署&#xff0c;用集成Iframe的方法合并 2、避免功能重复开发&#xff0c;共用模块可单独开发为一个项目&#xff0c;既可独立部署&#xff0c;也可集成到中台系统 二、集成…...

Android Studio 所有历史版本下载

一、官网链接 https://developer.android.google.cn/studio/archive 操作 二、AndroidDevTools地址 https://www.androiddevtools.cn/ 参考 https://blog.csdn.net/qq_27623455/article/details/103008937...

5.27作业

定义自己的命名空间my_sapce&#xff0c;在my_sapce中定义string类型的变量s1&#xff0c;再定义一个函数完成对字符串的逆置。 #include <iostream> #include <string.h>using namespace std; namespace my_space {string s1;void RevString(string &s1); } v…...

微服务架构下的‘黑带’安全大师:Spring Cloud Security全攻略!

深入探讨了微服务间的安全通信、安全策略设计以及面对经典安全问题的应对策略。无论你是微服务的新手还是资深开发者&#xff0c;都能在本文中找到提升安全功力的秘籍。让我们一起成为微服务架构下的‘黑带’安全大师&#xff01; 文章目录 1. 引言微服务安全挑战与重要性Sprin…...

Py列表(list)

目录 正向索引&#xff1a; 反向索引&#xff1a; 嵌套列表&#xff1a; 修改列表中的值 列表常用的方法 实例 练习&#xff1a; 正向索引&#xff1a; 从0开始&#xff0c;依次递增。第一个元素的索引为0&#xff0c;第二个元素的索引为1&#xff0c;依此类推。 列表的下标…...

黑马es0-1实现自动补全功能

1、安装分词器 上github上找人做好的分词器&#xff0c;放到es-plugin数据卷里&#xff0c;然后重启es即可 2、自定义分词器 elasticsearch中分词器(analyzer)的组成包含三部分: character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符 …...

react通过上下文深入传递数据

通常&#xff0c;您将通过 props 将信息从父组件传递到子组件。但是&#xff0c;如果必须将道具传递到中间的许多组件&#xff0c;或者应用中的许多组件需要相同的信息&#xff0c;则传递道具可能会变得冗长且不方便。Context 允许父组件将一些信息提供给其下树中的任何组件&am…...

「代码厨房大揭秘:Python性能优化的烹饪秘籍!」

哈喽&#xff0c;我是阿佑&#xff0c;上篇咱们讲了 Socket 编程 —— 探索Python Socket编程&#xff0c;赋予你的网络应用隐形斗篷般的超能力&#xff01;从基础到实战&#xff0c;构建安全的聊天室和HTTP服务器&#xff0c;成为网络世界的守护者。加入我们&#xff0c;一起揭…...

【重学C语言】十六、联合、枚举、面向对象编程

【重学C语言】十六、联合、枚举、面向对象编程 联合定义联合体使用联合体注意事项枚举枚举的定义为枚举常量指定整数值枚举的使用枚举的打印枚举的优势注意事项面向对象编程1. 结构体(Structs)2. 封装(Encapsulation)3. 继承(Inheritance)...

Github2024-05-21 Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-05-21统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10C项目1TypeScript项目1youtube-dl - 从YouTube和其他网站下载视频的命令行程序 创建周期:4951 天开发语言:Python协议类型:The …...

labview_开放协议

一、开放协议 二、硬件设置 英格索兰硬件设置&#xff1a; 三、配套测试软件 四、Labview代码...

AWS安全性身份和合规性之Amazon Macie

Amazon Macie是一项数据安全和数据隐私服务&#xff0c;它利用机器学习&#xff08;ML&#xff09;和模式匹配来发现和保护敏感数据。可帮助客户发现、分类和保护其敏感数据&#xff0c;以及监控其数据存储库的安全性。 应用场景&#xff1a; 敏感数据发现 一家金融服务公司…...

redis数据类型set,zset

华子目录 Set结构图相关命令sdiff key1 [key2]sdiffstore destination key1 [key2...]sinter key1 [key2...]sinterstore destination key1 [key2...]sunion key1 [key2...]sunionstore destination key1 [key2...]smove source destination memberspop key [count]sscan key c…...

央视网视频下载和花屏问题处理

央视网(www.cctv.com)视频下载往往是花屏的&#xff0c;如何处理呢&#xff1f; 如果您是IT技术开发者&#xff0c;那么您可以通过下面步骤自己实现。 用chrome浏览器&#xff0c;F2打开开发者工具&#xff0c;找到当前页面的network 然后找一个接口&#xff1a;https://vdn.a…...

四、通信和网络安全—局域网|广域网|远程连接和攻击技术(CISSP)

目录 1.局域网和广域网 1.1 WAN技术总结 2.远程连接—无线技术 2.1 VPN 2.2 隧道协议总结...

15、设计模式之责任链模式

责任链模式 顾名思义&#xff0c;责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;为请求创建了一个接收者对象的链。这种模式给予请求的类型&#xff0c;对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中&#xff0c;通…...

神奇动物在哪里,但导演是微软

大数据产业创新服务媒体 ——聚焦数据 改变商业 一说到计算机视觉&#xff0c;大多数人第一时间联想到的便是“人脸识别”、“自动驾驶“、道路检测”等跟我们日常生活息息相关的关键词。而在2024年的5月末&#xff0c;微软在GitHub上面上传了这样一个计算机视觉的项目&#x…...

Flutter 中的 Flow 小部件:全面指南

Flutter 中的 Flow 小部件&#xff1a;全面指南 Flutter 的 Flow 是一个功能强大的布局小部件&#xff0c;它允许开发者在父组件的任意位置放置子组件。Flow 可以通过使用 FlowDelegate 完全自定义子组件的布局&#xff0c;这为创建复杂的自定义布局提供了极大的灵活性。本文将…...

【pyspark速成专家】11_Spark性能调优方法2

目录 ​编辑 二&#xff0c;Spark任务UI监控 三&#xff0c;Spark调优案例 二&#xff0c;Spark任务UI监控 Spark任务启动后&#xff0c;可以在浏览器中输入 http://localhost:4040/ 进入到spark web UI 监控界面。 该界面中可以从多个维度以直观的方式非常细粒度地查看Spa…...

吊顶的做法防踩坑,吊顶怎么省钱还好看

怎么做个好看的吊顶?你天天抬头看不? 现在楼房到手本身层高两米75左右,等铺完地暖和瓷砖还得增加几公分 如果再整个吊顶,就属于花钱买压抑了,吊顶就是遮丑, 某些比较显层高还亮堂,今天把做法分享出来 开发商给的毛坯两米8 做完地暖铺完瓷砖,层高是两米七八, 让木工在走廊两边…...

揭秘Tensor Core黑科技:如何让AI计算速度飞跃

揭秘 Tensor Core 底层&#xff1a;如何让AI计算速度飞跃 Tensor Core&#xff0c;加速深度学习计算的利器&#xff0c;专用于高效执行深度神经网络中的矩阵乘法和卷积运算&#xff0c;提升计算效率。 Tensor Core凭借混合精度计算与张量核心操作&#xff0c;大幅加速深度学习…...

为什么会有websocket(由来)

一、HTTP 协议的缺点和解决方案 1、HTTP 协议的缺点和解决方案 用户在使用淘宝、京东这样的网站的时候&#xff0c;每当点击一个按钮其实就是发送一个http请求。那我们先来回顾一下http请求的请求方式。 一个完整的http请求是被分为request请求节点和response响应阶段的&…...

【MySQL精通之路】优化

1 优化概述 数据库性能取决于数据库级别的几个因素&#xff0c;如表、查询和配置设置。这些软件结构导致了硬件级别的CPU和I/O操作&#xff0c;您必须将其最小化并使其尽可能高效。 在研究数据库性能时&#xff0c;首先要学习软件方面的高级规则和指导原则&#xff0c;并使用挂…...

解读大模型应用的可观测性

一、引言 随着人工智能技术的飞速发展&#xff0c;大模型作为AI领域的重要分支&#xff0c;正日益成为科技竞争的新高地。大模型通过输入大量语料进行训练&#xff0c;赋予计算机拥有像人类一样的“思考”能力&#xff0c;使其能够理解文本、图片、语音等内容&#xff0c;并进…...

嵌入式学习记录5.18(多点通信)

一、套接字属性设置相关函数 #include <sys/types.h> /* See NOTES */#include <sys/socket.h>int getsockopt(int sockfd, int level, int optname,void *optval, socklen_t *optlen);int setsockopt(int sockfd, int level, int optname,const void *op…...

shell脚本的基础应用

规范脚本的构成 #&#xff01;/bin/bash # 注释信息 可执行的语句 执行脚本的方法 有1.添加x权限 ,绝对路经&#xff0c;或者相对路径2. 使用解释器 不需加x,root...bash...bash..echo 3,用source&#xff0c; 开机root ...bash ...echo bash -x /opt/test01.sh &#xff…...