数据库技术实践2_第1页
数据库技术实践2_第2页
数据库技术实践2_第3页
数据库技术实践2_第4页
数据库技术实践2_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、实 验 报 告课程名称 数据库技术实践 实验项目 SQL语言基础、架构与基本表、高级查询 实验仪器 SQL Server 2008 系 别_计算机科学与技术系 _专 业_计算机科学与技术_ _ 班级/学号 _ _ _学生姓名 _ _ _ 实验日期 _成 绩 _ _ 指导教师 _ _ _ _一内容说明(1)学习SQL语言的基础,架构与基本表的修改。(2)熟悉高级查询,包括相关子查询、其他形式子查询,同时涉及排序、查找等功能。二.SQL语言基础在students数据库中创建一个用户定义的数据类型:类型名为:my_type,对应的基本数据类型为:char(10),允许空。代码:create type

2、 my_type from char(10) null1 声明一个字符串型的局部变量,并对其赋初值:My First Var,然后在屏幕上显示此值。2 编写实现如下功能的脚本,并将编写好的脚本保存到磁盘文件中。声明两个整型的局部变量:i1和i2, i1的初值为10, i2的值为:i1乘以5,最后在屏幕上显示i2的值。代码:declare i1 int = 10declare i2 int set i2 = i1 * 5print i2用While语句实现计算5000减1、减2、减3 ,一直减到50的结果,并显示最终结果。declare x int = 1declare y int = 5000

3、while x =90 then 好when (sc.Grade =80) and (sc.Grade =70) and (sc.Grade =60) and (sc.Grade =6) then 多when (count(sc.Cno) =3) and (count(sc.Cno) =1) and (count(sc.Cno) =90 then 好when (avg(sc.Grade) =80) and (avg(sc.Grade) =70) and (avg(sc.Grade) =1)and(Semester=3)and(Semester=5)and(Semester= 80order b

4、y AvgGrade desc7查询计算机系年龄小于信息管理系全体学生年龄的学生的姓名和年龄。8查询计算机系年龄大于信息管理系某个学生年龄的学生的姓名和年龄。9查询哪些课程没有学生选,列出课程号和课程名。(用EXISTS子查询实现)10查询计算机系哪些学生没有选课,列出学生姓名。(用EXISTS子查询实现)11查询没有选修第2学期开设的全部课程的学生的学号、其所选的课程号和该课程的开课学期。12查询至少选了第4学期开设的全部课程的学生的学号和所在系。13查询至少选了“0831102”号学生所选的全部课程的学生的学号。select sno from student swhere not exis

5、ts(select * from SC cwhere c.Sno =0831102 and not exists(select * from SCwhere SC.Cno=o and SC.Sno=s.sno)14查询至少选了“张海”所选的全部课程的学生的学号、所在系和所选的课程号。select s.Sno,sdept,cno from Student s join SC on s.Sno=SC.Snowhere not exists (select * from SC join Student s on s.Sno=SC.Snowhere Sname=张海 and not exists (s

6、elect * from SC join Student s on SC.sno=s.sno )15查询至少选了全部学分大于3分的课程的学生的学号、所在系和所选的课程号、课程名以及学分。16查询在第4学期开设课程中与第1学期开设的课程学分相同的课程,列出课程名和学分。17查询“李勇”和“王大力”所选的相同课程,列出课程名、开课学期和学分。18查询“李勇”选了但“王大力”没有选的课程,列出课程名、开课学期和学分。19查询至少同时选了“C001”和“C002”两门课程的学生的学号和所选的课程号。20查询学生学号、姓名、所在系及该系的学生人数。21查询学生姓名、年龄、所在系及该系的平均年龄、最大年龄

7、和最小年龄。22. 查询学号、姓名、性别、所在系以及该系的学生总人数、男女生人数及男女生百分比。查询结果样式如图7-46所示。图7-46 22题的查询结果样式select sno,sname,sex,dept, COUNT(*) over(partition by dept) as 系总人数, COUNT(Sex) over(partition by sex,dept) as 男女生人数, cast(1.0*count(sex)over(partition by sex,dept)/COUNT(*) over(partition by dept) as decimal(5,2)as男女生百分比

8、 from Student order by dept23. 查询计算机系学生的考试情况,列出学号、姓名、考试课程名、考试成绩及成绩排名。该查询的部分结果形式如图7-47所示。图7-47 23题的查询结果样式24. 查询学生学号、选的课程号、考试成绩及考试成绩在该门课程中的排名。该查询的部分结果形式如图7-48所示。图7-48 24题的查询结果样式select sno,sname,sex,dept, COUNT(*) over(partition by dept) as 系总人数, COUNT(Sex) over(partition by sex,dept) as 男女生人数, cast(1.

9、0*count(sex)over(partition by sex,dept)/COUNT(*) over(partition by dept) as decimal(5,2)as男女生百分比 from Student order by dept 25. 查询学生姓名、所在系、出生日期及该学生在该系中的年龄排名(按从大到小)。该查询的部分结果形式如图7-49所示。图7-49 25题的查询结果样式26定义一个统计每门课程的考试平均成绩和选课人数的CTE,并利用该CTE查询选课人数超过2人的课程。27. (选做)查询Course表中的全部数据并将其保存到一个新表NewCourse中,然后为NewCourse表增加一个先修课程列PriorCno,该列表明了当前课程的先修课程编号,NULL表示该门课程没有先修课程。NewCourse表的结构和数据如表7-6所示。表7-6 NewCourse表数据CnoCnameCreditSemesterPriorCnoC001 高等数学41NULLC002 大学英语31NULLC003 大学英语32C002C004 计算机文化学22NULLC005 JAVA23C004C006 数据库基础45C007C007 数据结构44C009C008 计算机网络44C004C009Java语言43C004 用NewCourse表查询每门课程的信息及

温馨提示

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

评论

0/150

提交评论