sqlserver上机试题 下载本文

SQLSERVER2000上机试题

上机题1:

一:创建一个数据库,并创建两个数据库表。(50分)

1、创建一个名为scxh_db的数据库。(10分)

2、在scxh_db数据库中创建scxh_reg(id,username,password,tel)和

scxh_news(newsid,title,content,add_date,hits)两个数据库表,数据类型自定。(30分)

3、导出scxh_db数据库,生成sqlscript脚本并存放到考生文件夹中(通过查询分析器设计的直接保存代码到考生文件夹中)。(10分) 二:存储过程设计。(50分)

1:在scxh_db中编写一个名为scxh_pro的存储过程,要求实现查询scxh_db中scxh_reg表的所有记录。(30分)

2:在scxh_db中编写一个名为class_pro的类属存储过程(即系统存储过程),内容自定。(10分)

3:备份scxh_db数据库,并把备份文件拷贝到考生文件夹。(10分)。

上机题2:

一:创建一个数据库,并创建三个数据库表。

1、以自己的姓名(拼音)创建一个数据库。(10分) 2、在数据库中创建如下三个表,并输入内容 student表(学生表)(10分) 学号 1 2 3 姓名 吴好 崔平 钱筱 性别 男 女 女 年龄 18 21 19 系别 计算机系 经管系 电子系 course表(课程表) (10分) 课程号 1 2 3 sc表(选课表)(10分) 学号 1 2 2 课程号 1 1 2 成绩 88 90 70 课程名 SQL Server 数据结构 专业英语 学分 4 3 2 3 3 79 二、写出SQL语句 1、把course表中课程号为3的课程的学分修改为3。(10分)

2、在student表中查询年龄大于18的学生的所有信息,并按学号降序排列。(10分)

3、在以上三个表中查询选的课程的“学分”为3,并且成绩大于80的学生的学号、姓名和性别。(10分)

4、为student表创建一个名称为my_trig的触发器,当用户成功删除该表中的一条或多条记录时,触发器自动删除SC表中与之有关的记录。

(注:在创建触发器之前要判断是否有同名的触发器存在,若存在则删除之。)(30分) IF EXISTS (SELECT name FROM sysobjects

WHERE name = 'my_trig' AND type = 'TR') DROP TRIGGER my_trig create trigger my_trig on student for delete as

delete sc

from sc,deleted

where sc.id=deleted.id

上机题3:

一:创建一个数据库,并创建三个数据库表。

1、以自己的姓名(拼音)创建一个数据库。(10分)

2、在数据库中创建如下三个表(要求设置表之间的关系)(40分) 学生基本信息表(学号、姓名、性别、专业、出生年月等) 选课表(学号、课程号、分数)

课程表(课程号、课程名、所属专业、学分) 二、写出 SQL 语句。

1、查询所有选 SQL 课程的学生学号,姓名和专业。 (10分) 2、删除所有选择数学的同学的选课记录。 (10分) 3、查询有哪些课程没有被任何同学报选。 (10分)

4、创建存储过程,能够查询出选修任何课程的学生信息及相应的分数。(10分) 5、创建存储过程,以表格的形式返回本课程的平均分数。(10分)

上机题4:

一:创建一个数据库,并创建两个数据库表。

1、以自己的姓名(拼音)创建一个数据库。(10分)

2、在数据库中创建如下两个表(要求设置表之间的关系)(40分)

员工表:EMP(ENO,ENAME,SALARY,DNO),其中各属性的含义依次为职工号、姓名、工资和所在部门号

部门表:DEPT(DNO,DNAME,MANAGER),其中各属性含义依次为部门号、部门名称、部门经理的职工号。

二:写出SQL语句:

1、列出各部门中工资不低于600元的职工的平均工资。(10分) 2、查询001号职工所在部门名称。(10分)

3、将“销售部”的那些工资数额低于600的职工的工资上调10%。(10分)

4、在EMP表中增加“EID(员工身份证)”字段,数据类型varchar(18),不可空,并将其设定为UNIQUE约束。(10分)

5、创建一存储过程,通过输入参数员工姓名(如“张三\),筛选出该员工的基本信息,对不存在此员工姓名的输入值,必须作一检测,打印信息“不存在此员工”。(10分)

上机题5:

一:创建一个数据库,并创建四个数据库表。

1、以自己的姓名(拼音)创建一个数据库。(10分)

2、在数据库中创建如下四个表(要求设置表之间的关系)(40分)

职工情况表:zgqk(zgbh,zgxm,bmbh),其中,zgbh:职工编号;zgxm:职工姓名;bmbh:部门

编号。

科研情况表:kyqk(zgbh,kymc,kylb),其中,zgbh:职工编号;kymc:科研名称;kylb:科研

类别。

部门表:bm(bmbh,bmmc),其中,bmbh:部门编号;bmmc:部门名称。

工资表:gz(zgbh,jcgz,zwgz,zjgz,fz,sdf),其中,zgbh:职工编号;jcgz:基础工资;zwgz:

职务工资;zjgz:职绩工资,fz:房租;sdf:水电费。

二、用SQL实现如下操作:(各10分,共50分)

1、在工资表中插入两个字段:kk:numeric(7,2)和sfgz:numeric(7,2),其中,kk:扣款;sfgz:实发工资。并为kk和sfgz这两个字段赋值,kk=sdf+fz,sfgz=jcgz+zwgz+zjgz-kk。

2、在职工情况表中删除部门名称为“计算机系”的所有职工。 3、统计每个部门的职工人数。

4、查询跟张三在同一部门的职工编号、职工姓名(用exists实现)。 5、查询科研成果在3项以及3项以上的职工的编号、姓名。

上机题6:

一:创建一个数据库,并创建三个数据库表。

1、以自己的姓名(拼音)创建一个数据库。(10分)

2、在数据库中创建如下三个表(要求设置表之间的关系)(40分) 图书:B(图书号B#,书名BN,作者WN,单价BP,库存量BC);

读者:R(读者号R#,姓名RN,工作单位RW,地址RA);

借阅:BO(图书号B#,读者号R#,借期DB,还期DR,备注MO),其中还期为NULL表示该书未还。

二、用SQL实现如下操作:(各10分,共50分)

1、检索读者号为“R016”的读者姓名和工作单位; 2、检索借阅图书号为“B5”的读者姓名; 3、检索读者“李林”所借图书中未还的书名; 4、将读者“李林”所借图书的信息从借阅表中删除;

5、建立未还图书的读者姓名和单位的视图(要求判断数据库中是否存在此视图)。

上机题7:

一:创建一个数据库,并创建四个数据库表。

1、以自己的姓名(拼音)创建一个数据库。(10分)

2、在数据库中创建如下四个表(要求设置表之间的关系)(40分) 职工情况表:zgqk(zgbh,zgxm,bmbh)

其中,zgbh:职工编号;zgxm:职工姓名;bmbh:部门编号,主码为:zgbh。 科研情况表:kyqk(kybh,zgbh,kymc,kylb)

其中,kybh:科研编号;zgbh:职工编号;kymc:科研名称;kylb:科研类别,主码为:kybh。 部门表:bm(bmbh,bmmc)

其中,bmbh:部门编号;bmmc:部门名称,主码为:部门编号。 工资表:gz(zgbh,jcgz,zwgz,zjgz,fz,sdf,yfgz)

其中,zgbh:职工编号;jcgz:基础工资;zwgz:职务工资;zjgz:职绩工资,fz:房租;sdf:水电费,yfgz:应发工资,主码为:zgbh。 二、用SQL实现如下操作:(各10分,共50分)

1、查询计算机系的所有职工的职工编号、姓名、部门编号。 2、统计男女职工的人数。

3、工资表中的yfgz字段为空,现求出yfgz列的值,其中yfgz=sfgz=jcgz+zwgz+zjgz-fz-sdf。

4、在上一题的基础上,查询每个职工的工资情况:职工编号、应发工资,并以应发工资的降序排列。

5、查询部门人数在50人以上的部门编号。

上机题8:

一:创建一个数据库,并创建三个数据库表。

1、以自己的姓名(拼音)创建一个数据库。(10分)

2、在数据库中创建如下三个表(要求设置表之间的关系)(40分) 学生student

Sno Sname Char(5) Char(10) Not null Not null 学号 姓名 Ssex Sage Sdept 课程course

Cno Cname Cpno Ccredit 学生选课sc

sno cno Char(2) Tinyint varchar(30) Char(1) Char(20) Char(1) tinyint Char(5) Char(1) Not null Null Null Not null Not null Null Not null Not null Not null 性别 年龄 所在系 课程号 课程名称 先行课 学分 学号 课程号 成绩 Grade Decimal(4,1) Null 二、写出SQL语句(每题5分,各50分) 2、将修改学生表的权限赋予用户U1 3、求已取得了50学分以上的学生姓名 4、查询没有选择任何课程的学生姓名 5、删除“CS”系的所有学生及其选课记录 6、给出每门课程的先行课的课程名称

7、插入学生记录:(\李勇\,\男\计算机系\) 8、将课程\的学分改为3

9、求有三门以上课程成绩在90分以上的学生 10、查询名字中第2个字为\成\的学生信息

1、建立由学生姓名、课程名称、学生成绩三个字段组成的视图

上机题9:

一:创建一个数据库,并创建三个数据库表。

1、以自己的姓名(拼音)创建一个数据库。(10分)

2、在数据库中创建如下三个表(要求设置表之间的关系)(40分)

职工关系:EMP(E#, ENAME, AGE, SEX, ECITY),其属性分别表示职工工号、姓名、年龄、性别和居住城市。

工作关系:WORKS(E#, C#, SALARY),其属性分别表示职工工号、工作的公司编号和工资。 公司关系:COMP(C#, CNAME, CITY, MGR_E#),其属性分别表示公司编号、公司名称、公司所在城市和公司经理的工号。

二、写出SQL语句:(各10分,共50分)

1、检索年龄超过50岁的女职工的工号和姓名;

2、检索居住城市和公司所在城市相同的职工工号和姓名; 3、检索不在“联华公司”工作的职工工号和姓名。