1、Get清风数据库第二部分数据库第二部分实 验 报 告课程名称 数据库技术实践 实验项目 SQL语言基础、架构与基本表、高级查询 实验仪器 SQL Server 2008 系 别_计算机科学与技术系 _专 业_计算机科学与技术_ 班级/学号_xxxxxxxxxxxxxxxxxxx学生姓名 _xxxxxxxxxxxxxxxxxxx 实验日期 成 绩 _ 指导教师 _ 梁琦 _ _一内容说明本次实验的内容有学习了SQL语言的基础,架构与基本表的修改,还有高级查询,涉及到相关子查询、其他形式子查询、查询结果的并,交,差运算等,其中还涉及到一些查询功能,例如:开窗函数,公式表达等。二.SQL语言基础1在
2、students数据库中创建一个用户定义的数据类型:类型名为:my_type,对应的基本数据类型为:char(10),允许空。2声明一个字符串型的局部变量,并对其赋初值:My First Var,然后在屏幕上显示此值。declare str as char(100)=My First Varprint str3编写实现如下功能的脚本,并将编写好的脚本保存到磁盘文件中。(1)声明两个整型的局部变量:i1和i2, i1的初值为10, i2的值为:i1乘以5,最后在屏幕上显示i2的值。declare i1 as int =10;declare i2 as int =i1*5;print i2(2)用
3、While语句实现计算5000减1、减2、减3 ,一直减到50的结果,并显示最终结果。declare i1 as int =1;declare sum as int =5000;while i1=90 then 好 when (sc.Grade =80) and (sc.Grade =70) and (sc.Grade =60) and (sc.Grade =6) then 多 when (count(sco) =3) and (count(sco) =1) and (count(sco) =90 then 好 when (avg(sc.Grade) =80) and (avg(sc.Grad
4、e) =70) and (avg(sc.Grade) =1)and(course.Semester=3)and(course.Semester=5)and(course.Semester= 80order by AVGGrad desc7查询计算机系年龄小于信息管理系全体学生年龄的学生的姓名和年龄。selectt1.Sname as 姓名,DATEPART(yy,getdate()-t1.Birthday)-1900 as 年龄from dbo.student as t1wheret1.Birthday(select max(student.Birthday)from dbo.studentw
5、here student.Dept=信息管理系)andt1.Dept=计算机系8查询计算机系年龄大于信息管理系某个学生年龄的学生的姓名和年龄。selectt1.Sname as 姓名,DATEPART(yy,getdate()-t1.Birthday)-1900 as 年龄from dbo.student as t1where t1.Birthday3 and not exists(select * from SC where SCo=co and SC.Sno=s.sno)16查询在第4学期开设课程中与第1学期开设的课程学分相同的课程,列出课程名和学分。select cname,credit
6、 from Coursewhere Semester=4 and Credit in(select credit from Course where Semester=1)17查询“李勇”和“王大力”所选的相同课程,列出课程名、开课学期和学分。select cname,semester,credit from Course join SC on Courseo=SCo join Student on Student.Sno=SC.Snowhere sname=李勇intersectselect cname,semester,credit from Course join SC on Cours
7、eo=SCo join Student on Student.Sno=SC.Snowhere sname=王大力 18查询“李勇”选了但“王大力”没有选的课程,列出课程名、开课学期和学分。select Cname,semester,credit from Course join SC on Courseo=SCo join Student on Student.Sno=SC.Snowhere sname=李勇exceptselect Cname,semester,credit from Course join SC on Courseo=SCo join Student on Student.
8、Sno=SC.Snowhere sname=王大力19查询至少同时选了“C001”和“C002”两门课程的学生的学号和所选的课程号。select SC.Sno,SCo from Course join SC on Courseo=SCo join Student on Student.Sno=SC.Snowhere SC.Sno in(select t1.sno from (select * from SC where Cno=C001) as t1join (select * from SC where Cno=C002) as t2on t1.Sno=t2.Sno)20查询学生学号、姓名、所在系及该系的学生人数。select sno,sname,dept,COUNT(*) over(partition by dept) 该系的学
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1