Mybatis:基础巩固-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;

六、分组查询

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monly21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值