sqlserver上机试题

更新时间:2024-06-09 11:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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 课程号 1 2 3 sc表(选课表)(10分) 学号 1 2 2 3 课程号 1 1 2 3 成绩 88 90 70 79 姓名 吴好 崔平 钱筱 性别 男 女 女 课程名 SQL Server 数据结构 专业英语 年龄 18 21 19 学分 4 3 2 系别 计算机系 经管系 电子系 course表(课程表) (10分) 二、写出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 Ssex Sage Sdept 课程course

Char(5) Char(10) Char(2) Tinyint varchar(30) Not null Not null Not null Null Null 学号 姓名 性别 年龄 所在系 Cno Cname Cpno Ccredit 学生选课sc

sno cno Char(1) Char(20) Char(1) tinyint Char(5) Char(1) 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、检索不在“联华公司”工作的职工工号和姓名。

4、建立一个有关女职工的视图EMP_FEMALE,属性包括(E#, ENAME, C#, CNAME, SALARY); 5、为“联华公司”的职工加薪5%。

上机题10:

一:创建职工---社团数据库,并创建三个数据库表。

1、创建职工---社团数据库。(10分)

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

职工(职工号,姓名,年龄,性别); 社会团体(编号,名称,负责人,活动地点); 参加(职工号,编号,参加日期); 其中:

1)职工表的主码为职工号。

2)社会团体表的主码为编号;外码为负责人,被参照表为职工表,对应属性为职工号。

3)参加表的职工号和编号为主码;职工号为外码,其被参照表为职工表,对应属性为职工号;编号为外码,其被参照表为社会团体表,对应属性为编号。 二、写出SQL语句:

1、建立视图:社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别); 2、建立视图:参加人情况(职工号,姓名,社团编号,社团名称,参加日期) 3、查找参加唱歌队或篮球队的职工号和姓名。 4、求参加人数最多的社会团体的名称和参加人数。

5、把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户李平,并允许他将此权力授予其他用户。

上机题11:

一:创建工程—零件数据库,并创建四个数据库表。

1、创建工程—零件数据库。(10分)

2、在数据库中创建如下四个表(要求设置表之间的关系)(40分) 供应商(供应商代码,姓名,所在城市,联系电话);

工程(工程代码,工程名,负责人,预算); 零件(零件代码,零件名,规格,产地,颜色); 供应零件(供应商代码,工程代码,零件代码,数量) 二、用SQL语句完成下列操作:(各5分,共10分)

1、找出天津市供应商的姓名和电话。

2、查找预算在50000~100000元之间的工程的信息,并将结果按预算降序排列。 3、找出使用供应商S1所供零件的工程号码。 4、找出工程项目J2使用的各种零件名称及其数量。 5、找出上海厂商供应的所有零件号码。 6、找出使用上海产的零件的工程名称。 7、找出没有使用天津产的零件的工程号码。 8、把全部红色零件的颜色改成蓝色。

9、将由供应商S5供给工程代码为J4的零件P6改为由S3供应,并作其他必要的修改。 10、从供应商关系中删除S2的记录,并从供应零件关系中删除相应的记录。

上机题12:

一、建立学生选课数据库,库中包括学生、课程和选课3个表,其表结构为: 学生(学号,姓名,性别,年龄,所在系); 课程(课程号,课程名,先行课); 选课(学号,课程号,成绩)。 用Transact—SQL完成下列操作。 1、建立学生选课数据库。(10分) 2、建立学生、课程和选课表。(10分) 3、建立各表以主码为索引项的索引。(10分)

4、建立学生性别只能以“男”或“女”的规则,性别为“男”的缺省,并将它们绑定的学生表上。(10分)

5、建立在对选课表输入或更改数据时,必须服从参照完整性约束的INSERT和UPDATE触发器。(10分) 6、建立在删除学生记录时,同时也要把相应的选课记录删除的触发器。(10分) 7、查询各系及学生数,最后求出共有多少系和多少学生。(10分) 8、将学生表和选课表进行内连接、左连接和右外连接。(10分)

9、列出学生学号、姓名及学习情况。学习情况用好、较好、一般或较差表示。当平均成绩大于85分时,学习情况为“好”:当平均成绩在70-85分之间,学习情况为“较好”:当平均成绩在60-70分之间,学习情况为“一般”:当平均成绩在60分以下,学习情况为“较差”. (10分)

10、创建一存储过程,通过输入参数课程名称(如“SQL\),筛选出该课程的平均成绩、最高分、最低分,对不存在课程的输入值,必须作一检测,打印信息“不存在此课程”。(10分)

上机题13:

一、建立数据库及表如下:(各10分,共40分)

数据库:LabBook 表:bookInfo

id(int,标识,PK) bookTitle(varChar) bookAuthor(varChar) bookDemo(text) 表:bookInfoB

id(int,标识,PK) bookCostPrice(float) bookSellPrice(float) bookInDate(date)

表:borrowInfo

id(int,标识,PK) bookId(int) outDate(date) inDate(date)

二、建立具有不同权限的多种用户角色

1、图书管理员角色bookAdmin:对3个表具有完全控制权限(20分) 2、借书服务员角色bookOP:(20分) bookInfo表全部列只有查询权限

bookInfoB表除bookCostPrice列以外全部列只有查询权限,bookCostPrice列无任何权限 borrowInfo表所有列具有除删除以外的所有权限 3、读者角色bookReader:(20分) bookInfo表全部列只有查询权限

bookInfoB表除bookCostPrice列以外全部列只有查询权限,bookCostPrice列无任何权限 borrowInfo表所有列只具有查询权限

上机题14:

一:创建图书管理数据库,并创建三个数据库表。

1、创建数据库。(10分)

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

图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(16),单价N(7,2)) 读者(借书证号C(4),单位C(10),姓名C(6),性别C(2),职称C(6),地址C(16)) 借阅(借书证号C(4),总编号C(6),借书日期D()) 二、完成以下操作:

1、查询所有书名包括“数据库”关键字的图书记录(10分) 2、统计借书证号为“112”的读者的借书次数(10分)

3、对数据库进行完全备份操作,生成备份文件为LabBook.Bak

4、导出数据库为EXCEL文件LabBook.xls,并将EXCEL中的bookInfo表自动套用格式(10分) 5、导出数据库为ACCESS文件LabBook.mdb(10分)

上机题15:

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

1、创建数据库。(10分)

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

图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(16),单价N(7,2)) 读者(借书证号C(4),单位C(10),姓名C(6),性别C(2),职称C(6),地址C(16)) 借阅(借书证号C(4),总编号C(6),借书日期D()) 二、完成以下操作:

1、建立登录帐号scxh、xh01、xh02(10分) 2、scxh帐号为数据库拥有者(10分)

3、xh01、xh02对三个表均有select、update、insert、delete权限(10分)

4、分离LabBook数据库,并将数据库文件移动至F:\\ (10分) 5、将F:\\LabBook数据库附加到SQL SERVER(10分)

本文来源:https://www.bwwdw.com/article/a2o6.html

Top