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语言中的文件操作, 但那根本是不足以理解文件的,即站在语言角度是不可能理解文件的 我们要…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...

三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...