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修改两处配置文件配置文件取…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...