指定列的查询
Select 学号, 姓名, 性别 from 学生表
所有列的查询
Select * from 学生表
查找唯一记录
Select distinct 姓名 from 学生表
查找前面n条记录
Select top 5 * from 学生表
单列排序
Select * from 学生表 Order by 生日
多列排序
Select * from 学生表 Order by 生日, 性别
21
条件查询
Select * from 学生表 where 学号 = 2
单值比较运算符: > = < < >
Select * from 学生表 where 学号 >= 2
Between and
Select * from 学生表 where 学号 between 2 and 4
二、复杂查询
And:
查询计算机专业的女生记录 Or:
查询计算机和会计专业的学生记录
In: Select * from 学生表 where 专业编号 in (1, 2)
模糊查询: 通配符:
select * from 学生表 where 姓名 like '张*' select * from 学生表 where 姓名 like '张??' select * from 学生表 where 姓名 like '张[三]*'
22
select * from 学生表 where 姓名 like '张[!三]*'
三、聚合与分组
select 姓名, datediff(\生日,now()) as 年龄 from 学生表
按专业分组,求各专业的平均年龄
select avg(datediff(\生日,now())) as 平均年龄 from 学count、sum、max、min、avg
生表 group by 专业编号
求平均年龄超过30岁的专业
select 专业编号, avg(datediff(\生日,now())) as '平均年龄'
from 学生表 group by 专业编号 having avg(datediff(\生日,now())) > 30
四、多表查询
23
1. 内连查询
select s.姓名,m.名称 from 学生表 as s inner join 专业表 as
m on s.专业编号=m.专业编号
2. 左外连接
select m.*, s.* from 专业表 as m left join 学生表 as s on m.
专业编号 = s.专业编号
3. 右外连接
24
select m.*, s.* from 专业表 as m right join 学生表 as s on m.
专业编号 = s.专业编号
五、子查询
1. 简单子查询
查询课程网页设计的成绩记录
Select * from 成绩表 where 课程编号=(Select 课程编号 当一个查询是另一个查询的条件时,称之为子查询。
from 课程表 where 课程名称='网页设计' )
2. 嵌套子查询
查找Java课程分数子啊90分以上的学生信息
Select * from 学生表 where 学号=(Select 学号 from 成绩
表 where 课程编号=( Select 课程编号 from 课程表 where 课程名称 = 'Java' ) and 分数 > 90 )
课堂练习
查询年龄在25岁以上的女生
25