sql基础入门

本文详细介绍了SQL查询的各种技巧,包括选择特定列、获取最大值和最小值、过滤空值、全量查询、去重、限制返回行数、重命名列、比较运算、逻辑运算、模糊查询、聚合函数、分组计算、排序、多表连接、结果去重以及条件判断等操作。这些技巧对于理解和优化数据库查询至关重要。

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

1 是山东大学的… :

SELECT 列名 FROM 表名 where 学校 =‘山东大学’;

2 最大:

max(age)

3 最小:

MIN(age)

4 年龄不为空:

SELECT age from 表名 where 年龄 is NOT NULL;

5 查询所有 :

SELECT * from 表名;

6 去重 :

DISTINCT

7 前两条数据:

SELECT 列名 FROM 表名 WHERE id =‘1’ or id=‘2’;
SELECT 列名 FROM 表名 WHERE id in(‘1’,‘2’);
SELECT 列名 FROM 表名 limit 0,2;

8 将查询后的列重新命名:

列 AS 别名 列 别名

9 年龄大于…:

age >24

10 年龄小于… :

age <24

11 同一段 :

and

12 除…以外(不为…) :

!=
not IN (‘复旦大学’)

13 不同段:

or

14 …大学:

in(‘北京大学’,‘复旦大学’,‘山东大学’);

15 …和…或…和…:

gpa>3.5 and university =‘山东大学’ or gpa>3.8 and university =‘复旦大学’

16 带有…的信息(模糊查询):

like ‘%北京%’

17 计算人数以及平均值 :

count(),avg()

18 分组计算:

group by

19 保留一位小数:

ROUND(平均值(列名),1)

20 分组过滤:

group by … having

21 升序排列:

order by

22 多表连接:

1)内连接:

SELECT …
FROM 表名
INNER JOIN 被连接表
ON 连接条件 and/where 连接条件
2)
select 列名from 表名
where 列名in(
select 列名from 表名
where 列名=‘浙江大学’
);
3)
SELECT 列名from 表名 别名a, 表名 别名b
where
a.列名= b.列名
and b.列名= ‘浙江大学’;

4)左连接

SELECT …
FROM 表名
left JOIN 被连接表
ON 连接条件 where 连接条件

5)三表连接

SELECT 列名from 表名
join 被连接表
on 连接条件
JOIN 被连接表
on 连接条件

23 结果不去重:

union/or(去重)
SELECT 列名from 表名
where 列名=‘山东大学’
union all
SELECT 列名
from 表名
where 列名=‘male’;

24

if判断

SELECT IF(列名<25 OR 列名IS NULL,‘25岁以下’,‘25岁及以上’) 别名,COUNT(列名) 别名
FROM 表名 GROUP BY 列名

联合查询

SELECT ‘25岁以下’ 别名,COUNT(列名) 别名
FROM 表名
WHERE 列名< 25 OR 列名IS NULL
UNION
SELECT ‘25岁及以上’ 别名,COUNT(列名) 别名
FROM 表名
WHERE 列名>= 25

case的写法:select

case
when age>=25 then ‘25岁及以上’
else ‘25岁以下’ end 别名,
count(*) 别名
from 表名
group by 别名

case when多值判断

select 列名,case
when age<20 then ‘20岁以下’
when age between 20 and 24 then ‘20-24岁’
when age>=25 then ‘25岁及以上’
else ‘其他’ end 别名
from 表名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值