【MySQL基础|第三篇】--- 详谈SQL中的DQL语句

news2024/12/23 13:14:25

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【MySQL学习专栏】🎈
本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌
在这里插入图片描述

前言

DQL(Data Query Language)数据库查询语言,用来查询数据库表中的记录。查询关键字是Select

DQL语法如下:

基本查询
条件查询(WHERE)
聚合函数(count、max、min、avg、sum)
分组查询(GROUP BY)
排序查询(ORDER BY)
分页查询(LIMIT)

目录

  • 前言
  • 一、基本查询
  • 二、条件查询(WHERE)
  • 三、聚合函数
  • 四、分组查询(GROUP BY)
  • 五、排序查询(ORDER BY)
  • 六、分页查询(LIMIT BY)

一、基本查询

DQL基本查询语法格式如下:

1.查询多个字段
语法一:SELECT 字段1,字段2,字段3...... FROM 表名;
语法二:SELETE * FROM 表名;

2.设置别名(设置别名时AS可以省略)
语法:SELECT 字段1[AS别名1],AS[别名2]…FROM 表名;
比如:select worknum as '工作号' from 表名;(这里as是可以省略的)

3.去除重复记录:
语法:SELECT DISTINCT 字段列表 FROM 表名;
比如:select distinct workaddress '工作地点' from 表名;

二、条件查询(WHERE)

DQL条件查询的用法如下:
语法:SELECT 字段列表 FROM 表名 WHERE 条件列表;

举例1:从表中查询年龄不等于18的人。
写法1:select * from 表名 where age!=18;
写法2:select * from 表名 where age <> 18

举例2:从表中查询年龄在18到21之间的人。
写法1:select * from 表名 where age >= 18 && age <= 21;
写法2:select * from 表名 where age >= 18 and age <= 21;
写法3:select * from 表名 where age between 18 and 21;

举例3:从表中查询性别为男且年龄小于21的人。
写法1:select * from 表名 where gender = '男' and age < 21;

示例4:从表中查询年龄为18或者21或者23的人。
写法1:select * from 表名 where age in(18,21,23);
写法2:select * from 表名 where age = 18 or age = 21 or age = 23;

示例5:从表中查询姓名为5个字的人。
写法1:select * from 表名 where name like '__';

示例6:从表中查询身份证号最后一位是X的人。
写法1:select * from 表名 where idcard like '%X';
写法2:select * from 表名 where idcard like '15个下划线X';

三、聚合函数

聚合函数是将一列数据作为一个整体来进行纵向计算。

常见的聚合函数如下:

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

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

聚合函数用法如下:
命令:SELECT 聚合函数(字段列表) from 表名;

举例1:统计表中的总人数。
写法1:select count(name) from 表名;
写法2:select count(*) from 表名;

举例2:统计表中的平均年龄。
写法1:select avg(age) from 表名;

举例3:统计表中年龄最大的人。
写法1:select max(age) from 表名;

举例4:统计表中北京地区人物年龄之和。
写法1:select sum(age) from 表名 where workaddress = '北京';

四、分组查询(GROUP BY)

DQL分组查询语法:SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];

下表是where和having的区别:

区别如下wherehaving
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组having是分组之后对结果进行过滤
判断条件不同:where不能对聚合函数进行判断having可以对聚合函数进行判断

举例1:根据性别进行分组,统计男生和女生的数量。
写法1:select gender,count(*) from 表名 group by gender;

举例2:根据性别进行分组,统计男生和女生的平均年龄。
写法1:select gender,avg(age) from 表名 group by gender;

举例3:查询年龄小于45的员工,并根据工作地址进行分组,获取员工数量大于等于2的工作地址。
写法1:select workaddress,count(*) from 表名 where age < 45 group by workaddress having count(*) >= 2;
这里如果想要给count(*)取一个别名address_count的话,可以这样写select workaddress,count(*) address_count from 表名 where age < 45 group by workaddress having address_count >= 2;

分组查询注意事项如下:

  • 执行顺序:where(在分组之前进行过滤) > 聚合函数(在分组时执行) > having(分组聚合之后进行过滤)
  • 分组之后查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。(比如例1中的select gender,count(*) from 表名 group by gender;其中count(*)就是聚合函数,gender为分组字段,如果此时在查询其它字段将没有任何意义

五、排序查询(ORDER BY)

DQL-排序查询的语法SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2,...;

排序方式如下:

  • ASC:升序(默认方式)
  • DESC:降序

注意,如果是多字段排序,当第一个字段相同时,才会根据第二个字段进行排序。

举例1:根据年龄对表中的人员进行升序排序。
写法1:select * from 表名 order by age asc;

举例2:根据年龄对表中的人员进行升序排序,如果年龄相同,再对其按照入职时间进行降序排序。
写法1:select * from 表名 order by age asc,entrydate desc;

六、分页查询(LIMIT BY)

分页查询语法:SELECT 字段列表 FROM 表名 LIMIT 起始索引,每页查询记录数;

这里我们需要注意以下三点:

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

举例1:查询第一页人员数据,每页展示10条记录。
写法1:select * from 表名 limit 0,10;
写法2:select * from 表名 limit 10;

举例2:查询第2页人员数据,每页展示10条记录。
写法1:select * from 表名 limit 10,10;

好了,以上就是SQL中DQL语句的全部内容,这到这里吧,再见啦友友们!!!

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

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

相关文章

浙江工商大学MBA项目哪些人在报考?职务、就业、薪资……

9月下旬到10月下旬是每一年全国研究生网上报名的时间&#xff0c;这段时间内很多MBA考生要确定自己最终一志愿报考的学校和专业&#xff0c;在浙江省内&#xff0c;如果不想报考浙江大学的话&#xff0c;那么其余还有8个MBA项目可以选择。本期杭州达立易考教育为大家整理了浙工…

使用 kind 搭建 Kubernetes学习环境

什么是 kind &#xff1f; kind &#xff08; Kubernetes in Docker &#xff09; 让 你 能 够 在 本 地 计 算 机 上 运 行 Kubernetes 。 使 用 这 个 工 具 需 要 你 安 装 Docker 或 者 Podman 。 kind 将 Kubernetes 所需要的所有组件&#xff0c; 全部部署在一个 Docker …

微信小程序 非机动车车辆充电维修管理系统

本课题要求实现一套非机动车车辆管理系统&#xff0c;系统主要包括&#xff08;管理员服务端和学生微信端、车辆管理员微信端、辅导员服务端、车辆管理员服务端、辅导员微信端&#xff09;六个模块功能。 设计并实现了非机动车车辆管理系统。系统选用java语言&#xff0c;应用S…

【Android取证篇】华为设备跳出“允许USB调试“界面方法的不同方法

【Android取证篇】华为设备跳出"允许USB调试"界面方法的不同方法 华为设备在鸿蒙OS3系统之后&#xff0c;部分设备启用"允许USB调试"方式会有所变化&#xff0c;再次做个记录—【蘇小沐】 1.实验环境 系统版本Windows 11 专业工作站版22H2&#xff08;2…

【送书活动】朋友圈大佬都去读研了,这份备考书单我码住了

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

AIGC做题能力谁家强呢?

通义千问刚发布了&#xff0c; 想和文心一言比较一下&#xff0c;就简单的问了三个问题 1 挖了个坑的鸡兔同笼问题&#xff0c;12个头35个脚的情况求解。 通义千问能意识到鸡兔脚都是偶数&#xff0c;计算出现小数点就自动舍弃了&#xff0c;结果就是7鸡5兔一共34只脚。 拒绝…

重点--环形缓冲区-----适合在通信中接收数据

为什么要用环形缓冲区 当有大量数据的时候&#xff0c;我们不能存储所有的数据&#xff0c;那么计算机处理数据的时候&#xff0c;只能先处理先来的&#xff0c;处理之后就会把数据释放掉&#xff0c;再处理下一个。那么已经处理的数据的内存就会被浪费掉。因为后来的数据只能往…

冠达管理:央行降准0.25个百分点 释放流动性超5000亿

人民银行昨日发布消息称&#xff0c;为巩固经济上升向好根底&#xff0c;坚持活动性合理富余&#xff0c;决定于9月15日下调金融组织存款准备金率0.25个百分点&#xff08;不含已执行5%存款准备金率的金融组织&#xff09;。本次下调后&#xff0c;金融组织加权平均存款准备金率…

SwiftUI Swift iOS iPadOS 实现更改 App 图标

Xcode: 14.3.1 更改 App 图标 淘宝&#xff0c;支付宝&#xff0c;有道翻译有时候会随着运营活动去调整图标&#xff0c;比如 双 11。&#xff08;这个很简单&#xff0c;替换一下 AppIcon 就可以了&#xff09;Github App 提供了多套图标可以修改。&#xff08;需要配置 &…

誉天在线项目-UML状态图+泳道图

什么是UML UML&#xff08;Unified Modeling Language&#xff09;是一种用于软件系统建模的标准化语言。它提供了一组图形符号和规范&#xff0c;用于描述和设计软件系统的结构、行为和交互。 UML图形符号包括类图、用例图、时序图、活动图、组件图、部署图等&#xff0c;每…

原生微信小程序中进行 API 请求

原生微信小程序中进行 API 请求 当在原生微信小程序中进行 API 请求时&#xff0c;封装请求可以提高代码的可维护性和可扩展性。在本篇博客中&#xff0c;我们将一步步介绍如何进一步封装请求&#xff0c;并添加请求超时、拦截器和请求取消功能。 第一步&#xff1a;基本请求封…

生产设备上的静电该如何处理?

在工厂生产车间里有很多机械设备&#xff0c;在生产运作过程中&#xff0c;难免会产生大量静电&#xff0c;静电会产生许多危害。 例如&#xff0c;1、会使电子设备故障、误操作而引起的电磁干扰。 2、电子元件或集成电路的静电击穿; 3、高压静电放电引起触电; 4、静电放电引起…

一种新的图像去噪方式:图像修补+斑点检测的预处理

灵感来源于我之前写的一篇博客&#xff1a;图像处理&#xff1a;基于cv2.inpaint()图像修补。 这种方式可以有效的去除白色的噪点&#xff0c;这里我们需要一张噪点的图像&#xff0c;你可以用下面的代码随机生成一张噪点图片&#xff1a; import cv2 import numpy as np # i…

EDI经营许可证办理要求及流程全解!

我们正处在互联网的大时代&#xff0c;从事互联网行业又会想到电商&#xff0c;提到电商企业&#xff0c;大家会关注这个平台是否合法或是否靠谱&#xff0c;那除了对这个电商品牌的认知以外&#xff0c;还会关注其是否合法合规为用户提供货物购买交易服务&#xff0c;是否具备…

评价模型:层次分析法

1. 模型建立 1.1 建立层次结构模型 在深入分析实际问题的基础上&#xff0c;将有关的各个因素按照不同属性自上而下地分解成若干层次&#xff0c;同一层的诸因素从属于上一层的因素或对上层因素有影响&#xff0c;同时又支配下一层的因素或受到下层因素的作用。最上层为目标层…

day10常用API

1.API 1.1API概述 什么是API ​ API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&#xff0c;只需要…

奶牛个体识别 奶牛身份识别

融合YOLOv5s与通道剪枝算法的奶牛轻量化个体识别方法 Light-weight recognition network for dairy cows based on the fusion of YOLOv5s and channel pruning algorithm 论文链接 知网链接 DOI链接 该文章讨论了奶牛花斑、光照条件、不同剪枝方法、不同剪枝率对准确率的影响…

【C语言】指针查漏补缺

【C语言】指针查漏补缺 预备知识一维整数数组字符数组字符常量数组字符串常量二维数组 预备知识 sizeof 是计算对象或者类型创建的对象所占内存空间的大小&#xff0c;单位是字节 sizeof 是操作符&#xff0c;不是函数 strlen 求字符串长度的&#xff0c;计算的是字符串中\0之…

向量的概念、向量组的概念

目录 向量的概念、向量组的概念 向量的基本运算 线性表出、线性相关、线性无关 向量的概念、向量组的概念 向量&#xff08;Vector&#xff09;是一个有次序的数所组成的数组&#xff0c;通常用来表示一个物理量或者一个对象在空间中的移动。向量可以表示位置、速度、力等物…

竞赛 基于机器视觉的手势检测和识别算法

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng…