数据库的简单查询和连接查询

2022-07-21 07:55:14   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《数据库的简单查询和连接查询》,欢迎阅读!
查询,连接,简单,数据库
实验五:数据库的简单查询和连接查询

实验目的:

掌握简单表的数据查询、数据排序和数据联结查询的操作方法。

实验内容:

简单查询操作和连接查询操作。

实验步骤:

. 单表查询:

1. 查询全体学生的学号和姓名:

select sno, sname from student 2. 查询全体学生的所有信息:

select * from student

或者 select sno, sname, ssex,sage, sdept from student

3. 查询全体学生的姓名, 出生年份,和所在系, 并用小写字母表示所有系名:

select sname, '出生年份为: ', year(getdate()) - sage, lower(sdept) from student 4. 给上例的结果集指定列名:

select sname, '出生年份为: ' 出生, year(getdate())- sage 年份, lower(sdept) 系名from student

5. 查询选修了课程的学生的学号: select distinct sno from sc 比较: select sno from sc

6. 查询年龄在20岁以下的学生的姓名及其年龄:

select sname, sage from student where sage<20 7. 查询考试成绩有不及格的学生的学号:

select distinct sno from sc where grade<60 比较: select sno from sc where grade<60

8. 查询年龄在20-30岁直接的学生的姓名, 姓名, 所在系:

select sname, ssex, sdept from student where sage between 20 and 30 9. 查询 IS,CS,MA系的所有学生的姓名和性别:

select sname, ssex from student where sdept in ('IS', 'MA','CS') 10. 查找所有姓的学生的姓名, 学号和性别:

select sname, sno, ssex from student where sname like '%'

比较: 将学生表中的95001号学生的姓名李勇改为李勇勇, 再执行: select sname, sno, ssex from student where sname like '_' 11. 查询没有先行课的课程课程cno课程cname: select cno, cname from course where pcno is null . 查询结果排序

12. 查询选修了3课程的学生的学号和成绩, 并按分数降序排列: select sno, grade from sc where cno='3' order by grade DESC

23. 查询全体学生的情况,查询结果按所在系号升序排列, 同一系中的学生按年龄降序排列:


select * from student order by sdept ASC, sage DESC . 连接查询:

14. 查询每个学生及其选修课程的情况:

select student.*, sc.* from student, sc where student.sno=sc.sno 比较: 笛卡尔集: select student.*, sc.* from student, sc

自然连接: select student.sno, sname, ssex, sdept, cno, grade from student, sc where student.sno=sc.sno

15. 查询每一门课程的间接先行课(只求两层即先行课的先行课):

select First.cno, Second.pcno 间接先行课from course First, course Second where First.pcno=Second.cno 比较:

select First.cno, Second.pcno from course First, course Second where First.pcno=Second.cno and Second.pcno is not null

16. 列出所有学生的基本情况和选课情况, 若没有选课,则只列出基本情况信息:

SQL Server : select s.sno, sname, ssex,sdept, cno, grade from student s, sc sc where s.sno*=sc.sno

*= 是右连接 相当于 right outer join =* 是左连接 相当于 left outer join

(此处相当于左外连接)select s.sno,sname, ssex,sdept,cno,grade from student s left outer join sc on s.sno=sc.sno

17. 查询每个学生的学号, 姓名, 选修的课程名和成绩:

select S.sno, sname, cname, grade from student S, course C, sc SC where S.sno=SC.sno and C.cno=SC.cno 思考:

如何求出不及格学生的学号, 姓名, 不及格的课程名以及成绩。 小结:




本文来源:https://www.wddqxz.cn/1bbe3c771711cc7931b716b3.html

相关推荐