《2022年《SQLServer数据库》机试测试题带答案 .pdf》由会员分享,可在线阅读,更多相关《2022年《SQLServer数据库》机试测试题带答案 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SQL Server 数据库机试测试题(数计 042专用)注意:必须读完每一题题目以后才做!1、在 D 盘中建立一个文件夹,命名方式为:学号最后4 位姓名,如:0201 张三。(注意:以后建立的文件必须保存在此文件夹中)2、在管理器中建立一个“学籍管理”的数据库。数据文件名为“学籍管理_Data”,设置文件自动增长的方式为按2M 增长,且文件增长不受限制;事务日志文件名为“学籍管理 _Log”,设置属性与数据文件一致。将这两个文件保存到D 盘自己建立的文件夹中。3、将“D:SQL 测试 042”文件夹中的 xjgl.mdb(ACCESS 数据库文件)中的成绩表、课程表、学生表这三表导入到数据库
2、中,并把各个表中相应的字段更改如下:学生表成绩表课程表字段名类型主键字段名类型主键字段名类型主键学号int 是学号int 是课程号char(4)是姓名varchar(8)课程号char(4)是学分tinyint 性别nchar(1)成绩numeric(4,1)教师编号char(5)(红色的必须设置正确,否则不能正常进行外键约束)4、用命令方式在“学籍管理”数据库中建立一个表,表结构如下:表名:教师表字段名类型长度主键教师编号char 5 是教师姓名varchar 8 工作日期smalldatetime 4 所在部门varchar 10 createtable教师表(教师编号 char(5)pr
3、imarykey,教师姓名 varchar(8),工作日期 smalldatetime,所在部门 varchar(10)并在建立表之后(同一个 SQL 文件)用命令方式插入如下这条记录:教师编号教师姓名工作日期所在部门10001 李向崇1992-5-6 数学系将以上建立表及插入记录的文件以“4-1.sql”为名保存到自己建立的文件夹中。(如果不会用命令方式建立也要用管理器建立,但本题不得分,因为后面用到本表)insertinto教师表 values(10001,李向崇 ,1992-5-6,数学系 )insertinto教师表 values(10002,张小倩 ,1998-12-6,英语系 )i
4、nsertinto教师表 values(10003,何雄天 ,2001-6-8,计算机系 )insertinto教师表 values(10004,张亮嘉 ,1993-7-21,计算机系 )名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 4 页 -5、在管理器中向“教师表”添加如下3 条记录:教师编号教师姓名工作日期所在部门10002 张小倩1998-12-6 英语系10003 何雄天2001-6-8 计算机系10004 张亮嘉1993-7-21 计算机系6、用 SQL 语句在“学生表”中查找姓“张”的学生记录,如果存在则用select语句显示这些学生的记录,否则用print 显示
5、“查无此姓氏的学生,请重新查询”。要求:a 先定义一个变量保存姓氏。b 必须要用到 if 语句。将本 SQL 语句以“6-1.sql”为名保存到自己建立的文件夹中。7、用 SQL 语句完成如下操作:(1)查询“学生表”中的所有记录,显示学号、姓名、性别、年龄和高考分数字段,结果按照年龄的降序排列。selectyear(getdate()-year(出生日期)年龄 from dbo.学生表orderby年龄 desc selectdatediff(yy,出生日期,getdate()年龄 from dbo.学生表orderby年龄 desc(2)查询“高等数学”学生的成绩,结果包括学号、姓名、课程
6、名和成绩字段,要求采用内连接方式连接表。(3)从“成绩表”中统计每个学生的所有成绩的总分和平均分,结果包括学号、平均分和总分字段,结果按照平均分降序排列。(4)给籍贯为“广西南宁”的每个学生的所有课程的成绩加上5 分。要求在加分之前显示出籍贯为“广西南宁”的记录,显示的字段包括学号、课程号和成绩。加分之后也要显示出同样条件的记录。update成绩表 set成绩=成绩+5 where学号 in(select学号 from学生表 where籍贯=广西南宁 )(5)删除成绩表中“成绩”大于等于90分的记录。8、创建及修改索引。(2)给“学生表”中的姓名和性别两列结合起来创建一个普通索引,索引名称为:
7、IX_姓名_性别。createindex IX_姓名 _性别on学生表(姓名,性别)9、在“学籍管理”数据库建立一个名为“女生成绩”的视图,显示学号、姓名、课程号、成绩这四个字段,要求性别为“女”,排序方式为:按照学号的升序排列,如果学号相同的再按照课程号的降序排列。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 4 页 -createview女生成绩as selecttop 100 percent学生表.学号,姓名,课程号,成绩 from学生表 join成绩表 on学生表.学号=成绩表.学号where性别=女 orderby学生表.学号 asc,课程号 desc 10、在“学籍
8、管理”数据库创建如下2 个存储过程。(1)名称:男生信息。显示“学生表”的全部字段,要求性别为“男”且按照“高考分数”的降序排列。createproc男生信息as select*from学生表 where性别=男orderby高考分数 desc go exec男生信息(2)名称:各门课成绩。要求有一个输入参数,用于接受输入的课程名称,查找输入参数中对应课程名称的记录,显示学号、课程名、成绩这3 个字段。然后在执行本存储过程,参数为“高等数学”,以 10-2.sql为名保存到自己建立的文件夹中。createproc各门课成绩theName varchar(20)as select学号,课程名,成
9、绩 from课程表 join成绩表 on课程表.课程号=成绩表.课程号 where课程名=theName go exec各门课成绩 高等数学 11、给“学生表”建立一个CHECK 约束,名称为“CK_出生日期”,要求“出生日期”字段必须是 1978 年1989年之间的值。altertable学生表 addconstraint CK_ 出生日期 check(year(出生日期)between1978-01-01:and 1989)altertable学生表 addconstraint CK_ 出生日期check(出生日期=1978-01-01and出生日期=1989-12-31)12、给“课程表
10、”创建一个UNIQUE 约束,名称为“IX_课程名”,约束的字段为“课程名”。altertable课程表 addconstraint IX_课程名 unique(课程名)13、给“教师表”和“课程表”建立一个外键约束,主键表为“教师表”,外键表为“课程表”,通过“教师编号”连接,要求外键表中有与主键表相同的教师编号时,主键表的记录不能级联修改,但可以级联删除。关系图以“教师课程”保存。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 4 页 -14、在“学籍管理”数据库创建如下2 个触发器:(1)建立一个名为“修改学号”的update触发器,保存在“学生表”中。要求:如果“学生表”
11、中的学号被修改时,那么“成绩表”中的学号也跟着修改。createtrigger修改学号on学生表forupdate as declare beforeId varchar(4)declare afterId varchar(4)select beforeId=学号 from deleted select afterId=学号 from inserted update成绩表 set学号=afterId where学号=beforeId go update学生表 set学号=1020where姓名=覃琴(2)建立一个名为“删除学生”的delete触发器,保存在“学生表”中。要求:如果“学生表”中某
12、个学生的记录被删除了,那么在“成绩表”中也删除这个学生的所有记录。createtrigger删除学生on学生表fordelete as declare theId varchar(4)select theId=学号 from deleted deletefrom成绩表 where学号=theId go deletefrom学生表 where姓名=覃琴 15、上交结果:(1)关闭查询分析器。在管理器中将“学籍管理”数据库分离出来。(2)将 D 盘中自己“学号姓名”命名的文件夹压缩为一个RAR 文件。(3)最后在 IE 地址栏中输入:ftp:/192.168.18.125之后回车,将刚才压缩后的文件复制到打开的窗口中。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 4 页 -