以学生表为例:
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 命令会列出所有的值。