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

以学生表为例:

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 命令会列出所有的值。

你可能感兴趣的:(编程语言,sql)