Mybatis:基础巩固-DQL

news2024/11/24 12:44:19

目录

    • 一、概述
    • 二、数据准备
    • 三、基础查询
    • 四、条件查询
    • 五、聚合函数
    • 六、分组查询
    • 七、排序查询
    • 八、分页查询
    • 九、DQL执行顺序


在这里插入图片描述

一、概述

主要用于对数据的查询操作,使用的关键字SELECT

SELECT 字段列表 FROM 表名 WHERE 条件列表 GROUP BY 分组字段 HAVING 分组后条件列表 ORDER BY 排序字段 LIMIT 分页参数

二、数据准备

CREATE TABLE `tb_user` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '编号',
  `name` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '姓名',
  `age` int DEFAULT NULL COMMENT '年龄',
  `gender` varchar(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '性别',
  `kssj` datetime DEFAULT NULL COMMENT '开始时间',
  `jssj` datetime DEFAULT NULL COMMENT '结束时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户表'

INSERT INTO `mysql_demo`.`tb_user` (`id`, `name`, `age`, `gender`, `kssj`, `jssj`) VALUES (1, '张三', 12, '0', '2024-08-18 21:19:07', '2024-08-19 21:19:51');
INSERT INTO `mysql_demo`.`tb_user` (`id`, `name`, `age`, `gender`, `kssj`, `jssj`) VALUES (2, '李四', 34, '0', '2024-08-14 21:20:09', '2024-08-15 21:20:13');
INSERT INTO `mysql_demo`.`tb_user` (`id`, `name`, `age`, `gender`, `kssj`, `jssj`) VALUES (3, '王五', 32, '0', '2024-08-09 21:20:27', NULL);
INSERT INTO `mysql_demo`.`tb_user` (`id`, `name`, `age`, `gender`, `kssj`, `jssj`) VALUES (4, '赵六', 77, '0', '2024-08-10 21:20:59', NULL);
INSERT INTO `mysql_demo`.`tb_user` (`id`, `name`, `age`, `gender`, `kssj`, `jssj`) VALUES (6, '张三', 55, '1', NULL, NULL);

三、基础查询

查询多个字段 — 不推荐

SELECT * FROM tb_user;

查询多个字段 — 推荐

SELECT id,`name`,age,gender,kssj,jssj FROM tb_user;

设备别名

SELECT `name` AS '姓名' FROM tb_user;

去重

SELECT DISTINCT `name` AS '姓名' FROM tb_user;

四、条件查询

比较运算符功能
>大于
>=大于等于
<小于
<小于等于
=等于
<> 或 !=不等于
BETWEEN…AND…在某个范围之内(含最小、最大值)
IN(…)枚举,多选一
LIKE模糊查询,_匹配当个字符 %匹配多个字符
IS NULL是NULL
逻辑运算符功能
AND 或 &&并且
OR或者
NOT 或 !不是

条件查询 年龄大于20

SELECT * FROM tb_user WHERE age > 20;

查询没有开始结束时间的数据

SELECT * FROM tb_user WHERE kssj IS NULL OR jssj IS NULL;

查询年龄在20-40之间的数据

SELECT * FROM tb_user WHERE age BETWEEN 20 AND 40;

查询姓名不是张三的数据

SELECT * FROM tb_user WHERE `name` <> '张三';

查询李四、王五的数据

SELECT * FROM tb_user WHERE `name` IN ('李四', '王五');

查询姓名为4个字的用户数据

SELECT * FROM tb_user WHERE `name` LIKE '____';

查询最后一个字符是四的数据

SELECT * FROM tb_user WHERE `name` LIKE '%四';

五、聚合函数

将一列数据作为一个整体,进行纵向计算。在数据函数中所有的NULL值是不进行运算的

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

统计员工数量

SELECT COUNT(*) FROM tb_user;

查询员工的最大年龄

SELECT MAX(age) FROM tb_user;

查询员工的最小年龄

SELECT MIN(age) FROM tb_user;

查询员工的平均年龄

SELECT AVG(age) FROM tb_user;

查询员工年龄之和

SELECT SUM(age) FROM tb_user;

六、分组查询

语法

SELECT 查询字段 FROM 表名 WHERE 查询条件 GROUP BY 分组字段 HAVING 分组后过滤条件

WHERE与HAVING的区别

  • 执行的时机不同:WHERE发生在分组之前,HAVING发生在分组之后。
  • 判断条件不同:WHERE不能对聚合函数进行判断,HAVING可以

按照性别分组:查询平均年龄

SELECT gender,AVG(age) FROM tb_user GROUP BY gender;

按照性别分组:查询男生与女生的数量

SELECT gender,COUNT(id) FROM tb_user GROUP BY gender;

查询年龄大于18岁的员工 并且 按照工作地址分组 获取员工数量大于3的地址

SELECT dz, COUNT(id) dz_count FROM tb_user WHERE age >= 18 GROUP BY dz HAVING dz_count >=3;

注意:分组之后,查询的字段一般为聚合函数和分组字段,查询其他的字段没有任何意义,其余字段默认查询的是第一条数据。

七、排序查询

语法

SELECT 查询条件 FROM 表名 ORDER BY 排序字段1 排序方式1,排序字段2 排序方式2;
方法含义
ASE升序
DESC降序

根据年龄排序倒叙,姓名升序

SELECT * FROM tb_user ORDER BY age DESC, `name` ASC;

注意:多字段排序,先按照第一个条件排序,再按照之后的条件一次排序

八、分页查询

语法

SELECT 查询条件 FROM 表名 LIMIT 起始索引, 查询记录数;

注意:

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

九、DQL执行顺序

在这里插入图片描述

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

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

相关文章

Renesa Version Board和微信小程序通信

目录 概述 1. 系统框架结构 1.1 功能介绍 1.2 系统框图 2 微信小程序开发 2.1 UI介绍 2.2 代码实现 3 功能实现 3.1 通信协议 3.2 系统测试 概述 本文主要介绍基于Renesa Version Board&#xff0c;采集多个传感器数据&#xff0c;并将这些数据通过蓝牙模块发送微信…

《黑神话悟空》:国产3A游戏的崛起与AI绘画技术的融合

一、游戏简介 近年来&#xff0c;国产3A游戏《黑神话悟空》以其精美的画面、丰富的剧情和独特的文化底蕴吸引了众多玩家的关注。这款游戏以中国古典名著《西游记》为背景&#xff0c;讲述了孙悟空历经磨难&#xff0c;最终成长为斗战胜佛的故事。在游戏制作过程中&#xff0c;开…

办公必备,免费的在线万能格式转换工具

在当今数字化时代&#xff0c;文件格式转换已成为办公和日常生活中不可或缺的一部分。随着各种文件格式的不断涌现&#xff0c;人们对于高效、便捷的文件转换工具的需求日益增长。小编将为大家介绍几款免费的在线万能格式转换工具&#xff0c;帮助大家轻松应对各种文件转换需求…

golang uint8 转int出现ascll码值

在Golang中&#xff0c;uint8类型被用来表示ASCII码值。 结果是51 如果是uint8(3)的话结果还是3 所以在我们想把一个uint8类型的字符数字转换为int类型时需要特殊处理 减去对应ASCII码’0’的值 结果就是3了

Python循环结束语句 break语句 continue语句

Python break 语句 Python break语句&#xff0c;就像在C语言中&#xff0c;打破了最小封闭for或while循环。 break语句用来终止循环语句&#xff0c;即循环条件没有False条件或者序列还没被完全递归完&#xff0c;也会停止执行循环语句。 break语句用在while和for循环中。 …

df的 一列,是文字, 比如 xxxxx-1, xxxx-2 , 最后有 -1 或者 -2,把最后的数字减去1,写道一个新的列里面

file_pathrf"D:\file\工作簿1-1.xlsx"# from stutil import PandasUtil import pandas as pd dfpd.read_excel(file_path) # PandasUtil. # df的 一列&#xff0c;是文字&#xff0c; 比如 xxxxx-1, xxxx-2 , 最后有 -1 或者 -2&#xff0c;把 -1 变成 -0&#xff…

【测试面试题】14题常见APP测试面试题(参考答案)

大家好&#xff0c;这份面试题不难&#xff0c;都是一些基础题。 先上一个面试题汇总图&#xff0c;建议大家可以先思考下如果是自己能不能回答全&#xff0c;再去对照看参考答案。 下面为参考答案&#xff1a; 一、基础篇 1、APP的测试流程&#xff1f; APP测试流程与web测…

数分基础(03-3)客户特征分析--Tableau

文章目录 客户特征分析 - Tableau1. 说明2. 思路与步骤3. 数据准备和导入3.1 用EXCEL初步检查和处理数据3.1.1 打开3.1.2 初步检查&#xff08;1&#xff09;缺失值检查缺失值处理 &#xff08;2&#xff09;格式化日期字段&#xff08;3&#xff09;其他字段数据类型 &#xf…

在离线环境中安装依赖包

在离线环境中安装依赖包的方法&#xff1a; 参考文章&#xff1a; 1.如何离线下载python依赖包 2.python 依赖包打包 离线下载 3.Python的国内安装源&#xff08;也称为镜像源&#xff09; 最终安装效果&#xff0c;有部分失败的&#xff0c;重新下载失败的再去试试

达梦数据库启动与停止

1.1.1数据库启停之菜单方式启动、停止达梦数据库 当数据库服务器是Windows时&#xff0c;开始-->达梦数据库-->点击“DM服务查看器”&#xff0c;找到 “DmService【数据库实例名】” -->右键启动或停止。 下图中数据库实例名是DMSERVER 当数据库服务器是Linux时&…

kali

目录 一、网络配置 二、nat模式 1.检查服务 2.创建虚拟网卡 3.创建kali的网卡信息 三、桥接模式 四、nmap的使用 1.端口扫描 1>扫描主机端口 2>扫描指定端口 2.主机扫描 3.服务识别 4.系统识别 5.漏洞检测 6.导出扫描结果 五、msfconsole的使用 1.简介 …

imFile:全平台下载工具的新星

在数字化时代&#xff0c;我们经常需要下载各种文件和数据。一款好的下载工具不仅能提高我们的工作效率&#xff0c;还能带来愉悦的用户体验。今天&#xff0c;电脑天空将为大家介绍一款基于Motrix开发的全平台下载工具——imFile。 imFile是一款功能强大的下载工具&#xff0…

网络爬虫--生成假数据

爬取网址中的数据。 下面3个分别是姓、女孩名字、男孩名字的网址。 String familyURLStr "http://www.baijiaxing.net.cn/";String girlNameURLStr "https://wannianli.tianqi.com/qiming/news/16536.html";String boyNameURLStr "https://wanni…

python脚本自动备份华为交换机配置,Console重置密码,升级系统文件

Python脚本自动备份华为交换机配置,Console重置密码,升级系统文件 1.说明2.Console口重置密码3.版本升级4.SSH配置5.python脚本—————————————————————————————————————————————————— 1.说明 恢复密码交换机型号:Quidwa…

YB2421E是一款专为降低电磁干扰特性而设计的降压型DC/DC转换器

现代生活中&#xff0c;我们离不开各种电子设备的陪伴&#xff0c;而这些设备的正常运行离不开稳定的电源供应。YB2421E同步降压电压转换器可以满足您对电源供应的需求。 YB2421E是一款专为降低电磁干扰特性而设计的降压型DC/DC转换器。它采用了单片集成电路的设计&#xff0c;…

MyBatis错误

说明&#xff1a;记录一次MyBatis错误&#xff0c;错误信息如下&#xff0c;说数字转换异常&#xff0c;显然&#xff0c;把一个字符串类型转为数字类型&#xff0c;肯定是不行的。 2024-08-29 19:44:43.198 ERROR 24216 --- [nio-9090-exec-2] o.a.c.c.C.[.[.[/].[dispatcher…

RocketMQ部署单机版及集群版本(Docker部署)

目录 前言 单机版部署 1. 准备工作 2. 创建Docker网络 3.启动NameServer 4.启动Broker 5.启动RocketMQ控制台 集群版部署 1.启动NameServer 2.启动Broker 配置文件说明 前言 废话不多直接上干货&#xff0c;我负责踩坑&#xff0c;你负责验证。 单机版部署 1. 准备工…

DCMM数据管理能力成熟度评估模型解读

DCMM(GBT36073-2018)数据管理能力成熟度评估模型解读 DCMM标准的核心点在于通过八个核心能力域和五个成熟度等级的划分&#xff0c;全面评估企业的数据管理能力&#xff0c;并为企业提供提升数据管理能力的路径和方法&#xff0c;从而推动企业在信息化、数字化、智能化方面的发…

光伏设计中组串逆变和微型逆变是什么意思?有什么区别?

在光伏系统设计中&#xff0c;逆变器是核心组件之一&#xff0c;负责将太阳能电池板产生的直流电转换为交流电&#xff0c;以供家庭、商业或电网使用。根据设计和应用场景的不同&#xff0c;逆变器主要分为组串逆变器和微型逆变器两大类。 一、组串逆变器的定义 组串逆变器是太…

力扣面试经典算法150题:整数转罗马数字

整数转罗马数字 今天的题目是力扣面试经典150题中的数组的中等难度题&#xff1a; 整数转罗马数字。 题目链接&#xff1a;https://leetcode.cn/problems/integer-to-roman/description/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述 七个不同的符号代表罗马…