一、逻辑运算符
1、And
表示“和、与、并且”的意思
2、Or
表示“或者”的意思
3、In
代表在某些参数范围之间的都符合条件,相当于多个or
4、Not
表示取反,not不能单用,只能修饰in、like等
5、Between and
表示在某个范围之内,相当于>= <=
6、Like
是模糊查询
7、All
所有的
8、Any
任意的
例:
1、查询“学生信息表”里一班的和二班的
select * from 学生信息表 where 班级='一班' and 班级='二班'
2、查询“学生信息表”里一班的或二班的
select * from 学生信息表 where 班级='一班' or 班级='二班'
3、查询“学生信息表”里学号为1号、2号、3号的
select * from 学生信息表 where 学号 in ('1','2','3')
4、查询“学生信息表”里学号不为1号、2号、3号的
select * from 学生信息表 where 学号 not in ('1','2','3')
5、查询“学生信息表”里学号在10号到15号之间的
select * from 学生信息表 where 学号 between 10 and 15
6、查询“学生信息表”里姓王的
select * from 学生信息表 where 姓名 like '王%'
7、查询“学生信息表”里出生日期在2000-2-1到2000-3-1之间的学生的学号,然后查询大于所有这些学号的学生的姓名
select 姓名 from 学生信息表 where 学号 >all
(
select 学号 from 学生信息表 where 出生日期>'2000-2-1' and 出生日期<'2000-3-1'
)
8、查询“学生信息表”里出生日期在2000-2-1到2000-3-1之间的学生的学号,然后查询大于里面任意一个学号的学生的姓名
select 姓名 from 学生信息表 where 学号 >any
(
select 学号 from 学生信息表 where 出生日期>'2000-2-1' and 出生日期<'2000-3-1'
)
二、
1、排序:(asc 升序排列,默认可不写;desc 降序排列,不可省略)
(1)、对一列排序:
将“学生信息表”按“学号”降序排列
select * from 学生信息表 order by 学号desc
(2)、对两列排序:
将“学生信息表”先按“学号”降序排列,再按“出生日期”升序排列
select * from 学生信息表 order by 学号desc , 出生日期
2、分组:
将“学生信息表”按“学号”分组
select * from 学生信息表 group by 学号
3、去重:
将“学生信息表”的“班级”一列去重
select distinct from 班级 from 学生信息表
4、选前多少条数据:
查询“学生信息表”全部信息
select * from 学生信息表
查询“学生信息表”前5条信息
select top 5 * from 学生信息表
查询“学生信息表”按“学号”排序后的前5条信息
select top 5 * from 学生信息表 order by 学号
查询“学生信息表”里“学号”大于5号,小于15号,然后按“学号”排序后的前5条信息
select top 5 * from 学生信息表 where 学号>5 and 学号<15 order by 学号
例:
select * from 学生信息表
--查男同学身高以上的
select * from 学生信息表 where 性别='男' and 身高>170
--查姓王同学的信息
select * from 学生信息表 where 姓名 like '王%'
--查一共有几个班级
select distinct 班级 from 学生信息表
--查女同学身高在、、这三个数的信息
select * from 学生信息表 where 性别='女' and 身高 in('168','170','172')
--查询按身高排序后,第-8条数据
select top 3 * from 学生信息表 where 学号 not in
(
select top 5 学号 from 学生信息表 order by 身高 desc,学号
) order by 身高 desc,学号
--查男同学的身高高于所有女同学的同学的信息
select * from 学生信息表 where 性别='男' and 身高 > all
(
select 身高 from 学生信息表 where 性别='女'
)