当前位置:网站首页>数据库 单表查询
数据库 单表查询
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;
边栏推荐
- 人性的弱点
- Use IDEA to connect to TDengine server
- 服务器磁盘阵列
- 作业8.4 进程间的通信 管道与信号
- Talk about 20 common problems in data governance
- Basic properties of binary tree + oj problem analysis
- Flutter学习-开篇
- Structured Light 3D Reconstruction (2) Line Structured Light 3D Reconstruction
- Please write the SparkSQL statement
- [Surveying] Quick Summary - Excerpt from Gaoshu Gang
猜你喜欢
【cesium】3D Tileset 模型加载并与模型树关联
Algorithms - ones and zeros (Kotlin)
服务器磁盘阵列
Difference between for..in and for..of
The difference between span tag and p
Flutter学习2-dart学习
Dephi reverse tool Dede exports function name MAP and imports it into IDA
【cesium】Load and locate 3D Tileset
The underlying mechanism of the class
Visibility of multi-column attribute column elements: display, visibility, opacity, vertical alignment: vertical-align, z-index The larger it is, the more it will be displayed on the upper layer
随机推荐
【软考 系统架构设计师】软件架构设计③ 特定领域软件架构(DSSA)
【无标题】
Multi-threaded query results, add List collection
UVA10827
LeetCode:1403. 非递增顺序的最小子序列【贪心】
8.04 Day35-----MVC三层架构
Flutter learning - the beginning
结构光三维重建(二)线结构光三维重建
Cron(Crontab)--use/tutorial/example
University Physics---Particle Kinematics
[cesium] element highlighting
Flutter learning 2-dart learning
延迟加载js方式async与defer区别
【Transfer】What is etcd
2022牛客多校第四场C.Easy Counting Problem(EGF+NTT)
jvm 三 之堆与栈
算法---一和零(Kotlin)
RL强化学习总结(一)
server disk array
uboot enable debug printing information