SQL分类中的DQL
DQL(Data Query Language):数据查询语言,用来查询数据库中表的记录。
一、DQL语法
| 编写顺序 | 执行顺序 | |
| SELECT | 字段列表 | 5 |
| FROM | 表名列表 | 1 |
| WHERE | 条件列表 | 2 |
| GROUP BY | 分组字段列表 | 3 |
| HAVING | 分组后条件列表 | 4 |
| ORDER BY | 排序字段列表 | 6 |
| LIMIT | 分页参数 | 7 |
二、DQL基本查询
1、查询多个字段
SELECT 字段1,字段2...FROM 表名;
查询所有字段:SELECT *FROM;或者 SELECT 所有字段名 FROM 表名;
2、设置别名
SELECT 字段1 [AS 别名1],字段2[AS 别名2]...FROM 表名;(AS可省略)
3、去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
用以下例子举例:
创建一组数据
create table emp(id int comment '编号',workno varchar(10) comment '工号',name varchar(10) comment '姓名',gender char(1) comment '性别',age tinyint unsigned comment '年龄',idcard char(18) comment '身份证号',workaddress varchar(50) comment '工作地址',entrydate date comment '入职时间'
)comment '员工表';insert into emp(id, workno, name, gender, age, idcard, workaddress, entrydate)
values (1,'1','柳岩','女',20,'123456789012345678','北京','2002-01-01'),(2,'2','张无忌','男',21,'123456789012345677','天津','2003-01-01'),(3,'3','韦一笑','男',20,'123456789012345676','上海','2004-01-01'),(4,'4','赵敏','女',24,'123456789012345675','苏州','2005-01-01'),(5,'5','小昭','女',27,'123456789012345674','扬州','2006-01-01'),(6,'6','小乔','女',29,'123456789012345673','大理','2007-01-01'),(7,'7','王兆进','女',27,'123456789012345672','重庆','2008-01-01'),(8,'8','大乔','女',29,'123456789012345671','北京','2009-01-01'),(9,'9','周瑜','男',24,'123456789012345670','北京','2010-01-01'),(10,'10','孙策','男',25,'123456789012345618','成都','2011-01-01'),(11,'11','刘备','男',25,'123456789012345628','武汉','2012-01-01'),(12,'12','张飞','男',22,'123456789012345638','长沙','2013-01-01'),(13,'13','关羽','男',21,'123456789012345648','拉萨','2014-01-01'),(14,'14','项羽','男',20,'123456789012345658','昆明','2015-01-01'),(15,'15','虞姬','女',26,'123456789012345648','北京','2016-01-01'),(16,'16','貂蝉','女',25,null,'北京','2017-01-01');

4、举例
-- 一、基本查询-- 查询指定字段workno,name,ageselect workno,name,age from emp;-- 查询所有字段select id, workno, name, gender, age, idcard, workaddress, entrydate from emp;-- 查询所有员工的工作地址,并起一个别名select workaddress as '工作地址' from emp;-- 查询员工的上班地址不重复的select distinct workaddress '工作地址' from emp;
三、DQL条件查询
1、语法
SELECT 字段列表 FROM 表名 WHERE 条件列表;
2、条件
| 比较运算符 | 逻辑运算符 | ||
| >= <= > < = !=(<>) | 大于等于、小于等于、大于、小于、等于、不等于 | &&(AND) | 并且 |
| BETWEEN…AND | 在某个范围内(含最大、最小值) | ||(OR) | 或者 |
| IN(…) | 在IN里面的列表的值,多选一,符合一个也算 | NOT(!) | 非 |
| LIKE占位符 | _匹配单个字符,%匹配任意个字符 | ||
| IS NULL | 值为null | ||
3、举例
-- 二、条件查询-- 1、查询年龄等于25的员工信息
select * from emp where age=25;-- 2、查询年龄小于22的员工信息select * from emp where age<22;-- 3、查询年龄小于22的员工信息select * from emp where age<=22;-- 4、查询没有身份证号的员工信息select * from emp where idcard is null;-- 5、查询没有身份证号的员工信息select * from emp where idcard is not null;-- 6、查询年龄不等于25的员工select * from emp where age !=25;select * from emp where age <>25;-- 7、查询年龄在22到26岁之间的员工,包含22和26select * from emp where age >= 22 && age<= 26;select * from emp where age >= 22 and age<= 26;select * from emp where age between 22 and 26;-- 8、查询性别为女且年龄小于25的员工select * from emp where gender='女' and age <25;-- 9、查询年龄等于22或24或27的员工信息select * from emp where age=22 or age=24 or age=27;select * from emp where age in(22,24,27);-- 10、查询名字为两个字的员工信息select * from emp where name like '__';-- 11、查询身份证号最后一位为8的员工信息select * from emp where idcard like '%8';
四、DQL聚合函数
1、介绍
将一列数据作为一个整体,进行纵向计算。
2、常见的聚合函数
| COUNT | 统计数量 |
| MAX | 最大值 |
| MIN | 最小值 |
| AVG | 平均值 |
| SUM | 求和 |
3、语法
SELECT 聚合函数 (字段列表)FROM 表名;
4、举例
-- 三、聚合函数-- 1、统计员工数量
select count(*) from emp;
select count(idcard) from emp;-- 2、统计员工的平均年龄select avg(age) from emp;-- 3、统计员工的最大年龄select max(age) from emp;-- 4、统计员工的最大年龄select min(age) from emp;-- 5、统计北京地区员工的年龄之和select sum(age) from emp where workaddress='北京';
五、DQL分组查询
1、语法
SELECT 字段列表 FROM 表名 [WHERE条件] GROUP BY 分组字段名[HAVING分组后过滤条件]
2、WHERE 和HAVING的区别
(1)、执行时机不同:WHERE是分组之前进行过滤,不满足where 条件不参与分组,而having是分组之后对结果进行过滤。
(2)、判断条件不同:where不能对聚合函数进行判断,而having可以。
3、注意事项
执行顺序:where>聚合函数>having。分组之后,查询字段一般为聚合函数和分组字段,查询其他字段无意义。
4、举例
-- 四、分组查询-- 1、根据性别分组,统计男性员工和女性员工的数量select gender,count(*) from emp group by gender;-- 2、根据性别分组,统计男性员工和女性员工的平均年龄select gender,avg(age) from emp group by gender;-- 3、查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址select workaddress,count(*) from emp where age<27 group by workaddress having count(*) >=3;
六、DQL排序查询
1、语法
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1...;
2、排序方式
ASC:升序,默认的排序方式
DESC :降序
3、注意事项
如果多个字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
4、举例
-- 五、排序查询-- 1、根据年龄对员工进行排序SELECT * FROM emp ORDER BY age asc;SELECT * FROM emp ORDER BY age desc;-- 2、根据入职时间对员工进行降序排序SELECT * FROM emp ORDER BY entrydate desc;-- 3、根据年龄对公司员工进行升序排序,年龄相同再按照入职时间进行降序排序SELECT * FROM emp ORDER BY age asc,entrydate desc;
七、DQL分页查询
1、语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;
2、注意事项
(1)、起始索引从0开始,起始索引=(查询页码-1)*每页展示记录数
(2)、不同的数据库有不同的分页实现,mysql是limit。
(3)、如果查询的是第一页数据,起始索引可以省略。
3、举例
-- 六、分页查询-- 1、查询第一页员工数据,每页展示10条记录SELECT * FROM emp LIMIT 0,10;-- 2、查询第二页员工数据,每页展示10条记录SELECT * FROM emp LIMIT 10,10;
八、DQL语句练习
-- DQL语句练习-- 1、查询年龄为22,23,24,25岁的女性员工信息SELECT * FROM emp emp WHERE gender='女' AND age in(22,23,24,25);-- 2、查询性别为男,并且年龄在20-26岁(包含)以内的姓名为三个字的员工SELECT * FROM emp WHERE gender='男' AND (age BETWEEN 20 AND 30) AND name LIKE'__';-- 3、统计员工表中,年龄小于60岁的男性员工和女性员工的人数SELECT gender,COUNT(*) FROM emp WHERE age <=27 GROUP BY gender;-- 4、查询所有年龄小于等于27岁员工的姓名和年龄,并对查询结果按年龄升序排序,年龄相同按入职时间排序SELECT name,age FROM emp WHERE age <=27 ORDER BY age ,entrydate DESC;-- 5、查询性别为男,且年龄在25-40岁包含,以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序SELECT * FROM emp WHERE gender='男' AND age BETWEEN 25 and 40 ORDER BY age,entrydate LIMIT 5;
相关文章:
SQL分类中的DQL
DQL(Data Query Language):数据查询语言,用来查询数据库中表的记录。 一、DQL语法 编写顺序 执行顺序 SELECT 字段列表 5 FROM 表名列表 1 WHERE 条件列表 2 GROUP BY 分组字段列表 3 HAVING 分组后条件列表 4 ORDER BY 排…...
1.3.ReactOS系统 PAGED_CODE 宏函数的实现
#ReactOS系统 PAGED_CODE 宏函数的实现 ReactOS系统 PAGED_CODE 宏函数的实现 文章目录 PAGED_CODE 宏函数的实现 PAGED_CODE 宏函数的实现 #ifdef DBG#define PAGED_CODE() \if (VideoPortGetCurrentIrql() > 1 /* APC_LEVEL */) \{ \VideoPortDebugPrint(Error, "V…...
【论文速看】DL最新进展20241015-目标检测、图像超分
目录 【目标检测】【图像超分】 【目标检测】 [ECCV2024] LaMI-DETR: Open-Vocabulary Detection with Language Model Instruction 论文链接:https://arxiv.org/pdf/2407.11335 代码链接:https://github.com/eternaldolphin/LaMI-DETR 现有方法通过利…...
京准电钟:NTP时间服务器让大数据时钟同步
京准电钟:NTP时间服务器让大数据时钟同步 京准电钟:NTP时间服务器让大数据时钟同步 NTP是一种用于同步网络中设备时间的协议,广泛用于互联网和局域网中。NTP网络时间服务器则是基于NTP协议构建,为网络中的设备提供时间同步服务的服…...
SSL免费证书申请(七牛云/阿里云等)
最近运维的几个项目SSL证书要过期了,领导一直催促着要搞,然后也是在网上找了各种链接、各种方式(谨防上当受骗)、各种收费; 于是我记录一下我自己生成SSL证书的过程。 前几年我依稀记得免费时间有一年以上的ÿ…...
十二、结构型(代理模式)
代理模式(Proxy Pattern) 概念 代理模式(Proxy Pattern)是一种结构型设计模式,代理对象在不改变目标对象功能的前提下,通过控制对目标对象的访问,来实现延迟加载、权限控制、日志记录等功能。代…...
使用 python 下载 bilibili 视频
本文想要达成的目标为:运行 python 代码之后,在终端输入视频链接,可自动下载高清 1080P 视频并保存到相应文件夹。 具体可分为两大步:首先,使用浏览器开发者工具 F12 获取请求链接相关信息(根据 api 接口下…...
DevExpress WinForms中文教程:Data Grid - 如何点击获取信息?
在使用DevExpress WinForms的Data Grid之类控件时,可能需要实现自定义用户交互,例如显示数据行的上下文菜单,或者在双击一行时调用编辑表单。在这些情况下,您需要在指定的坐标处标识网格元素。 在本教程中,您将学习如…...
真空牛肉滚揉机的优点:
真空滚揉机是一种用于食品加工的设备,主要用于肉类深加工,如肉食制品和低温火腿的生产。 它通过滚揉、按压和腌制的过程,在真空状态下将原料肉与辅料、添加剂均匀混合,以提高肉制品的质量和口感。 真空滚揉机的工作原理是利…...
【物流配送中心选址问题】基于退火算法混合粒子群算法
课题名称: 基于退火算法混合粒子群算法的物流配送中心选址问题 改进方向:模拟退火算法优化粒子群算法 代码获取方式(付费): 模型说明: 待补充 Matlab仿真结果: 1. 模型优化后的仿真结果 2…...
elasticsearch 8.2 版本账号密码设置及SSL设置
背景:elasticsearch 8.2 设置账号密码-CSDN博客 failed to load SSL configuration does not contain any trusted certificate entries [2024-10-08T17:06:53,704][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main] org…...
git gui基本使用
一、图形化界面 二、创建新项目 创建文件,加入暂存区,提交到版本库 三、创建分支 四、合并分支 1.切换至master 五、更新分支 六、解决冲突 修改冲突,加入暂存区,提交到版本库 七、远程创建库 Gitee - 基于 Git 的代码托管和研…...
从automaxprocs库浅窥Linux容器的资源控制
automaxprocs能够自动调整Go程序中的Goroutine数量,以充分利用系统资源并提高程序的性能。 automaxprocs通过读取系统信息,如CPU核心数和Cgroups限制,来动态调整Goroutine的数量 automaxprocs获取CPU限额的关键方法在 // CPUQuotaToGOMAXP…...
AI 读文献(二):综述论文10倍速读和整理
我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 上一篇娜姐讲了research研究论文的速度框架和效果, AI阅读研究论文,这个方法10倍速提升效率还不损失关键信息! 学员们反馈效果很好&#x…...
【AAOS】Android Automotive 10模拟器源码下载及编译
源码下载 repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r47 repo sync -c --no-tags --no-clone-bundle 源码编译 source build/envsetup.sh lunch aosp_car_x86_64-userdebug make -j8 运行效果 emualtor Cluster Home Map All …...
前端开发攻略---使用css实现滚动吸附效果
实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title><style>…...
解析 MySQL 查询优化:提升性能的十个关键策略
1. 避免全表扫描 当查询的数据量非常大时,全表扫描的效率会很低。应尽量通过在WHERE和ORDER BY涉及的列上创建索引,避免全表扫描。索引就像一本书的目录,可以快速定位到需要的数据,而不用从头开始逐页查找。 示例: 如…...
QT--QPushButton设置文本和图标、使能禁能、信号演示
按钮除了可以设置显示文本之外,还可以设置图标 文本 可以获取和设置按钮上显示的文本 // 获取和设置按钮的文本 QString text() const void setText(const QString &text)该属性,既可以在 Qt 设计师右侧的属性窗口中修改,也可以在代码…...
PostgreSQL学习笔记六:模式SCHEMA
模式(Schema) PostgreSQL中的模式(Schema)是一个命名的数据库对象集合,包括表、视图、索引、数据类型、函数、存储过程和操作符等。模式的主要作用是组织和命名空间数据库对象,使得同一个数据库中可以包含…...
基础IO -- 理解文件(1)
目录 一:回顾文件 二:加深对文件的理解 1.概念 2.以w写方式打开 3.以a追加方式打开 4.重定向 一:回顾文件 以前学习过在C语言中的文件操作, 但那根本是不足以理解文件的,即站在语言角度是不可能理解文件的 我们要…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
Python常用模块:time、os、shutil与flask初探
一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...
Python的__call__ 方法
在 Python 中,__call__ 是一个特殊的魔术方法(magic method),它允许一个类的实例像函数一样被调用。当你在一个对象后面加上 () 并执行时(例如 obj()),Python 会自动调用该对象的 __call__ 方法…...
当下AI智能硬件方案浅谈
背景: 现在大模型出来以后,打破了常规的机械式的对话,人机对话变得更聪明一点。 对话用到的技术主要是实时音视频,简称为RTC。下游硬件厂商一般都不会去自己开发音视频技术,开发自己的大模型。商用方案多见为字节、百…...
GB/T 43887-2024 核级柔性石墨板材检测
核级柔性石墨板材是指以可膨胀石墨为原料、未经改性和增强、用于核工业的核级柔性石墨板材。 GB/T 43887-2024核级柔性石墨板材检测检测指标: 测试项目 测试标准 外观 GB/T 43887 尺寸偏差 GB/T 43887 化学成分 GB/T 43887 密度偏差 GB/T 43887 拉伸强度…...
