news 2026/7/10 23:27:49

15分钟速通SQL语法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
15分钟速通SQL语法

一、选择

SELECT * FROM STUDENTS; select * from students;

关键字select:选择

*:全部

关键字from: 来源/从哪里...

students:一个表的名称

用法:从students表中选择全部的内容。

select 姓名,班级 from students;

* 换成“姓名,班级”,意味着从students表中选择“姓名,班级”列的内容

select 姓名,班级 from students LIMIT 5;

关键字LIMIT:限制查询结果的数量

select 姓名,班级 from students LIMIT 5 OFFSET 5;

关键字OFFSET:跳过x条数量的结果

select 姓名,班级,成绩 from students LIMIT 5 OFFSET 5;

换行(分段)方便管理

select 姓名,班级,成绩 from students WHERE 成绩 = '98';

关键字WHERE:筛选条件‘等于 98’的

select 姓名,班级,成绩 from students WHERE 成绩 <> '98';

关键字WHERE:筛选条件‘不等于 98’的

select 姓名,班级,成绩 from students WHERE 成绩 = '98' ORDER BY 成绩;

关键字ORDER BY:对查询结果 ‘按成绩’进行排序

默认升序排列(由低到高)

select 姓名,班级,成绩 from students WHERE 成绩 = '98' ORDER BY 成绩,班级;

关键字ORDER BY:对查询结果 ‘按成绩、班级’进行排序

默认升序排列(由低到高)

select 姓名,班级,成绩 from students WHERE 成绩 = '98' ORDER BY 成绩 DESC;

关键字DESC:降序排列

select 姓名,班级,成绩 from students WHERE 姓名 = '张三';
select 姓名,班级,成绩 from students WHERE 姓名 LIKE '张%';
select 姓名,班级,成绩 from students WHERE 姓名 LIKE '张_';

1.使用等号=查询姓名为张三的这条数据

2.关键字LIKE模糊查询,使用%代表(0~n)个任意字符

3.使用_代表1个字符

select 姓名,班级,成绩 from students WHERE 成绩 >= 80;

筛选成绩大于等于80的数据

select 姓名,班级,成绩 from students WHERE 成绩 >= 80 AND 成绩 < 90;

关键字AND:同时符合多个条件

筛选成绩大于等于80,同时小于90的数据

select 姓名,班级,成绩 from students WHERE 成绩 BETWEEN 80 AND 90;

关键字 BETWEEN aa AND bb:筛选介于aa和bb之间的数据

筛选大于等于80,同时小于90的数据

select 姓名,班级,成绩 from students WHERE 成绩 BETWEEN 80 AND 90 AND 班级 = '一年级';

筛选大于等于80,同时小于90的数据,同时班级等于“一年级”的数据

select 姓名,班级,成绩 from students WHERE 成绩 BETWEEN 80 AND 90 AND 班级 = '一年级' OR 班级 = '二年级';

关键字OR:符合任一条件

筛选大于等于80,同时小于90的数据,同时班级等于“一年级”或者等于“二年级”的数据!

!!!注意:由于AND语法优先级比OR要高,因此筛选条件是有先后顺序的:

①筛选大于等于80,同时小于90的数据,同时班级等于“一年级”

②等于“二年级”的数据

因此,筛选出的数据,包含两个部分的所有数据。

select 姓名,班级,成绩 from students WHERE 成绩 BETWEEN 80 AND 90 AND (班级 = '一年级' OR 班级 = '二年级');

圆括号:先处理圆括号的条件。

筛选(成绩 >=80 且 < 90 ),(班级等于“一年级”或者“二年级”)

select 姓名,班级,成绩 from students WHERE 成绩 BETWEEN 80 AND 90 AND (班级 IN ('一年级','二年级'));

关键字IN:筛选符合范围内任一符合的条件,简化OR运算

班级 IN ('一年级','二年级'):“班级”在“一年级”或者“二年级”的数据

SELECT AVG(成绩),SUM(成绩),MAX(成绩),MIN(成绩),COUNT(成绩) FROM students;

AVG(成绩):计算成绩列的平均数

SUM(成绩):计算成绩列的总和

MAX(成绩):成绩列的最大值

MIN(成绩):成绩列的最小值

COUNT(成绩):计算数量

SELECT AVG(成绩) AS 平均成绩 FROM students;

关键字AS:为查询结果的栏位设置别名。

将查询结果“AVG(成绩)”一列设置成“平均成绩”

SELECT ROUND(AVG(成绩),1) AS 平均成绩 FROM students;

ROUND(AVG(成绩),1):四舍五入语法,指定保留1位小数

ROUND(AVG(成绩)):四舍五入语法,指定保留整数位,不保留小数

SELECT 班级,ROUND(AVG(成绩),1) AS 平均成绩 FROM students GROUP BY 班级;

GROUP BY 班级:分组,按照班级分组,就可以得到每个班级的平均成绩

注意:使用GROUP BY分组之后的筛选不可以使用WHERE关键字,而是改用HAVING关键字。

SELECT 班级,ROUND(AVG(成绩),1) AS 平均成绩 FROM students GROUP BY 班级 HAVING 平均成绩 >= 80;

关键字HAVING:筛选条件,当使用分组之后使用

注意:关键字之间有使用顺序,如下:
SELECT——>FROM——>WHERE——>GROUP BY——>HAVING——>ORDER BY——>LIMIT

选择——>来源——>条件——>分组——>条件——>顺序——>数量限制

SELECT COUNT(*) FROM students;

COUNT(*):计算整个表格的总行数

COUNT(成绩):计算非空的所有成绩的行数

SELECT COUNT(DISTINCT 学号) FROM students;

关键字DISTINCT:移除重复结果

注意:不会自动排除NULL空值

SELECT COUNT(DISTINCT 学号) FROM students WHERE 学号 IS NOT NULL;

指定学号不为空值NULL,配合DISTINCT就可以筛选出所有非空学号的总数

二、创建

CREATE TABLE:创建表格

create table 名称 { 第一栏名称 数据类型, 第二栏名称 数据类型 }; create table clubs{ 社团编号 int PRIMARY KEY, 社团名称 varchar(15) };

主键Primary Key:标识每一个资料,不可以为空null,不可以重复

三、删除

DROP TABLE:删除表格

DROP TABLE clubs;

四、插入

INSERT INTO ...VALUS...:插入数据到表格

INSERT INTO clubs(第一列名称,第二列名称) VALUS (101,'篮球社'),(102,'歌唱团'),(103,NULL); INSERT INTO clubs(社团编号,社团名称) VALUS (101,'篮球社'),(102,'歌唱团'),(103,NULL);

向clubs表插入三行数据,对应“社团编号”和“社团名称”列,103不知道是什么社团名称,所以补充空值NULL(注意:插入数据不可以缺失,用NULL补全)

五、更新

①UPDATE ... SET ...:更新表格数据

UPDATE clubs SET 社团名称 = '舞蹈社' WHERE 社团编号 = 103;

将社团编号为103的数据,社团名称由‘NULL’更新为“舞蹈社”

②DELETE:删除某一行/多行数据

DELETE FROM clubs WHERE 社团编号 = 104;

删除clubs表格中社团编号为104的所有数据行

六、跨表格查询

SELECT students.姓名,students.社团,clubs.社团名称 FROM students LEFT JOIN clubs ON students.社团 = clubs.社团编号 WHERE 班级 = '一年级';

LEFT JOIN ... ON ...:左连接,结合表格并展示左侧表格的所有资料

ON后面是两个表格按照什么进行连接,比如这个就是students表格的‘社团’列和clubs表格的‘社团编号’列进行连接。

查询出所有一年级的同学名称、社团、社团名称,如下:

INNER JOIN... ON ...:内连接,如果只筛选能找到对应社团的名称,将NULL都隐藏起来,将LEFT JOIN换成INNER JOIN内连接,这样就只有成功对应到社团名称的可以查询出来

SELECT students.姓名,students.社团,clubs.社团名称 FROM students INNER JOIN clubs ON students.社团 = clubs.社团编号 WHERE 班级 = '一年级';

注意:本文章为个人学习笔记,仅供参考。

本文章学习视频:【SQL 十四分钟速成班!没错不要怀疑,资料库语法比中午决定吃什么还要简单!】 https://www.bilibili.com/video/BV1bQxMehETa/?share_source=copy_web&vd_source=acd8c7efa8ef128730196ef3a561e1f0

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 23:27:33

终极NVIDIA Profile Inspector汉化指南:3小时解锁显卡隐藏功能

终极NVIDIA Profile Inspector汉化指南&#xff1a;3小时解锁显卡隐藏功能 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为NVIDIA Profile Inspector复杂的英文界面而烦恼吗&#xff1f;这款强大…

作者头像 李华
网站建设 2026/7/10 23:25:25

无人机视角航拍路面坑洼裂纹检测数据集VOC+YOLO格式4444张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数)&#xff1a;4444标注数量(xml文件个数)&#xff1a;4444标注数量(txt文件个数)&#xff1a;4444标注类别…

作者头像 李华
网站建设 2026/7/10 23:25:09

Kimi可以生成excel吗?AI导出鸭解锁AI表格导出新路径

一&#xff1a;Kimi可以生成excel吗&#xff1f;AI导出鸭给出高效解法 二&#xff1a;Kimi可以生成excel吗&#xff1f;AI导出鸭解锁AI表格导出新路径 AI导出鸭电脑版&#xff1a;破解AI表格导出难题的硬核技术方案 在AI深度融入办公场景的当下&#xff0c;“Kimi可以生成excel…

作者头像 李华
网站建设 2026/7/10 23:25:04

NVIDIA Profile Inspector 深度解析:如何应对571.96驱动崩溃危机

NVIDIA Profile Inspector 深度解析&#xff1a;如何应对571.96驱动崩溃危机 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 在显卡优化与游戏性能调校领域&#xff0c;NVIDIA Profile Inspector&#…

作者头像 李华
网站建设 2026/7/10 23:23:49

如何在Blender中实现专业级MMD工作流:MMD Tools插件的终极指南

如何在Blender中实现专业级MMD工作流&#xff1a;MMD Tools插件的终极指南 【免费下载链接】blender_mmd_tools MMD Tools is a blender addon for importing/exporting Models and Motions of MikuMikuDance. 项目地址: https://gitcode.com/gh_mirrors/bl/blender_mmd_tool…

作者头像 李华