数据库 练习(附参考答案).doc_第1页
数据库 练习(附参考答案).doc_第2页
数据库 练习(附参考答案).doc_第3页
数据库 练习(附参考答案).doc_第4页
数据库 练习(附参考答案).doc_第5页
全文预览已结束

下载本文档

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

文档简介

(答案不唯一,此篇仅供参考)练习题:1.某个学籍数据库有如下表结构:学生(学号,姓名,性别,出生日期,班级)课程(课程号,课程名称,课程类别,课时)选课(学号,课程号,成绩)请完成下列查询要求。 查询出“软件041”班的所有男生的学号和姓名。select 学号, 姓名 from 学生 where 班级 软件041 and 性别 男 查询出课程名称中含有“语言”一词的课程的所有信息。select * from 课程 where 课程名称 like %语言% 查询出“C语言”课程成绩前5名的学生的学号、姓名和班级。select top 5 学生.学号, 姓名 from 学生, 课程, 选课where 学生.学号 = 选课.学号 and 选课.课程号 = 课程.课程号and 课程名称 = C语言order by 成绩 desc 查询出各班级学生人数。select 班级, count(*)from 学生 group by 班级 查询出“计算机应用基础”课程成绩高于张三同学此门课程成绩的学生的学号和姓名。select 学生.学号, 姓名 from 学生, 课程, 选课 where 学生.学号 = 选课.学号and 课程名 = 计算机应用基础 and 成绩 (select 成绩 from 选课 where 学号 = ( select 学号 from 学生 where 姓名 = 张三)2编写一个自定义函数,功能是求一个长方体的体积并调用此函数求长为3,宽为7,高为9的长方体的体积。create function V( length int, width int, hight int )returns intasbegindeclare volume intset volume = length * width * hightendgo-调用declare volumeselect volume = dbo.volume( 3, 7, 9)3.用T-SQL语句建立一个名为Student的数据库(数据文件名为Student_data,大小为10MB,最大值为50MB,增长度为5MB,日志文件名为Student_log,大小为5MB,最大值为25MB,增长度为10%,数据库的路径为D:Database)。create database Studenton(name = Student_data,filename = D:DatabaseStudent_data.mdf,size = 10 MB,maxsize = 50 MB,filegrowth = 5 MB)log on(name = Student_log,filename = D:DatabaseStudent_log.ldf,size = 5 MB,maxsize = 25 MB,filegrowth = 10%)4.创建触发器Stu_Insert,只要表StuTest表发生插入,先检查字段Sage是否大于18如果大于18则插入数据表StuTest中,否则不允许插入。create trigger Stu_Inserton StuTestas beginif (select Sage from inserted) 18Insert into StuTestselect * from insertedelseprint Sage 小于或等于18,不允许插入end5.创建一个名为StuScore的视图,功能查询StuInfo表中字段Sdept值为CS并且字段Math、English、Computer的总分不低于240分的同学信息(包括字段Stu_Name,Stu_NO);具有检查功能。create view StuScoreas select Stu_Name, Stu_NOfrom StuInfowhere Sdept = CS and Math + English + Computer ! 18order by 学号 descgo(2)在以上三个表中查询选的课程的“学分”为4,并且成绩大于80的学生的学号、姓名和性别。select student.学号, 姓名, 性别from studentwhere student.学号 = sc.学号and course.课程号 = student.课程号and 学分 = 4and 成绩 80(3)创建一存储过程getDetailByName,通过输入参数学生姓名(如“张然),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。create procedure getDetailByName StuName char(8) asif exists (select * from student where 姓名 = StuName)select * from student where 姓名 = StuNameelseprint 不存在此学生7.假设已经定义了学生表(表名为xs)(列包括学号 char(6),姓名 char(8),性别 bit,出生日期 datetime,专业 char(18)、课程表(kc)(列包括课程号 char(3),课程名 char(18)。(1)请写出xs表和kc表的联系表选修表(表名xs_kc)的定义语句并定义参照完整性(xs_kc包含3列,第3列为成绩),并向数据库XSCJ中插入以下记录: 091101,张林,女,计算机 091102,刘明, 男,数学 091101,101,87 091101,102,98 101,数据库原理 102, SQL Server 2005请同学们写出各条记录的SQL语句。create table xs_kc(学号 char(6) not null,课程号 char(3) not null,成绩 float,foreign key(学号) refrences xs(学号),foreign key(课程号) refrences kc(课程号)goinsert into xsvalues( 091101, 张林, 0,null , 计算机)goinsert into xsvalues( 091102, 刘明, 1, null, 数学)goinsert into xs_kcvalues( 091101, 101, 87)goinsert into xs_kcvalues( 091101, 102, 92)goinsert into kcvalues( 101, 数据库原理)goinsert into kcvalues( 102, SQL Server 2005)go(2)用SQL语句实现以下功能: 查询XSCJ数据库XS表中计算机系的所有女同学的信息。select *from xswhere 性别 = 0and 专业 = 计算机 求选修101课程的学生的平均成绩。select avg(成绩)from xs_kcwhere 课程号 = 101 更新xs_kc表中所有成绩,更新后的成绩为原成绩的80%。update xs_kcset 成绩 = 成绩 * 0.8

温馨提示

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

评论

0/150

提交评论