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语言中的文件操作, 但那根本是不足以理解文件的,即站在语言角度是不可能理解文件的 我们要…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
