关系型数据库查询

这篇博客总结了关系型数据库的查询语法,包括简单查询、取别名、限制行数、去重、多条件查询、集合查询、模糊查询、NULL查询、常量列、排序、聚合统计函数、分组以及各字句执行顺序。示例涵盖SELECT、WHERE、ORDER BY、LIMIT等多个关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近回顾许久以前的基础知识,对关系型数据库的查询的语法做了一些总结,
好了,话不多说,总结结果如下:
1,简单查询:
格式:SELECT 列名1,列名2,… FROM 表名 [WHERE 条件] [ORDER BY 列名 [ASC|DESC]] [LIMIT 起始索引,数据条数];
2,取别名:
SELECT 列名1 AS “别名1”,列名2 AS “别名2”,… FROM 表名;
例子:SELECT sname AS “姓名”,tel AS “电话” FROM student;

注:AS关键字可以省略

3,限制行数(一般用于分页):
SELECT 列名1,列名2,… FROM 表名 LIMIT [起始索引,]数据条数
4,结果去重:
SELECT DISTINCT 列名1,列名2,… FROM 表名;
例:SELECT DISTINCT id,sex FROM student;

注:只有当查询结果的所有列值相同时,才认为是重复数据被去掉,不是真的某一列查询结果;

5,多条件查询
SELECT 列名1,列名2,… FROM 表名 WHERE 列名1=值1 AND|OR 列名2=值2;
例子: SELECT sname,tel FROM student WHERE sex=“女” AND age<25;
SELECT 列名1,列名2,… FROM 表名 WHERE 列名1 BETWEEN 值1 AND 值2;
例子:SELECT sname FROM student WHERE age BETWEEN 25 AND 30;
6,集合查询
SELECT 列名1,列名2,… FROM 表名 WHERE 列名1 IN (值1,值2,…);
例子:SELECT * FROM student WHERE sname IN (“张三”,“王八”);
7,模糊查询
SELECT 列名1,列名2,… FROM 表名 WHERE 列名1 LIKE “通配符表达式”;

扩展:通配符
	"_":任意一个字
	"%":任意长度的字符串;

例子1:SELECT * FROM student WHERE sname LIKE “王_”
例子2:SELECT * FROM student WHERE sname LIKE “王%”;

8,null查询
SELECT 列名1,列名2,… FROM 表名 WHERE 列名1 IS NUL
例子:SELECT * FROM student WHERE sname IS NULL
9,常量列
SELECT 列名1,列名2,…,“常量值” AS “常量列名” FROM 表名;
例子:SELECT id,sname,“四川大学” AS “学校名称” FROM student
10,查询结果排序
SELECT 列名1列名2FROM 表名 ORDER BY 列名1 [ASC|DESC],列名2 [ASC|DES]…

ASC:默认排序,升序 DESC:降序

11,聚合统计函数
COUNT(DISTINCT 列):统计结果集或者组内的数据行数
AVG;统计结果集或者组内中指定列的平均值
SUM:统计结果集或者组内中指定列的总和
MAX:统计结果集或者组内中指定列的最大值
MIN:统计结果集或者组内中指定列的最小值

注意:COUNT(DISTINCT 列)与COUNT()区别:
1、COUNT(DISTINCT 列)可以对指定列去重后计数;
2、COUNT(DISTINCT 列)如果指定列值为NULL,该行不会作为计数目标,COUNT(
)会

注意:使用了聚合函数或者分组时,SELECT查询不要出现普通列,但是可以出现:
1.分组的依据列
2.为每个分组返回一个值的表达式,如聚合函数

12,分组
SELECT 列名1列名2FROM 表 WHERE 条件 GROUP BY 列名1列名2HAVING 条件
将结果集数据按分组依据列的值进行分组(值相同为一组),对组按HAVING的条件进行筛选
13,各字句执行顺序
1、首先执行FROM子句,将FROM子句中的表做为中间表;
2、如果有WHERE子句,则根据其中的过滤条件,从中间表中去掉不满足过滤条件的行。
3、根据GROUP BY子句中指定的分组列,对中间表中的数据进行分组。
4、为每个组计算SELECT子句聚合函数的值,并为每组生成查询结果中的一行。
5、如果有HAVING子句,则根据HAVING子句的过滤条件,分组计算聚合计算的结果再次过滤。
6、如果有ORDER BY子句中,则根据ORDER BY子句中的列,对结果集进行排序。
7、如果有LIMIT,只留下符合规则的数据条数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值