SQL(操作符:in、between、not、union、union all)

本文以学生表为例,介绍了SQL中的几个关键操作符:in用于选取多个特定值,如选取姓名为Tom和Lily的信息;between则选取指定范围内的数据,例如学号在100001和100003之间的学生;not操作符用于否定条件,如排除学号在100001和100003之间的学生;union和union all用于合并多个查询结果,union保留不重复记录,union all显示所有记录。

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

以学生表为例:

in操作符

可以在where子句中规定多个值

例1:选取姓名为Tom和lily的信息

select * from Students
Where s_name in ('Tom','Lily')

between操作符

会选取介于两个值之间的数据范围,数值、文本或者日期均可。

例1:选取学号介于100001和100003之间的学生信息

select * from Student
Where s_id
between '100001' and '100003'

对于不同数据库,对于between...and 操作符处理的方式略有差异,有些会列出100001和100003,有些两个都不包含,还有些会包含100001和100003其中一个。

Not操作符

表示否定

例1:选取学号不介于100001和100003之间的学生信息

select * from Student
Where s_id
not between '100001' and '100003'

Union操作符

用于合并两个或多个select语句的结果集

注意:Union要求比较严格,使用select语句表之间必须有相同数量的列,列的数据类型也相似,且列的顺序必须相同。

以Student表和Student1表为例:

Student:s_id,s_name,s_age,s_sex

s_id

s_name

s_age

s_sex

10001

Lily

  8

girl

10002

Tina

9

girl

10003

Robert

10

boy

10004

Tom

9

boy

Student1:s_id,s_name1,s_age1,s_sex1

s_id

s_name1

s_age1

s_sex1

10001

Lily

  8

girl

10005

Dada

9

boy

10006

Hello

10

boy

10007

Ketty

9

girl

select s_id,s_name from Student
union
select s_id,s_name1 from Student1

结果集:

s_id

s_name

10001

Lily

10002

Tina

10003

Robert

10004

Tom

10005

Dada

10006

Hello

10007

Ketty

union all 操作符

用于合并两个或多个select语句的结果集

select s_id,s_name from Student
union all
select s_id,s_name1 from Student1

结果集:

S_id

S_name

10001

Lily

10002

Tina

10003

Robert

10004

Tom

10001

Lily

10005

Dada

10006

Hello

10007

Ketty

通过对比结果集可看到:

1、两张表的列名可以不一致,最终连接后的结果集的列名是等于第一个select中的列名

2、union和union all 作用是一致的,差异在于union命令只会选取不同的值,union all 命令会列出所有的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值