当前位置:网站首页>数据库 单表查询
数据库 单表查询
2022-08-05 05:12:00 【刚学习菜鸡一个】
总结 :
条件查询 : SELECT 字段列表 FROM 表名 WHERE 条件列表;
基础查询![](/img/ce/c28764e16e29acdb068b6e2919f6c0.png)
-- 删除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;
边栏推荐
猜你喜欢
Flutter learning three-Flutter basic structure and principle
OFDM 十六讲 5 -Discrete Convolution, ISI and ICI on DMT/OFDM Systems
ansible各个模块详解
Using QR codes to solve fixed asset management challenges
【cesium】元素高亮显示
基于Web的商城后台管理系统的设计与实现
Structured light 3D reconstruction (1) Striped structured light 3D reconstruction
作业8.4 进程间的通信 管道与信号
for..in和for..of的区别
In the hot summer, teach you to use Xiaomi smart home accessories + Raspberry Pi 4 to connect to Apple HomeKit
随机推荐
dedecms后台生成提示读取频道信息失败的解决方法
ansible各个模块详解
8.04 Day35-----MVC three-tier architecture
Dephi逆向工具Dede导出函数名MAP导入到IDA中
The solution to the failure to read channel information when dedecms generates a message in the background
社区分享|腾讯海外游戏基于JumpServer构建游戏安全运营能力
Flutter学习5-集成-打包-发布
作业8.4 进程间的通信 管道与信号
大学物理---质点运动学
[WeChat applet] WXML template syntax - conditional rendering
密码学系列之:PEM和PKCS7,PKCS8,PKCS12
Community Sharing|Tencent Overseas Games builds game security operation capabilities based on JumpServer
Develop a highly fault-tolerant distributed system
[Surveying] Quick Summary - Excerpt from Gaoshu Gang
How does the Flutter TapGestureRecognizer work
entry point injection
uva1325
Day14 jenkins deployment
Basic properties of binary tree + oj problem analysis
for..in和for..of的区别