数据库:SQL分类之DQL详解

1.DQL语法

select 

          字段列表

from

          表名列表

where

          条件列表

group by

          分组字段列表

having

          分组后条件列表

order by

          排序字段列表

limit 

          分页参数

基本查询

条件查询(where)

聚合函数(count、max、min、avg、sum )

分组查询(group by)

排序查询(order by)

分页查询 (limit)

2.基础查询 

1.查询指定字段

select 字段1,字段2,字段3 from 表名;

例:

select name,workno,age from employee;
 2.查询所有字段返回

select 字段1,字段2,字段3 from 表名;

select * from 表名;

例:

select id,workno,name,gender,age,idcard,workaddress,entrydate from employee;select * from employee;
 3.设置别名

select 字段 as 别名 from 表名;

例: 

select workaddress as '工作地址' from employee;select workaddress as  from employee;
 4.去除重复记录

select distinct 字段列表  from 表名;

例:

select distinct workaddress '工作地址' from employee;select distinct workaddress from employee;

3.条件查询

1.语法 

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

2.条件
比较运算符功能
>大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
between ... and ..在某个范围之内(含最小、最大值)
in(...)在 in 之后的列表中的值,多选一
like 占位符模糊匹配(_匹配单个字符,%匹配任意字符)
is NULL是 NULL
逻辑运算符功能
and 或 &&并且(多个条件同时成立)
OR 或 ||或者(多个条件任意一个成立)
NOT 或 !非、不是

 例:

select *  from employee where age = 88;select * from employee where age <30;select * from employee where idcard is NULL;select * from employee where idcard is not null;select * from employee where age != 88;select *from employee  where age in(19,20,21);//查找名字是两个字的员工
select *from employee where name like '__';//注意这里面是两个下划线//查找身份证最后一位是X的员工
select *from employee where idcard like '%X';
select *from employee where idcard like '_________________X';// 17个下划线

 4.聚合函数

1.聚合函数:将一列数据作为一个整体,进行纵向计算。

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

2.语法:

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

例:

select count(*) from employee;select count(id) from employee;select * from employee where workaddress = '西安';select sum(age) from employee where workaddress = '西安';

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

5.分组查询 

1.语法

select 字段列表 from 表名 (where 条件)group by 分组字段名 (having 分组后过滤条件)

注意:

  • 执行顺序:where > 聚合函数 > having
  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
2.where 和 having 的区别
  1. 执行时间不同:where 是分组之前进行过滤,不满足 where 条件,不参与分组;而 having 是分组之后对结果进行过滤。
  2. 判断条件不同:where 不能对聚合函数进行判断,而 having 可以。

例:

//查询性别分组,统计男性员工 和 女性员工 的数量
select gender,count(*) from employee group by gender;//根据性别分组,统计男性员工 和 女性员工 的平均年龄
select gender,avg(age) from employee group by gender;//查询员工年龄小于30,并根据工作地址分组
select workaddress,count(*) from employee where age < 30 group by workaddress ;//查询员工年龄小于30,并根据工作地址分组,获取员工数量大于等于2的工作地址select workaddress,count(*) from employee where age < 30 group by workaddress having count(*) >= 2;

 6.排序查询

1.语法

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

例: 

//年龄升序排序
select * from employee order by age asc;//年龄进行倒序
select * from employee order by age desc;//先按照年龄升序排序,再根据入职时间降序
select * from employee order by age asc, entrydate desc;

 7.分页查询

1.语法

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

注意 :

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

例:

//查询第一页员工数据,每页展示10条记录
select * from employee limit 0,10;//查询第二页员工数据,每页展示10条数据
select *from employee limit 10,10;

8.执行顺序

9.课后训练

 为了对大家的知识进行巩固,我准备了下面一些例题,大家可以试试看。稍后我会把答案放置评论区。

1.查询年龄为20,21,24的女性员工信息

2.查询性别为男,并且年龄在25-29(含)岁以内的姓名为三个字的员工

3.年龄小于60岁,男性员工和女性员工的人数

4.查询年龄小于等于35岁的员工姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同,按入职时间降序排序

5.性别为男,且年龄在23-25之间的前5个员工的信息,并对查询结果按年龄升序排序,如果年龄相同,按入职时间降序排序

本节知识讲解就到此结束啦,下期再见! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/816808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码整洁?我后悔重构了代码

原文&#xff1a;Dan Abramov - 2020.01.11 那是一个深夜。 我的同事刚刚提交了他们一周编写的代码。我们正在开发一个图形编辑器的画布&#xff0c;他们实现了通过拖动边缘的小手柄&#xff0c;来调整形状&#xff08;如矩形和椭圆&#xff09;的大小的功能。 代码是有效的…

实习僧网站的实习岗位信息分析

目录 背景描述数据说明数据集来源问题描述分析目标以及导入模块1. 数据导入2. 数据基本信息和基本处理3. 数据处理3.1 新建data_clean数据框3.2 数值型数据处理3.2.1 “auth_capital”&#xff08;注册资本&#xff09;3.2.2 “day_per_week”&#xff08;每周工作天数&#xf…

TFT显示屏驱动

REVIEW 已经学习过VGA 时序与实现-CSDN博客 VGA 多分辨率-CSDN博客 今天就来让TFT屏显示一下 ACZ702开发板管脚信息表 - ACZ702开发板 - 芯路恒电子技术论坛 - Powered by Discuz! (corecourse.cn) 小梅哥视频&#xff1a;24 RGB TFT显示屏原理与驱动实现_哔哩哔哩_bilibili …

活动图高阶讲解-16

77 00:05:39,520 --> 00:05:41,520 另外一个就是循环 78 00:05:41,520 --> 00:05:45,520 如果怎么样 79 00:05:45,520 --> 00:05:47,520 就再做一遍 80 00:05:47,520 --> 00:05:49,520 如果还满足条件就再做一遍 81 00:05:49,520 --> 00:05:51,520 那就是循…

TG-12F使用SDK对接阿里生活物联网平台

文章目录 前言一、注意二、准备1. 安装Ubuntu&#xff08;版本20.04 X64&#xff09;程序运行时库。按顺序逐条执行命令&#xff1a;2. 安装Ubuntu&#xff08;版本20.04 X64&#xff09;依赖软件包。按照顺序逐条执行命令&#xff1a;3. 安装Python依赖包。按照顺序逐条执行命…

[spring] Spring Boot REST API - CRUD 操作

Spring Boot REST API - CRUD 操作 这里主要提一下 spring boot 创建 rest api&#xff0c;并对其进行 CRUD 操作 jackson & gson 目前浏览器和服务端主流的交互方式是使用 JSON(JavaScript Object Notation)&#xff0c;但是 JSON 没有办法直接和 Java 的 POJO 创建对应…

python-numpy(3)-线性代数

一、方程求解 参考资料 对于Ax b 这种方程&#xff1a; np.linalg.inv(A).dot(B)np.linalg.solve(A,b) 1.1 求解多元一次方程一个直观的例子 # AXB # X A^(-1)*B A np.array([[7, 3, 0, 1], [0, 1, 0, -1], [1, 0, 6, -3], [1, 1, -1, -1]]) B np.array([8, 6, -3, 1]…

cannot import name ‘get_host‘ from ‘urllib3.util.url‘

Error in py_module_import(module, convert convert) : ImportError: cannot import name get_host from urllib3.util.url (D:\\url.py) Run reticulate::py_last_error() for details. 这个错误表明在 urllib3 模块的 util.url 子模块中找不到名为 get_host 的函数。这可能…

第十五届蓝桥杯省赛C/C++大学B组真题及赛后总结

目录 个人总结 C/C 组真题 握手问题 小球反弹 好数 R 格式 宝石组合 数字接龙 爬山 拔河 ​编辑 再总结及后续规划 个人总结 第一次参加蓝桥杯&#xff0c;大二&#xff0c;以前都在在学技术&#xff0c;没有系统的学过算法。所以&#xff0c;还是花了挺多时间去备…

Rust - 所有权

所有的程序都必须和计算机内存打交道&#xff0c;如何从内存中申请空间来存放程序的运行内容&#xff0c;如何在不需要的时候释放这些空间&#xff0c;成了重中之重&#xff0c;也是所有编程语言设计的难点之一。在计算机语言不断演变过程中&#xff0c;出现了三种流派&#xf…

基于深度学习的花卉检测系统(含PyQt界面)

基于深度学习的花卉检测系统&#xff08;含PyQt界面&#xff09; 前言一、数据集1.1 数据集介绍1.2 数据预处理 二、模型搭建三、训练与测试3.1 模型训练3.2 模型测试 四、PyQt界面实现参考资料 前言 本项目是基于swin_transformer深度学习网络模型的花卉检测系统&#xff0c;…

软考125-上午题-【软件工程】-传统软件的测试策略

一、传统软件的测试策略 有效的软件测试实际上分为4步进行&#xff0c;即&#xff1a;单元测试、集成测试、确认测试、系统测试。 1-1、单元测试&#xff08;模块测试&#xff09; 单元测试也称为模块测试&#xff0c;在模块编写完成且无编译错误后就可以进行。 单元测试侧重…

温故知新之-TCP Keepalive机制及长短连接

[学习记录] 前言 TCP连接一旦建立&#xff0c;只要连接双方不主动 close &#xff0c;连接就会一直保持。但建立连接的双方并不是一直都存在数据交互&#xff0c;所以在实际使用中会存在两种情况&#xff1a;一种是每次使用完&#xff0c;主动close&#xff0c;即短连接&…

JVM虚拟机(五)强引用、软引用、弱引用、虚引用

目录 一、强引用二、软引用三、弱引用四、虚引用五、总结 引文&#xff1a; 在 Java 中一共存在 4 种引用&#xff1a;强、软、弱、虚。它们主要指的是&#xff0c;在进行垃圾回收的时候&#xff0c;对于不同的引用垃圾回收的情况是不一样的。下面我们就一起来看一下这 4 种引用…

51单片机实验03-单片机定时/计数器实验

目录 一、实验目的 二、实验说明 1、51单片机有两个16位内部计数器/定时器&#xff08;C/T&#xff0c; Counter/Timer&#xff09;。 2、模式寄存器TMOD 1) M1M0工作模式控制位&#xff1b; 2) C/T定时器或计数器选择位&#xff1a; 3&#xff09;GATE定时器/计数器运行…

软考系规第2章思维导图,软硬件网络和次新技术大杂烩

虽然目前系统规划与管理师的教程是否改版存在不确定性&#xff0c;但是不影响咱们先概要了解当前的教程&#xff0c;使用思维导图的方式粗读教程。 为了帮助你更好的学习系规教程&#xff0c;降低系规教程阅读门槛&#xff0c;指尖疯特发起了教程伴读活动&#xff0c;通过伴读脑…

关于GDAL计算图像坐标的几个问题

关于GDAL计算图像坐标的几个问题_gdal读取菱形四角点坐标-CSDN博客 这篇文章写的很好&#xff0c;讲清楚了图像行列号与图像点坐标&#xff08;x,y&#xff09;对应关系&#xff0c;以及图像行列号如何转为地理坐标的&#xff0c;转载一下做个备份。 1.关于GDAL计算图像坐标的…

部署Kafka集群图文详细步骤

1 集群规划 共三台虚拟机同处overlay网段&#xff0c;每台虚拟机部署一套kafka和zookeeper&#xff0c;kafka_manager安装其中一台虚拟机上即可。 HostnameIP addrPortListenerzk1docker-swarm分配2183:2181zk2docker-swarm分配2184:2181zk3docker-swarm分配2185:2181k1docke…

python-使用bottle时间简易服务器

python-使用bottle时间简易服务器 背景调试读取文本所有内容字段解释json字符串解析追加写入文件 整理后整理后写入文件方法将目录下所有文本的内容批量追加到一个文本搜索字符串方法实现简易服务器通过浏览器访问 背景 202310.txt内容是一段json字符串&#xff0c;目的是通过…

C++进阶技巧:如何在同一对象中存储左值或右值

如何在同一对象中存储左值或右值 一、背景二、跟踪值2.1、存储引用2.2、存储值 三、存储variant四、通用存储类4.1、定义const访问4.2、定义非const访问 五、创建存储六、总结 一、背景 C 代码似乎经常出现一个问题&#xff1a;如果该值可以来自左值或右值&#xff0c;则对象如…