数据库: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.rhkb.cn/news/309447.html

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

相关文章

C语言100道练习题打卡(1)

1 有1&#xff0c;2&#xff0c;3&#xff0c;4四个数字&#xff0c;能组成多少个互不相同且不重复的三位数&#xff0c;都是多少 #include<stdio.h> //有1&#xff0c;2&#xff0c;3&#xff0c;4四个数字&#xff0c;能组成多少个互不相同且不重复的三位数&#xff…

分享一些有趣的 Linux 命令

1、sl 会显示一辆火车穿过你的终端屏幕 2、cmatrix 在终端中显示类似于《黑客帝国》电影中的绿色数字雨效果 3、fortune 显示一个随机的名人名言或者笑话 4、cowsay 让一头牛说出你输入的话 5、toilet 在终端中将输入的文本以艺术字体的形式呈现 6、figlet 类似于 toile…

ssm051网上医院预约挂号系统+jsp

网上医院预约挂号系统设计与实现 摘 要 如今的信息时代&#xff0c;对信息的共享性&#xff0c;信息的流通性有着较高要求&#xff0c;因此传统管理方式就不适合。为了让医院预约挂号信息的管理模式进行升级&#xff0c;也为了更好的维护医院预约挂号信息&#xff0c;网上医院…

Vue入门:天不生Vue,前端万古如长夜 - Vue从入门到放弃

目录 &#x1f44b; Vue环境搭建 1.安装node.js 2.配置环境变量 3.VSCode配置 4.安装Vue CLI 5.在VS Code中打开Vue项目 6.运行Vue项目 &#x1f440; Vue基础学习 1.引入vue.js 2.数据方法 3.生命周期&#xff01; 4.模板语法 5.对象语法 6.条件渲染 7.列表渲…

简历上写熟悉Linux下常用命令?直接寄

大家写简历技术栈时&#xff0c;都觉得越多越好&#xff0c;其中一条&#xff0c;熟悉Linux下常用命令&#xff1f;其实开发中Linux不是必备考点&#xff0c;除了运维&#xff0c;真正用的多的仅仅cd ls mkdir等&#xff0c;但当面试官问到上面命令时&#xff0c;是不是就傻眼了…

Java使用OpenOffice将office文件转换为PDF

Java使用OpenOffice将office文件转换为PDF 1. 先行工作1.1 OpenOffice官网下载1.2 JODConverter官网下载1.3 下载内容 2.介绍3. 安装OpenOffice服务3.1.Windows环境3.2 Linux环境 4. maven依赖5. 转换代码 1. 先行工作 请注意&#xff0c;无论是windows还是liunx环境都需要安装…

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

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

建模设计软件 Archicad 27 for mac激活版

在建筑设计领域&#xff0c;每一次技术的革新都意味着设计效率和质量的飞跃。Archicad 27 for Mac&#xff0c;就是这样一款引领行业变革的设计软件。 Archicad 27凭借出色的性能优化和强大的功能更新&#xff0c;为Mac用户带来了前所未有的建筑设计体验。它支持BIM&#xff08…

基于java的社区生活超市管理系统

开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclip…

低代码开发师中级实操题

目录 实操题一 1.创建空白应用 2.创建普通表单仓库库存表 3.创建客户信息表 4.创建进货登记表 5.创建出货登记表 6.设置数据联动 1&#xff09;进货登记表 2&#xff09;出货登记表数据联动 实操题二 1.提前下载好数据 2.新建空白应用 3.创建表单-员工信息录入名单…

26-51单片机-LCD12864液晶显示实验

一 主要涉及到的知识点: 1.1LCD12864 介绍: LCD12864 液晶屏结构上与 LCD1602 一样&#xff0c;只是在行列数与显示像素上区别很LCD12864&#xff0c; 以下简称 12864&#xff0c;注意区分 LCD1602 和 LCD12864。12864是 64行 128 列&#xff0c;当然也有可能会设 计成 64 列…

5-51单片机-蜂鸣器实验

一 主要涉及到的知识点: 1. 对系统默认的数据类型进行重定义,u8,u16; 2.延时函数,主要是将传过来的整数进行减减实现延时; 3.还用到了while()循环; 二 代码分析: 1. 首次定义一个变量,主要是为了延时蜂鸣器响亮的时长; 2.通过while()循环,使得Buzzer_Port产生脉冲信号,从而使蜂…

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]…

嵌入式单片机 TTL电平、232电平、485电平的区别和联系

一、简介 TTL、232和485是常见的串口通信标准&#xff0c;它们在电平和通信方式上有所不同&#xff0c; ①一般情况下TTL电平应用于单片机外设&#xff0c;属于MCU/CPU等片外外设&#xff1b; ②232/485电平应用于产品整体对外的接口&#xff0c;一般是片外TTL串口转232/485…

【C语言】每日一题,快速提升(1)!

调整数组使奇数全部都位于偶数前面 题目&#xff1a; 输入一个整数数组&#xff0c;实现一个函数 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分 所有偶数位于数组的后半部分 解题思路&#xff1a; 给定两个下标left和right&#xff0c;left放在数组的起始…

Linux三剑客-sed、awk、egrep(上)

一、知识梗概 二、正则表达式 定义&#xff1a;正则表达式是一种强大的文本处理工具&#xff0c;用于在文本中搜索符合特定模式的字符串。它由一系列特殊字符和普通字符组成&#xff0c;可以定义复杂的搜索模式。正则表达式被广泛应用于各种编程语言和文本处理工具中。 简单来…

webpack-(plugin,本地服务器,路径别名,安装vue)

安装vue npm i vue-loader -D npm i vue 编写一个vue文件&#xff1a; 在index.html中设置 一个id为app的div 将vue文件挂载到app中 vue比较特殊&#xff0c;除了使用loader外&#xff0c;还使用了plugin const path require("path"); const { VueLoaderPlugin …

涂层翅片铝箔的主要技术指标

涂层铝箔是在非涂层铝箔的基础上进行表面处理后形成的&#xff0c;除了需要具备非涂层铝箔要求的化学成分、机械性能和几何尺寸等性能指标外&#xff0c;还应具备良好的板型和涂层性能。 1、铝箔的板型 涂层铝箔的生产工艺要求铝箔要有良好的板型&#xff0c;这是涂层铝箔生产…

Go语言入门|包、关键字和标识符

目录 Go语言 包文件 规则 关键字 规则 标识符 规则 预定义标识符 Go语言 Go语言是一种静态类型、编译型和并发型的编程语言&#xff0c;由Google开发。Go的源代码文件以.go为扩展名&#xff0c;文件名通常与包名保持一致。一个Go文件可以包含多个顶级声明&#xff0c;…

做一个后台项目的架构

后台架构的11个维度 架构1&#xff1a;团队协助基础工具链的选型和培训架构2&#xff1a;搭建微服务开发基础设施架构3&#xff1a;选择合适的RPC框架架构4&#xff1a;选择和搭建高可用的注册中心架构5&#xff1a;选择和搭建高可用的配置中心架构6&#xff1a;选择和搭建高性…