当前位置:网站首页>数据库 单表查询
数据库 单表查询
2022-08-05 05:12:00 【刚学习菜鸡一个】
总结 :
条件查询 : SELECT 字段列表 FROM 表名 WHERE 条件列表;
基础查询
-- 删除stu表
DROP TABLE IF EXISTS stu;
-- 创建stu表`ssm_db``stu`
CREATE TABLE stu (
id INT, -- 编号
NAME VARCHAR(20), -- 姓名
age INT, -- 年龄
sex VARCHAR(5), -- 性别
address VARCHAR(100), -- 地址
math DOUBLE(5,2), -- 数学成绩
english DOUBLE(5,2), -- 英语成绩
hire_date DATE -- 入学时间
);
-- 添加数据
INSERT INTO stu(id,NAME,age,sex,address,math,english,hire_date)
VALUES
(1,'马运',55,'男','杭州',66,78,'1995-09-01'),
(2,'马花疼',45,'女','深圳',98,87,'1998-09-01'),
(3,'马斯克',55,'男','香港',56,77,'1999-09-02'),
(4,'柳白',20,'女','湖南',76,65,'1997-09-05'),
(5,'柳青',20,'男','湖南',86,NULL,'1998-09-01'),
(6,'刘德花',57,'男','香港',99,99,'1998-09-01'),
(7,'张学右',22,'女','香港',99,99,'1998-09-01'),
(8,'德玛西亚',18,'男','南京',56,65,'1994-09-02');
SELECT * FROM stu;
-- 基础查询 ------------------------
-- 查询 name age 两列
SELECT NAME,age FROM stu;
-- 查询地址信息
SELECT address FROM stu;
-- 去除重复记录
SELECT DISTINCT address FROM stu;
-- 起别名AS别名可以省略 , 查询姓名,数学成绩 , 英语成绩
SELECT NAME 姓名, math AS 数学成绩, english AS 英语成绩 FROM stu;
条件查询
-- 条件查询 --------------------------------------------------------------------
-- 1.查询年龄大于20岁的学员信息
SELECT * FROM stu WHERE age > 20;
-- 2. 查询年龄大于等于20岁的学员信息
SELECT * FROM stu WHERE age >= 20;
-- 3.查询年龄大于等于20岁 并且 年龄 小于等于 30岁 的学员信息
SELECT * FROM stu WHERE age >= 20 AND age <=30;
SELECT * FROM stu WHERE age >= 20 && age <= 30;
-- 4.查询入学日期在'1998-09-01' 到 '1999-09-01' 之间的学员信息
SELECT * FROM stu WHERE hire_date BETWEEN '1998-09-01' AND '1999-09-01';
-- 5.查询年龄等于18岁的学员信息
SELECT * FROM stu WHERE age = 18;
-- 6.查询年龄不等于18岁的学员信息
SELECT * FROM stu WHERE age != 18;
SELECT * FROM stu WHERE age <> 18;
-- 7.查询年龄等于18岁 或者 年龄等于20岁 或者 年龄等于22岁的学员信息
SELECT * FROM stu WHERE age = 18 OR age = 20 OR age = 22;
SELECT * FROM stu WHERE age IN(18,20,22);
-- 8. 查询英语成绩为 null的学员信息
SELECT * FROM stu WHERE english IS NULL;
-- 模糊查询 like =============================================================
/*
通配符
(1) _:代表单个任意字符
(2) %:代表任意个数字符
*/
-- 1. 查询姓'马'的学员信息
SELECT * FROM stu WHERE NAME LIKE '马%';
-- 2. 查询第二个字是 '花' 的学员信息
SELECT * FROM stu WHERE NAME LIKE '_花%';
-- 3. 查询名字中包含 '德' 的学员信息
SELECT * FROM stu WHERE NAME LIKE '%德%';
排序查询
-- 排序查询 order by =================================
/*
语法 : SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;
排序方式:
ASC: 升序排列(默认值)
DESC:降序排列
*/
-- 1. 查询学生信息,按照年龄升序排列
SELECT * FROM stu ORDER BY age ASC;
-- 2. 查询学生信息,按照数学成绩降序排列
SELECT * FROM stu ORDER BY math DESC;
-- 3. 查询学生信息,按照数学成绩降序排列,如果数学成绩一样,再按照英语成绩升序排列
SELECT * FROM stu ORDER BY math DESC ,english ASC;
分组查询
-- 分组查询,聚合函数 ===========================
/*
语法 : SELECT 聚合函数名(列名) FROM 表;
count:统计数量
max: 求最大值
min: 求最小值
sum: 求和
avg: 求平均值
*/
-- 1.统计班级一共有多少个学生
SELECT COUNT(id) FROM stu;
SELECT COUNT(english) FROM stu; #有null值的,不会被统计
SELECT COUNT(*) FROM stu; #最适合的统计, 一行不可能所有数据都是null
-- 2.查询数学成绩的最高分
SELECT MAX(math) FROM stu;
-- 3.查询数学成绩的最低分
SELECT MIN(math) FROM stu;
-- 4.查询数学成绩的总分
SELECT SUM(math) FROM stu;
-- 5.查询数学成绩的平均分
SELECT AVG(math) FROM stu;
-- 6.查询英语成绩的最低分
SELECT MIN(english) FROM stu;
/*
分组函数
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
*/
-- 1.查询男同学和女同学各自的数学平均分
SELECT sex ,AVG(math) FROM stu GROUP BY sex;
-- 2.查询男同学和女同学各自的数学平均分,以及各自人数
SELECT sex ,AVG(math),COUNT(*) FROM stu GROUP BY sex;
-- 3.查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组
SELECT sex ,AVG(math),COUNT(*) FROM stu WHERE math >70 GROUP BY sex;
-- 4.查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个的
SELECT sex ,AVG(math),COUNT(*) FROM stu WHERE math > 70 GROUP BY sex HAVING COUNT(*) > 2;
分页查询
/*
分页查询
语法 : SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;
起始索引 : 从0开始
起始索引 = (当前页码 - 1) * 每页显示的条数
*/
-- 1.从0开始查询, 查询3条数据
SELECT * FROM stu LIMIT 0 , 3;
-- 2.每页显示3条数据,查询第1页数据
SELECT * FROM stu LIMIT 0 , 3;
-- 3.每页显示3条数据,查询第2页数据
SELECT * FROM stu LIMIT 3 , 3;
-- 4.每页显示3条数据,查询第3页数据
SELECT * FROM stu LIMIT 6 ,3;
边栏推荐
- Detailed explanation of each module of ansible
- Flutter learning - the beginning
- Flutter learning 5-integration-packaging-publish
- [informix] Resolving startup errors and solutions
- Qt制作18帧丘比特表白意中人、是你的丘比特嘛!!!
- uva1325
- OFDM 十六讲 5 -Discrete Convolution, ISI and ICI on DMT/OFDM Systems
- How does the Flutter TapGestureRecognizer work
- u-boot中的u-boot,dm-pre-reloc
- 8.04 Day35-----MVC three-tier architecture
猜你喜欢
Flex layout frog game clearance strategy
The underlying mechanism of the class
dedecms后台生成提示读取频道信息失败的解决方法
shell函数
[cesium] element highlighting
MySQL Foundation (1) - Basic Cognition and Operation
Use IDEA to connect to TDengine server
Qt制作18帧丘比特表白意中人、是你的丘比特嘛!!!
Qt produces 18 frames of Cupid to express his love, is it your Cupid!!!
RL强化学习总结(一)
随机推荐
Talk about 20 common problems in data governance
The mall background management system based on Web design and implementation
2023 International Conference on Information and Communication Engineering (JCICE 2023)
一篇博客通关Redis技术栈
ansible各个模块详解
Mvi架构浅析
算法---一和零(Kotlin)
Shell(4)条件控制语句
「PHP8入门指南」PHP简明介绍
Flex layout frog game clearance strategy
upload upload pictures to Tencent cloud, how to upload pictures
[Surveying] Quick Summary - Excerpt from Gaoshu Gang
Please write the SparkSQL statement
entry point injection
[WeChat applet] WXML template syntax - conditional rendering
MySQL中控制导出文件后变为了\N有什么解决方案吗?
MySQL基础(一)---基础认知及操作
dedecms dream weaving tag tag does not support capital letters fix
ESP32 485 Illuminance
Develop a highly fault-tolerant distributed system