MySQL_DQL语句(查询语句以及常用函数)
基础查询
不带条件的查询查询多个字段
-
语法:
#查询指定字段的数据 SELECT 字段1, 字段2, 字段3 ... FROM 表名 ; #查询表中全部字段的数据 SELECT * FROM 表名 ;-
案例:查询表中所有信息数据
SELECT * FROM employee; -
案例:查询表中姓名和性别这两个字段的信息
SELECT name,gender from employee;
-
查询字段设置别名
-
语法:
SELECT 字段1 [ AS 别名1 ] , 字段2 [ AS 别名2 ] ... FROM 表名; SELECT 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... FROM 表名;-
案例:查询表中姓名和性别这两个字段的信息,并且给中文别名
SELECT name AS '姓名',gender AS '性别' FROM employee; SELECT name '姓名1',gender '性别1' FROM employee; -
注意:AS 是可以省略的
-
去除重复记录
-
语法:使用一个关键字 DISTINCT
SELECT DISTINCT 字段列表 FROM 表名;-
案例:查询员工的家庭住址(不要重复)
SELECT DISTINCT address FROM employee;
-
基础查询的案例
-
查询指定字段 name, age并返回
SELECT name,age FROM employee; -
查询返回所有字段
SELECT * FROM employee; -
查询所有员工的年龄,起别名
SELECT age '年龄' FROM employee; -
查询公司员工的家庭地址有哪些(不要重复)
SELECT DISTINCT address FROM employee;
条件查询
-
语法:使用到 where 之后
SELECT 字段列表 FROM 表名 WHERE 条件列表 ;
运算符
比较运算符

注意:
- java 中的等于是使用 == 而 mysql 中的等于直接使用 =
- BETWEEN … AND … 范围包含最小值和最大值
- IN(…) 属于括号后的子集
- LIKE % 表示通配符
- is null 表示空,非空 is not null
逻辑运算符

-
案例:查询年龄小于20并且idcard 非空的
SELECT * FROM employee where age < 20 and idcard is not null;
条件查询案例
-
查询年龄等于 18 的员工
SELECT * FROM employee WHERE age = 18; -
查询年龄小于 20 的员工信息
SELECT * FROM employee WHERE age < 20; -
查询年龄大于等于 20 的员工信息
SELECT * FROM employee WHERE age >= 20; -
查询没有身份证号的员工信息
SELECT * FROM employee WHERE idcard is null; -
查询有身份证号的员工信息
SELECT * FROM employee WHERE idcard is not null; -
查询年龄不等于 18 的员工信息
SELECT * FROM employee WHERE age != 18; -
查询年龄在15岁(包含) 到 20岁(包含)之间的员工信息
SELECT * FROM employee WHERE age BETWEEN 15 AND 20; SELECT * FROM employee WHERE age >= 15 and age <= 20; SELECT * FROM employee WHERE age >= 15 && age <= 20; -
查询性别为女且年龄小于 23岁的员工信息
SELECT * FROM employee WHERE age < 23 AND gender = '女'; -
查询年龄等于18 或 20 或 40 的员工信息
SELECT * FROM employee WHERE age in(18,20,40); SELECT * FROM employee WHERE age = 18 or age = 20 or age = 40; -
查询姓名为两个字的员工信息 _ %
SELECT * FROM employee WHERE name like '__'; -
查询身份证号最后一位是X的员工信息
SELECT * FROM employee WHERE idcard like '%X'; SELECT * FROM employee WHERE idcard like '_________________X';
常用聚合函数
- 语法:SELECT 聚合函数(字段列表) FROM 表名 ;将一列数据作为一个整体,进行纵向运算。

案例
-
统计企业员工数量
SELECT COUNT(id) FROM employee -
统计企业员工的平均年龄
SELECT AVG(age) FROM employee; -
统计企业员工的最大年龄
SELECT MAX(age) FROM employee; -
统计企业员工的最小年龄
SELECT MIN(age) FROM employee; -
统计家庭是杭州员工的年龄之和
SELECT SUM(age) FROM employee WHERE address = '杭州';
分组查询
-
语法(GROUP BY )
SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组后过滤条件 ]; -
WHERE 和 HAVING 的区别
- 执行时间不同,WHERE 是分组之前执行,不参与分组,HAVING 是分组之后执行
- 判断条件不同,WHERE 是不能对聚合函数做判断的,HAVING 是可以的。
-
注意:
- 分组之后,查询的字段一般为聚合函数和分组字段,查询其它其它字段没有意义;
- 执行顺序:WHERE > 聚合函数 > HAVING
- 可以支持多字段分组 GROUP BY COLUM1,COLUM2;
案例
-
根据性别分组 , 统计男性员工 和 女性员工的数量
SELECT gender,count(id) from employee GROUP BY gender; -
根据性别分组 , 统计男性员工 和 女性员工的平均年龄
SELECT gender,avg(age) from employee GROUP BY gender; -
查询年龄小于45的员工 , 并根据家庭地址分组 , 获取员工数量大于等于3的家庭地址
SELECT address,count(*) numFROM employee WHERE age < 45GROUP BY address having num >= 3; -
统计各个家庭地址上班的男性及女性员工的数量
SELECT gender,count(*) '数量',addressFROM employeeGROUP BY gender,address;
排序查询
-
语法(ORDER BY)
-
排序方式
- 升序 ASC(默认就是升序)
- 降序 DESC
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1 , 字段2 排序方式2 ;
-
案例
-
根据年龄对公司的员工进行升序排序
SELECT * FROM employee ORDER BY age ; SELECT * FROM employee ORDER BY age ASC; -
根据入职时间, 对员工进行降序排序
SELECT * FROM employee ORDER BY entrydate DESC; -
根据年龄对公司的员工进行升序排序 , 年龄相同 , 再按照入职时间进行降序排序
SELECT * FROM employee ORDER BY age ASC,entrydate DESC;
分页查询
-
语法(LIMIT)
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ; -
注意:
-
起始索引从0开始,起始索引 = (查询页码 -1 )* 每页显示的记录数
-
LIMIT 是MYSQL 中的实现
-
SQLServer中:
下面示例会跳过前 10 行,获取接下来的 5 行数据,实现分页查询。
-
SELECT ProductId, ProductName, Price
FROM Products
ORDER BY ProductId
OFFSET 10 ROWS
FETCH NEXT 5 ROWS ONLY;
- 如果只查第一页数据,起始索引是可以省略的,limit 5;
案例
-
查询第1页员工数据, 每页展示 5 条记录
SELECT * FROM employee limit 0,5; SELECT * FROM employee LIMIT 5; -
查询第2页员工数据, 每页展示 5 条记录
#(查询页面 -1) * 页码显示数 SELECT * FROM employee LIMIT 5,5;
执行优先级
SELECT
4 字段列表 FROM
1 表名列表 WHERE
2 条件列表 GROUP BY
3 分组字段列表 HAVING分组后条件列表 ORDER BY
5 排序字段列表 LIMIT
6 分页参数
-
案例验证
-
查询年龄大于15的员工姓名、年龄,并根据年龄进行升序排序。
SELECT emp.name eName,emp.age eAge from employee emp WHERE emp.age > 15 GROUP BY eAge HAVING eAge >20 order by eAge limit 2;
-
-
执行先后
from ... where ... group by ... having ... select ... order by ... limit
相关文章:
MySQL_DQL语句(查询语句以及常用函数)
基础查询 不带条件的查询查询多个字段 语法: #查询指定字段的数据 SELECT 字段1, 字段2, 字段3 ... FROM 表名 ; #查询表中全部字段的数据 SELECT * FROM 表名 ;案例:查询表中所有信息数据 SELECT * FROM employee;案例:查询表中姓名和性别…...
一步步教你实现JWT认证和授权
一步步教你实现JWT认证和授权 前言一、引入二、Token认证与JWT认证的关系三、什么是JWT认证?四、JWT的组成1、头部(Header)2、载荷(Payload)3、签名(Signature) 五、JWT认证的工作流程六、代码举…...
【python 深度学习】解决遇到的问题
目录 一、RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb 二、AttributeError: module ‘tensorflow’ has no attribute ‘flags’ 三、conda 更新 Please update conda by running 四、to search for alternate channels that…...
maxwell 基于zookeeper的高可用方案
Maxwell版本1.39.2 一: 添加zk的pox文件 <!-- customize HA --> <dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>5.4.0</version> </dependency>&…...
【JavaScript】match用法 | 正则匹配
match正则匹配 var e "www.apple.com:baidu.com" var match e.match(/com/g) console.log("match: "match);> "match: com,com"match返回值问题 match的返回值是一个数组 数组的第0个元素是与整个正则表达式匹配的结果 数组的第1个元素是…...
前端css + js +vue +element-ui 实现响应式布局,根据浏览器窗体大小自动响应
前端css js vue element-ui 实现响应式布局,根据浏览器窗体大小自动响应 1、环境2、js代码3、代码解释1、定义对象2、定义方法3、监听窗口变化,计算比例值,并赋值给transform 属性4、实现监听 3、html 代码4、特别注意 1、环境 我的环境是e…...
小程序生成App:轻量低门槛的开发方式
小程序生成App可以成为一种轻量低门槛的开发App的方式,但是需要根据具体情况进行选择。如果应用需要处理大量数据或需要进行复杂计算,或者需要实现原生特有的功能或交互效果,可能需要选择其他开发方式。 在文章开始之前,我们看看目…...
Linux命名管道进程通信
文章目录 前言一、什么是命名管道通信二、创建方式三、代码示例四、文件进程通信总结 前言 命名管道 是实现进程间通信的强大工具,它提供了一种简单而有效的方式,允许不同进程之间进行可靠的数据交换。不仅可以在同一主机上的不相关进程间进行通信&…...
如何将苹果彻底删除视频找回?试试这3种方法
如今是短视频时代,大家通常会使用苹果手机来拍摄视频,以此记录生活中的美好日常。但是大家都知道视频是十分占空间的,这也经常会出现iPhone内存不足,磁盘崩溃的问题。 当遇到iPhone内存不足的情况时,大家往往会选择清…...
【音视频、chatGpt】h5页面最小化后,再激活后视频停住问题的解决
目录 现象 观察 解决 现象 页面有时候要切换,要最小化;短时间或者几个小时内切换回来,视频可以正常续上;而放置较长时间,几个小时或者一晚上,切换回来后,视频可能卡死 观察 切换页面&#x…...
[CSS] 图片九宫格
效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"/><meta http-equiv"X-UA-Compatible" content"IEedge"/><meta name"viewport" content"widthdevice-…...
MChat-Gpt V1.0.0 (将ChatGpt机器人接入内网供全体使用)
Github>https://github.com/MartinxMax/MChat-Gpt 首页 MChat-Gpt V1.0.0将ChatGpt机器人接入内网供全体使用 你需要一个ChatGpt账户如果您在中国则需要使用代理访问,设置TUN代理模式 安装依赖 选择你的系统进行安装 服务端配置 #python3 ChatGpt_Server.py -h 使用&a…...
日常开发中Git命令指北
Git基本操作 创建化仓库 mkdir 目录 cd 目录 git init配置本地仓库 # 配置用户名,邮箱 git config user.name "cxf" git config user.email "1969612859qq.com" # 查看本地配置(小写的 L) git config -l # 重置配置&a…...
API 测试 | 了解 API 接口概念|电商平台 API 接口测试指南
什么是 API? API 是一个缩写,它代表了一个 pplication P AGC 软件覆盖整个房间。API 是用于构建软件应用程序的一组例程,协议和工具。API 指定一个软件程序应如何与其他软件程序进行交互。 例行程序:执行特定任务的程序。例程也称…...
【计算机组成原理】24王道考研笔记——第三章 存储系统
第三章 存储系统 一、存储系统概述 现代计算机的结构: 1.存储器的层次结构 2.存储器的分类 按层次: 按介质: 按存储方式: 按信息的可更改性: 按信息的可保存性: 3.存储器的性能指标 二、主存储器 1.基本…...
学习C语言的好处:
基础编程语言:C语言是其他编程语言的基础,学习C语言可为后续学习打下坚实基础,广泛应用于嵌入式系统、操作系统、网络协议等。 简单易学:C语言语法简单易懂,适合初学者。只需文本编辑器和编译器,即可开始编…...
基于k8s的devOps自动化运维平台架构设计(中英文版本)
▲ 点击上方"DevOps和k8s全栈技术"关注公众号 In the rapidly evolving landscape of software development and IT operations, DevOps has emerged as a transformative approach to bridge the gap between development and operations teams. One of the key ena…...
P450进阶款无人机室内定位功能研测
在以往的Prometheus 450(P450)无人机上,我们搭载的是Intel Realsense T265定位模块,使用USB连接方式挂载到机载计算机allspark上,通过机载上SDK驱动T265运行并输出SLAM信息,以此来实现室内定位功能。 为进…...
深度学习,计算机视觉任务
目录 计算机视觉任务 1.K近邻算法 2.得分函数 3.损失函数的作用 4.向前传播整体流程 5.反向传播计算方法 计算机视觉任务 机器学习的流程: 数据获取 特征工程 建立模型 评估与应用 计算机视觉: 图像表示:计算机眼中的图像&#…...
使用 Docker 部署 canal 服务实现MySQL和ES实时同步
文章目录 0. 环境介绍0. 前置步骤1. 安装Kibana和Elasticsearch2. 安装Canal和Canal Adapter2.1 修改数据库配置2.1.1 修改配置2.1.2 验证mysql binlog配置2.1.3 查看日志文件2.1.4 用JDBC代码插入数据库 2.2 安装Canal Server2.3 安装Canal Adapter修改两处配置文件配置文件取…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...
机器学习的数学基础:线性模型
线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...
