文档库

最新最全的文档下载
当前位置:文档库 > SQL语句

SQL语句

SQL语句及运用

1.SQL简单查询

(1)对“课程”表进行查询,显示课程全部信息

SELECT___*___FROM 课程

(2)列出前5个教师的姓名和工龄。

SELECT top 5 姓名,Year(Date())-Year(工作时间) AS 工龄 FROM 教师

(3)求出所有教师的平均年龄。

SELECT AVG(年龄) AS平均年龄 FROM 教师

2.带条件查询

(1)列出成绩在80分以上的学生记录。

SELECT * FROM 选课成绩 WHERE 成绩 >80

(2)求出福建住址的学生平均年龄。

SELECT AVG(年龄) AS 平均年龄 FROM 学生 WHERE 住址 LIKE"*福建*"

(3)列出北京海淀区和上海住址的学生名单。

SELECT 学生编号,姓名,住址 FROM 学生 WHERE 住址 IN ("北京海淀区" ,"上海") (4)列出成绩在80分到100分之间的学生名单。

SELECT 学生编号,成绩 FROM 选课成绩 WHERE 成绩 BETWEEN 80 AND 100

(5)列出所有的姓“张”的学生名单。

SELECT 学生编号,姓名 FROM 学生 WHERE 姓名 LIKE "张*"

(6)列出所有成绩为空值的学生编号和课程编号。

SELECT 学生编号,课程编号 FROM 选课成绩 WHERE 成绩 IS NULL

3.排序

(1)按性别顺序列出学生编号、姓名、性别、年龄及住址,性别相同的再按年龄由大

到小排序。

SELECT 学生编号,姓名,性别,年龄,住址 FROM 学生 ORDER BY "性别" , "年龄" DESC

(2)将学生成绩降序排序,只显示前30%的记录。

SELECT top 30 percent * FROM 选课成绩 ORDER BY 成绩 DESC

4.分组查询。

(1)分别统计“学生”表中男女生人数。

SELECT 性别,COUNT(*) AS 人数 FROM 学生 GROUP BY 性别

(2)分别统计“教师”表中男女同志政治面目为非党员的人数。

SELECT 性别,COUNT(*) AS 人数 FROM 教师 WHERE 政治面目 <> "党员" GROUP BY

性别

(3)列出平均成绩大于75分的课程编号,并按平均成绩升序排序。

SELECT 课程编号,AVG(成绩) AS 平均成绩

FROM 选课成绩

GROUP BY 课程编号 HAVING AVG(成绩)>75

ORDER BY AVG(成绩) ASC

(4)统计每个学生选修课程的门数(超过1门的学生才统计),要求输出学生编号和选

修门数,查询结果按选课门数降序排列,若门数相同,按学生编号升序排列。

SELECT 学生编号,COUNT(课程编号) AS 选课门数

FROM 选课成绩

GROUP BY 学生编号 HAVING count(课程编号)>1

ORDER BY 2 DESC,1

5.嵌套查询

(1)列出选修“高等数学”的所有学生的学生编号。

SELECT 学生编号 FROM 选课成绩 WHERE 课程编号=

(SELECT 课程编号 FROM 课程 WHERE 课程名称="高等数学")

(2)列出选修“101”课的学生中成绩比选修“105”的最低成绩高的学生编号和成绩。

SELECT 学生编号,成绩 FROM 选课成绩

WHERE 课程编号="101"And 成绩>Any

(SELECT 成绩 FROM 选课成绩 WHERE 课程编号="105")

(3)列出选修“101”课的学生,这些学生的成绩比选修“105”课的最高成绩还要高

的学生编号和成绩。

SELECT 学生编号,成绩 FROM 选课成绩

WHERE 课程编号="101" And 成绩>All

(SELECT 成绩 FROM 选课成绩 WHERE 课程编号="105")

(4)列出选修“高等数学”或“英语”的所有学生的学生编号。

SELECT 学生编号 FROM 选课成绩

WHERE 课程编号 IN

(SELECT 课程编号 FROM 课程 WHERE 课程名称="高等数学" or 课程名称="英语" )

6.联接查询

(1)输出所有学生的成绩单,要求给出学生编号、姓名、课程编号、课程名称和成绩。

SELECT a.学生编号,姓名,b.课程编号,课程名称,成绩

FROM 学生 a,选课成绩 b,课程 c

WHERE a.学生编号=b.学生编号 And b.课程编号=c.课程编号

(2)列出团员学生的选课情况,要求列出学生编号、姓名、课程编号、课程名称和成

绩。

SELECT a.学生编号,a.姓名,b.课程编号,课程名称,成绩

FROM 学生 a,选课成绩 b,课程 c

WHERE a.学生编号 = b.学生编号 and b.课程编号=c.课程编号

(3)求选修“101”课程的女生的平均年龄。

SELECT AVG(年龄) AS 平均年龄 FROM 学生,选课成绩

WHERE 学生.学生编号=选课成绩.学生编号 AND 课程编号="101"

7.联合查询

对“教学管理”数据库,列出选修“101”或“102”课程的所有学生的学生编号和姓

名,要求建立联合查询。

SELECT 学生.学生编号,学生.姓名 FROM 选课成绩,学生

WHERE 课程编号="101" AND 选课成绩.学生编号=学生.学生编号

UNION SELECT 学生.学生编号,学生.姓名 FROM 选课成绩,学生

WHERE 课程编号="102" AND 选课成绩.学生编号=学生.学生编号