数据库上机实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学号 12051134 姓名张宏源班级物联网1班上机实验四——SELECT语句基本格式的使用一、实习目的:
掌握SELECT的基本使用格式,能使用SQL Server对表作简单查询。
二、实习准备:
1.复习第三章3.4节中SELECT语句的基本使用格式。
2.复习SQL中五种库函数:AVG、SUM、MAX、MIN、COUNT;
3.完成习题三第12题中的各项操作的SQL语句。
三、实习内容:
1.验证习题三第12题中的各项操作的SQL语句。
① 找出所有被学生选修了的课程号;
Select Distinct Cno
From Grade
Order by Cno
②找出01311班女学生的个人信息;
Select*
From Student
where Ssex='女'and Clno=01311
③找出01311班、01312班的学生姓名、性别、出生年份;
Select Sname,Ssex,2014-Sage as birthyear
From Student
where Clno='01311'or Clno='01312'
④找出所有姓李的学生的个人信息;
Select*
From Student
where Sname like'李%'
⑤找出学生李勇所在班级的学生人数;
Select number
FROM Class
where clno=
(select Clno
from Student
where Sname='李勇'
)
⑥找出课程名为操作系统的平均成绩、最高分、最低分;
Select AVG(Gmark),MAX(Gmark),MIN(Gmark)
FROM Grade
where Cno=
(Select Cno
from Course
where Cname='操作系统'
)
⑦找出选修了课程的学生人数;
Select COUNT(Sno)as renshu
FROM Grade
⑧找出选修了课程操作系统的学生人数。
Select COUNT(Sno)as renshu
FROM Grade
where Cno=
(Select Cno
from Course
where Cname='操作系统'
)
2.试一下以下语句是否正确:
SELECT eno,basepay,service
FROM salary
WHERE basepay 答:不对,聚合函数不应该出现在where语句中,除非该聚合位于HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用 四、上机实验收获(感想): 更加熟悉了SQL基础语言的运用,实际操作后弥补了理论想象的不足 五、思考题: 什么情况下需要使用关系的别名?别名的作用范围是什么? 1.简化书写 2.子查询 3.为了把先后查询的同一关系区分开来 学号姓名班级上机时间 上机实验五——SELECT语句高级格式和完整格式的使用一、实习目的: 掌握SELECT语句的嵌套使用方法,能使用SQL Server2000对表作复杂查询。 二、实习准备: 1.复习第三章3.4节中SELECT语句的高级格式和完整格式的使用。 2.了解库函数在分组查询中的使用规则; 3.完成习题三第13、14题中的各项操作的SQL语句。 三、实习内容: 完成以下各项操作的SQL语句: ①找出与李勇在同一个班级的学生信息; Select* FROM Student where Clno= (Select Clno from student where Sname='李勇' ) ②找出选修了课程操作系统的学生学号和姓名; Select Sno,Sname from student where sno in ( Select distinct Sno from Grade where Cno= (Select Cno from Course where Cname='操作系统' ) ) ③找出年龄介于学生李勇和25岁之间的学生信息;(已知李勇年龄小于25岁) Select* from student where Sage in (Select Sage from Student ) and Sage<25 ④找出所有没有选修1号课程的学生姓名 Select distinct s.sname from Student s LEFT JOIN Grade g on s.sno=g.sno where CNO!= 1 ⑤查询选修了3号课程的学生学号及其成绩,并按成绩的降序排列; Select Sno,Gmark from grade where Cno=3 Order by Gmark DESC ⑥求每个课程号及相应的选课人数; Select Cno,count(cno)as人数 from grade group by cno order by cno ⑦查询选修了3门以上课程的学生学号。 Select sno from Grade group by sno having COUNT(sno)>3 四、上机实验收获(感想): 五、思考题: 1.用UNION或UNION ALL将两个SELECT命令结合为一个时,结果有何不同?。 UNION 命令只会选取不同的值,UNION ALL 命令和UNION 命令几乎是等效的,不过UNION ALL 命令会列出所有的值 2.当既能用连接词查询又能用嵌套查询时,应该选择哪种查询较好?为什么? 选用连接词查询。因为连接词查询,效率比嵌套查询高 3.库函数能否直接使用在:SELECT选取目标、HAVING子句、WHERE子句、GROUP BY