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

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&#xff08;Data Query Language&#xff09;:数据查询语言&#xff0c;用来查询数据库中表的记录。 一、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 论文链接&#xff1a;https://arxiv.org/pdf/2407.11335 代码链接&#xff1a;https://github.com/eternaldolphin/LaMI-DETR 现有方法通过利…...

京准电钟:NTP时间服务器让大数据时钟同步

京准电钟&#xff1a;NTP时间服务器让大数据时钟同步 京准电钟&#xff1a;NTP时间服务器让大数据时钟同步 NTP是一种用于同步网络中设备时间的协议&#xff0c;广泛用于互联网和局域网中。NTP网络时间服务器则是基于NTP协议构建&#xff0c;为网络中的设备提供时间同步服务的服…...

SSL免费证书申请(七牛云/阿里云等)

最近运维的几个项目SSL证书要过期了&#xff0c;领导一直催促着要搞&#xff0c;然后也是在网上找了各种链接、各种方式&#xff08;谨防上当受骗&#xff09;、各种收费&#xff1b; 于是我记录一下我自己生成SSL证书的过程。 前几年我依稀记得免费时间有一年以上的&#xff…...

十二、结构型(代理模式)

代理模式&#xff08;Proxy Pattern&#xff09; 概念 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;代理对象在不改变目标对象功能的前提下&#xff0c;通过控制对目标对象的访问&#xff0c;来实现延迟加载、权限控制、日志记录等功能。代…...

使用 python 下载 bilibili 视频

本文想要达成的目标为&#xff1a;运行 python 代码之后&#xff0c;在终端输入视频链接&#xff0c;可自动下载高清 1080P 视频并保存到相应文件夹。 具体可分为两大步&#xff1a;首先&#xff0c;使用浏览器开发者工具 F12 获取请求链接相关信息&#xff08;根据 api 接口下…...

DevExpress WinForms中文教程:Data Grid - 如何点击获取信息?

在使用DevExpress WinForms的Data Grid之类控件时&#xff0c;可能需要实现自定义用户交互&#xff0c;例如显示数据行的上下文菜单&#xff0c;或者在双击一行时调用编辑表单。在这些情况下&#xff0c;您需要在指定的坐标处标识网格元素。 在本教程中&#xff0c;您将学习如…...

真空牛肉滚揉机的优点:

‌真空滚揉机是一种用于食品加工的设备&#xff0c;主要用于肉类深加工&#xff0c;如肉食制品和低温火腿的生产。‌ 它通过滚揉、按压和腌制的过程&#xff0c;在真空状态下将原料肉与辅料、添加剂均匀混合&#xff0c;以提高肉制品的质量和口感‌。 真空滚揉机的工作原理是利…...

【物流配送中心选址问题】基于退火算法混合粒子群算法

课题名称&#xff1a; 基于退火算法混合粒子群算法的物流配送中心选址问题 改进方向&#xff1a;模拟退火算法优化粒子群算法 代码获取方式&#xff08;付费&#xff09;&#xff1a; 模型说明&#xff1a; 待补充 Matlab仿真结果&#xff1a; 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基本使用

一、图形化界面 二、创建新项目 创建文件&#xff0c;加入暂存区&#xff0c;提交到版本库 三、创建分支 四、合并分支 1.切换至master 五、更新分支 六、解决冲突 修改冲突&#xff0c;加入暂存区&#xff0c;提交到版本库 七、远程创建库 Gitee - 基于 Git 的代码托管和研…...

从automaxprocs库浅窥Linux容器的资源控制

automaxprocs能够自动调整Go程序中的Goroutine数量&#xff0c;以充分利用系统资源并提高程序的性能。 automaxprocs通过读取系统信息&#xff0c;如CPU核心数和Cgroups限制&#xff0c;来动态调整Goroutine的数量 automaxprocs获取CPU限额的关键方法在 // CPUQuotaToGOMAXP…...

AI 读文献(二):综述论文10倍速读和整理

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 上一篇娜姐讲了research研究论文的速度框架和效果&#xff0c; AI阅读研究论文&#xff0c;这个方法10倍速提升效率还不损失关键信息&#xff01; 学员们反馈效果很好&#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. 避免全表扫描 当查询的数据量非常大时&#xff0c;全表扫描的效率会很低。应尽量通过在WHERE和ORDER BY涉及的列上创建索引&#xff0c;避免全表扫描。索引就像一本书的目录&#xff0c;可以快速定位到需要的数据&#xff0c;而不用从头开始逐页查找。 示例&#xff1a; 如…...

QT--QPushButton设置文本和图标、使能禁能、信号演示

按钮除了可以设置显示文本之外&#xff0c;还可以设置图标 文本 可以获取和设置按钮上显示的文本 // 获取和设置按钮的文本 QString text() const void setText(const QString &text)该属性&#xff0c;既可以在 Qt 设计师右侧的属性窗口中修改&#xff0c;也可以在代码…...

PostgreSQL学习笔记六:模式SCHEMA

模式&#xff08;Schema&#xff09; PostgreSQL中的模式&#xff08;Schema&#xff09;是一个命名的数据库对象集合&#xff0c;包括表、视图、索引、数据类型、函数、存储过程和操作符等。模式的主要作用是组织和命名空间数据库对象&#xff0c;使得同一个数据库中可以包含…...

基础IO -- 理解文件(1)

目录 一&#xff1a;回顾文件 二&#xff1a;加深对文件的理解 1.概念 2.以w写方式打开 3.以a追加方式打开 4.重定向 一&#xff1a;回顾文件 以前学习过在C语言中的文件操作&#xff0c; 但那根本是不足以理解文件的&#xff0c;即站在语言角度是不可能理解文件的 我们要…...

Spark性能调优实战:如何通过预传依赖至HDFS加速任务启动(spark.yarn.jars与spark.yarn.archive配置详解)

1. 为什么需要预传依赖到HDFS&#xff1f; 每次提交Spark任务时&#xff0c;最让人头疼的就是漫长的等待时间。我曾经在一个中型集群上测试&#xff0c;一个简单的WordCount任务居然花了3分钟才真正开始执行——其中2分50秒都耗在了依赖上传阶段。这种体验就像每次开车前都要重…...

内核热补丁和function trace的兼容性浅析

本文代码基于linux内核4.19.195. 之前的文章简要讲解了内核热补丁的原理&#xff0c;也提到了热补丁是基于ftrace框架实现的。平时我们在用ftrace时&#xff0c;最常用的功能当属function tracer了。这天一个有趣的问题突然浮现在我的脑海里&#xff1a; 如果我对同一个函数&am…...

避坑指南:LangChain中create_retrieval_chain与JinaEmbeddings的最佳实践

LangChain与JinaEmbeddings深度整合&#xff1a;从避坑到性能优化的全流程指南 在构建基于大语言模型的检索增强生成(RAG)系统时&#xff0c;LangChain框架与JinaEmbeddings的组合已经成为许多开发者的首选方案。这种技术组合既能利用LangChain强大的流程编排能力&#xff0c;…...

Qwen3-VL量化版实测:8bit精度仅降0.13%的奥秘

Qwen3-VL量化版实测&#xff1a;8bit精度仅降0.13%的奥秘 【免费下载链接】Qwen3-VL-8B-Instruct-w8a8s-310 项目地址: https://ai.gitcode.com/Eco-Tech/Qwen3-VL-8B-Instruct-w8a8s-310 导语&#xff1a;阿里云Qwen3-VL视觉语言模型推出8bit量化版本Qwen3-VL-8B-Inst…...

PX4无人机开发实战:5个关键ROS话题的订阅与发布详解(附代码示例)

PX4无人机开发实战&#xff1a;5个关键ROS话题的订阅与发布详解&#xff08;附代码示例&#xff09; 当你在PX4无人机开发中首次接触ROS通信时&#xff0c;可能会被各种话题和服务搞得晕头转向。作为连接飞控与外部系统的桥梁&#xff0c;这些通信接口直接决定了无人机的可控性…...

如何用JSON Crack将复杂数据一键转化为交互式图表:新手必备的可视化指南

如何用JSON Crack将复杂数据一键转化为交互式图表&#xff1a;新手必备的可视化指南 【免费下载链接】jsoncrack.com ✨ Innovative and open-source visualization application that transforms various data formats, such as JSON, YAML, XML, CSV and more, into interacti…...

Gauge常见问题解决:10个典型错误及修复方法

Gauge常见问题解决&#xff1a;10个典型错误及修复方法 【免费下载链接】gauge Light weight cross-platform test automation 项目地址: https://gitcode.com/gh_mirrors/ga/gauge Gauge作为一款轻量级跨平台测试自动化工具&#xff0c;在使用过程中可能会遇到各种错误…...

Comsol 薄板声辐射响应优化:激励位置与频率的协同效应

1. 薄板声辐射响应基础原理 当你用手指轻轻敲击一块金属薄板时&#xff0c;会听到清脆的声响。这个看似简单的现象背后&#xff0c;隐藏着复杂的声学原理。在Comsol仿真中&#xff0c;我们可以精确模拟这种声辐射响应&#xff0c;为声学设备设计提供科学依据。 薄板声辐射的本质…...

从‘Hello World’到物联网:用Hi3861点灯程序,带你理解鸿蒙轻量级设备开发的核心流程

从‘Hello World’到物联网&#xff1a;用Hi3861点灯程序&#xff0c;带你理解鸿蒙轻量级设备开发的核心流程 在物联网设备开发领域&#xff0c;鸿蒙系统&#xff08;OpenHarmony&#xff09;正以其轻量级、高并发的特性吸引着越来越多的开发者。对于初学者而言&#xff0c;一个…...

GHelper轻量级解决方案:华硕笔记本性能调校完全指南

GHelper轻量级解决方案&#xff1a;华硕笔记本性能调校完全指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址:…...