数据库上机实验.doc_第1页
数据库上机实验.doc_第2页
数据库上机实验.doc_第3页
数据库上机实验.doc_第4页
数据库上机实验.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学号 12051134 姓名 张宏源 班级 物联网1班 上机实验四SELECT语句基本格式的使用一、实习目的:掌握SELECT的基本使用格式,能使用SQL Server对表作简单查询。二、实习准备:1. 复习第三章3.4节中SELECT语句的基本使用格式。2. 复习SQL中五种库函数:AVG、SUM、MAX、MIN、COUNT;3. 完成习题三第12题中的各项操作的SQL语句。三、实习内容:1. 验证习题三第12题中的各项操作的SQL语句。 找出所有被学生选修了的课程号;Select DistinctCnoFrom GradeOrder by Cno 找出01311班女学生的个人信息;Select *From Studentwhere Ssex=女 and Clno=01311 找出01311班、01312班的学生姓名、性别、出生年份;Select Sname,Ssex,2014-Sage as birthyearFrom Studentwhere Clno=01311or Clno=01312 找出所有姓李的学生的个人信息;Select *From Studentwhere Sname like 李% 找出学生李勇所在班级的学生人数;Select number FROM Classwhere clno=(select Clno from Student where Sname=李勇 ) 找出课程名为操作系统的平均成绩、最高分、最低分;Select AVG(Gmark),MAX(Gmark),MIN(Gmark) FROM Gradewhere Cno=(Select Cno from Course where Cname=操作系统 ) 找出选修了课程的学生人数;Select COUNT(Sno) as renshuFROM Grade 找出选修了课程操作系统的学生人数。Select COUNT(Sno) as renshuFROM Gradewhere Cno=(Select Cno from Coursewhere Cname=操作系统 )2. 试一下以下语句是否正确:SELECT eno,basepay,serviceFROM salaryWHERE basepayAVG(basepay)答:不对,聚合函数不应该出现在where语句中,除非该聚合位于HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用四、上机实验收获(感想):更加熟悉了SQL基础语言的运用,实际操作后弥补了理论想象的不足五、思考题:什么情况下需要使用关系的别名?别名的作用范围是什么?1. 简化书写2. 子查询3. 为了把先后查询的同一关系区分开来学号 姓名 班级 上机时间 上机实验五SELECT语句高级格式和完整格式的使用一、实习目的:掌握SELECT语句的嵌套使用方法,能使用SQL Server2000对表作复杂查询。二、实习准备:1. 复习第三章3.4节中SELECT语句的高级格式和完整格式的使用。2. 了解库函数在分组查询中的使用规则;3. 完成习题三第13、14题中的各项操作的SQL语句。三、实习内容:完成以下各项操作的SQL语句: 找出与李勇在同一个班级的学生信息;Select *FROM Studentwhere Clno=(Select Clno from studentwhere Sname=李勇 ) 找出选修了课程操作系统的学生学号和姓名;Select Sno,Snamefrom studentwhere sno in( Select distinct Sno from Gradewhere Cno =(Select Cnofrom Coursewhere Cname=操作系统) 找出年龄介于学生李勇和25岁之间的学生信息;(已知李勇年龄小于25岁)Select *from studentwhere Sage in(Select Sagefrom Student)and Sage3四、上机实验收获(感想):五、思考题:1 用UNION或UNION ALL将两个SELECT命令结合为一个时,结果有何不同?。UNION 命令只会选取不同的值,UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值2 当既能用连接词查询又能用嵌套查询时,应该选择哪种查询较好?为什么?选用连接词查询。 因为连接词查询,效率比嵌套查询高3 库函数能否直接使用在:SELECT选取目标、HAVING子句、WHERE子句、GROUP BY列名中?库函数可以使用在SELECT选取目标、HAVING字句、WHERE子句,不能使用在GROUPBY列名学号 姓名 班级 上机时间 上机实验六SQL的存储操作一、实习目的:掌握用交互式SQL语句对已建基本表进行存储操作:修改、删除、插入,加深对数据的完整性的理解。二、实习准备:1. 复习数据的完整性,在进行数据的修改、删除、插入时,要注意保持数据的一致性。2. 复习第三章3.5节UPDATE、DELETE、INSERT语句与子查询的结合使用;3. 完成习题三15题中的各项操作的SQL语句。三、实习内容:1、完成以下各项操作的SQL语句:将01311班的全体学生的成绩置零update Grade set Gmark=0where Sno in(select Sno from Studentwhere Clno=01311)删除01311班全体学生的选课记录; Delete from Gradewhere sno in(select snofrom Studentwhere clno=01311)学生李勇已退学,从数据库中删除有关他的记录;delete from Gradewhere Sno in(select Sno from Studentwhere Sname=李勇)update Class set Number=Number-1where Clno in(select Clno from Studentwhere Sname=李勇)update Class set Monitor=casewhere Clno in(select Clno from Studentwhere Sname=李勇)delete from Studentwhere Sname=李勇对每个班,求学生的平均年龄,并把结果存入数据库;alter table Class add pingjunnianlin smallint nullupdate Class set pingjunnianlin = (select AVG(Sage) from Student where Clno=00311)where Clno=00311update Class set pingjunnianlin = (select AVG(Sage) from Student where Clno=00312)where Clno=00312update Class set pingjunnianlin = (select AVG(Sage) from Student where Clno=01311)where Clno=013112、把所有工程师的基本工资(Basepay)增加100,试一试以下的UPDATE语句对不对:UPDATE salarySET basepay=basepay+100WHERE eno in (SELECT eno FROM employeeWHERE title=工程师)对的四、上机实验收获(感想):五、思考题:DROP命令和DELETE命令的本质区别是什么?DROP是删除表DELETE是删除表中的记录学号 姓名 班级 上机时间 上机实验七视图的建立及操作一、实习目的:掌握创建、删除和查询视图的方法,验证可更新视图和不可更新视图。二、实习准备:1. 复习第三章3.6节视图;2. 完成习题三第16题中的各项操作的SQL语句。3. 了解可更新视图和不可更新视图。三、实习内容:1. 验证习题三第16题中各项操作的SQL语句; 建立01312班选修了1号课程的学生视图Stu_01312_1;create view Stu_01312_1AS select *From student,Gradewhere clno=01312 and sno=1 建立01312班选修了1号课程并且成绩不及格的学生视图Stu_01312_2;create view Stu_00312_2 as select * from Student where Sno in (select Sno from Grade where Grade.Cno=1and Grade.Gmark=60) and Clno=00312 建立视图Stu_year,由学生学号、姓名、出生年份组成。create view Stu_year as select sno as 学号,sname as 姓名,出生年份=year(getdate()-sage from Student 查询1990年以后出生的学生姓名Create view v_day As select Sname from Student where Sage=year(getdate()-1990 查询01312班选修了1号课程并且成绩不及格的学生的学号、姓名、出生年份。Create view v_avg As select Student.Sno,Sname, year(getdate()-sage as 出生年份 from Student inner join Grade on student.sno=grade.sno where Grade.Cno=1 and Student.Clno=00312 and

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论