1.现有如下关系:
学生(学号,姓名,性别,专业,出生日期)
教师(教师号,姓名,所在部门,职称)
授课(教师号,学号,课程号,课程名,教材,学分,成绩)
用关系代数表达式实现下列1—3小题:
(1 )查找学习“数据库原理”课程且成绩不及格的学生学号和任课教师号;
(2 )查找学习“英语”课程的“计算机应用”专业学生的学号、姓名和成绩;
(3 )查找教师“李洪”所教过的学生中成绩为90 分以上的学生学号、姓名和专业;用SQL语言实现下列4—8小题:
(4 )查找学习“英语”课程的“计算机应用”专业学生的学号、姓名和成绩;
(5 )查找教师“李洪”所教过的学生中成绩为90 分以上的学生学号、姓名和专业;(6 )删除学生表中学号为“9903016 ”的记录;
(7 )将编号为“60016 ”的教师所在的部门改为“计算机系”;
(8 )建立“计算机应用”专业成绩的学生的视图,包含学生的学号、姓名、课程号、成绩。
2.现有如下关系:
职工(职工号,姓名,性别,职务,家庭地址,部门编号)
部门(部门编号,部门名称,地址,电话)
保健(保健卡编号,职工号,检查身体日期,健康状况)
1. 试用关系代数、SQL语言分别写出下列查询:(3x6分)
1)查找所有女科长的姓名和家庭地址;
2)查找“财务科”的科长姓名和部门电话;
3)查找健康状况为“良好”的职工姓名和家庭地址。
2. 试用SQL语言写出下列查询: (3x4分)
1)统计各部门的人数;
2)删除职工关系表中职工号为“3016”的记录;
3)将职工号为“3061”的职工的健康状况改为“一般”。
3. 设有学生-课程关系数据库,其数据库关系模式为:
学生SC(学号Sno,姓名Sname,所在系Sdept,年龄Sage,性别Ssex)
课程Course(课程号Cno,课程名称Cname,先修课号Cpno,学分Ccredit)
学生选课SC(学号Sno,课程号Cno,成绩Grade)
1. 试用关系代数、ALPHA语言、SQL语言分别写出下列查询:(3x3x3分)
(1) 查询选修了3号或6号课程的学生的学号
(2) 查询至少选修了一门先行课为8号课程的学生学号与姓名
(3) 查询选修了全部课程的学生学号、姓名和年龄
2. 试用SQL语言写出下列查询: (3x3分)
(1) 查询没有选修2号课程的学生学号与姓名
(2) 查询选修了3门以上课程并且成绩均及格的学生学号与其平均成绩
(3) 将计算机科学系(CS)全体学生的所有成绩置为零
4. 设有学生-课程关系数据库,其数据库关系模式为:
学生S(学号S#,姓名SN,所在系SD,年龄SA)
课程C(课程号C#,课程名称CN,先修课号PC#)
学生选课SC(学号S#,课程号C#,成绩G)
1. 试用关系代数、SQL语言分别写出下列查询:(6x3分)
(1) 求学生'95001'(为学号)所选的成绩为60以上的课程号
(2) 求选读了“数据库概论”,并成绩为80或90的学生学号和姓名
(3) 求选修了全部课程的学生学号、姓名及其所在系名
2. 试用SQL语言写出下列查询:(3x4分)
(1) 找出没有学生选修的课程号及课程名称
(2) 列出选课数超过3门的学生学号、其所修课程数及平均成绩
(3) 删除“数据结构”课程及所有对它的选课情况
5.现有关系数据库如下:
数据库名:学生成绩数据库
学生信息表(学号 char(6),姓名,性别,民族,身份证号)
课程信息表(课号 char(6),名称)
成绩信息表(ID,学号,课号,分数)
用SQL语言实现下列功能的sql语句代码。
1. 创建数据库,名为[学生成绩数据库],其它参数可自己指定(5分)。
2. 创建数据表[学生信息表]代码;(6分)
学生信息表(学号 char(6),姓名,性别,民族,身份证号)
要求使用:主键(学号)、默认(民族为汉族)、非空(民族,姓名)、唯一(身份证号)、检查(性别)
3. 创建数据表[课程信息表]代码;(4分)
课程信息表(课号 char(6),名称)
要求使用:主键(课号)、非空(名称)
4. 创建数据表[成绩信息表];(5分)
成绩信息表(ID,学号,课号,分数)
要求使用:外键(学号,课号)、检查(分数),自动编号(ID)
5. 将下列课程信息添加到课程信息表,然后完成更新和删除操作(10分)
课号名称
100101 西班牙语
100102 大学英语
修改课号为100102的课程名称:专业英语
删除课号为100101的课程信息
6. 从学生信息表中查询姓刘的女同学的姓名、性别、民族情况,并按姓名排序。(5分)
7. 查询有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。(5
分)
8. 创建视图[成绩信息表视图]的代码;(5分)
成绩信息表视图(学号,姓名,课号,课程名称,分数)
9. 创建带参数的存储过程[某门课程高低均分],并执行该过程(8分)
存储过程功能:查询某门课程的最高分、最低分、平均分;
执行该过程,查询所有学了’专业英语’这门学生的最高分、最低分、平均分;
10 设置一SQL Server身份验证的用户账户:登录名为“U院长”,密码为“888”,在学
生成绩数据库中的用户名为“U读者”,权限有两个,一个权限是固定数据库角色—数据库数据读取者:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程;另一个权限是可以创建视图。请写出账户、权限设置的T_SQL脚本。(12分)
6. 现有关系数据库如下:
数据库名:我班同学数据库
同学表(学号,姓名,性别,年龄,民族,身份证号,宿舍号)
宿舍表(宿舍号,宿舍电话)
用SQL语言实现下列功能的sql语句代码:
1.创建数据库,名为[我班同学数据库],其它参数可自己指定 (5分)。
2. 创建数据表[同学表]代码(6分);
同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)
要求使用:主键(学号)、外键(宿舍号)、默认(民族为汉)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性别:男,女)
3. 创建数据表[宿舍表] (4分);
宿舍表(宿舍号 char(6),宿舍电话)
要求使用:主键(宿舍号)、宿舍电话:以880开头的8位电话号码
4.将下列宿舍信息添加到宿舍表,然后执行修改和删除操作。(12分)
宿舍号宿舍电话
101 88041157
102 88041777
修改宿舍号为101的宿舍电话:88041158
删除宿舍号为102的宿舍信息
5.创建视图[同学表视图]代码(8分);
同学表视图(学号, 姓名, 性别, 年龄, 民族, 身份证号, 宿舍号, 宿舍电话)
6.从同学表视图中查询姓张的女同学的姓名、性别、宿舍电话,并按姓名排序显示。(5分)
7.从同学表中查询男女同学两组的最大年龄、最小年龄、平均年龄。(5分)
8.创建带参数的存储过程[某宿舍同学],输入任意一个宿舍号,即可查到该宿舍的学生姓名, 性别, 宿舍电话。(5分)
执行此过程,查询'101'宿舍情况 (3分)
9.设置一SQL Server身份验证的用户账户:登录名为“U班主任”,密码为“888”,数据库用户名为“U读者”,该用户权限有两个,一个权限是固定数据库角色---数据库数据读取者:即可查询查询本数据库中所有表、视图、等数据,执行所有的存储过程;另一个权限是可以创建视图。请写出账户、权限设置的T_SQL脚本。(12分)
7. 现有关系数据库如下:
数据库名:教师数据库
教师表(编号 char(6),姓名,性别,民族,职称,身份证号)
课程表(课号 char(6),名称)
任课表(ID,教师编号,课号,课时数)
用SQL语言实现下列功能的sql语句代码:
1.创建数据库,名为[教师数据库],其它参数可自己指定 (3分)。
2.创建上述三表的代码(12分);
要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、默认(民族:汉族)、非空(姓名)、唯一(身份证号)、检查(性别、课时数在0~200之间), 自动编号(ID)
3.写出插入、修改与删除记录操作的代码(10分):
(1)向课程表插入:
课号课程名称
100001 SQL Server数据库
100003 VC程序设计
(2)修改课号为100003的课程名称:Visual C++程序设计
(3)删除课号为100003的课程信息
4. 写出创建视图的代码:[任课表视图](教师编号,姓名,课号,课程名称,课时数);
(4分)
5. 写出创建名为[某门课任课教师]的内嵌表值函数的代码,完成输入一门课程名,输出
该课程的课时数,代课教师的教师名;(5分)
调用函数检索:所有代'SQL Server数据库'这门课程的老师姓名;(3分)。
6. 写出创建存储过程以及执行代码:计算某教师代课总课时,并将值返回 (5分)
执行:计算“郭老师”的总课时。(3分)
7.建一个规则[zhicheng],并将其绑定到教师表的职称列上,规定取值为('教授', '副教授', '讲师', '助教')之一。(8分)
8. 设置一SQL Server身份验证的用户账户:登录名为“U院长”,密码为“888”,在学
生成绩数据库中的用户名为“U读者”,权限有两个,一个权限是固定数据库角色—数据库数据读取者:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程;另一个权限是可以创建视图。请写出账户、权限设置的T_SQL脚本。(12分)
8.现有如下关系:
学生(学号,姓名,性别,专业,出生日期)
教师(教师编号,姓名,所在部门,职称)
授课(教师编号,学号,课程编号,成绩)
试用关系代数、SQL语言分别写出下列查询:(3x6分)
(1 )查找学习“C1”课程且成绩不及格的学生学号;
(2 )查找学习“C2”课程的学生的学号、姓名和成绩;
(3 )查找教师“李洪”所教过的学生中成绩为90 分以上(包括90 分)的学生学号;
2. 试用SQL语言写出下列查询: (3x4分)
(1 )以学号统计每个学生都平均成绩;
(2 )删除学生表中学号为“0503016 ”的记录;
(3 )将编号为“60016 ”的教师所在的部门改为“计算机系”。
9.现有关系数据库如下:
数据库名:工程管理
职工表(职工编号 char(6),姓名,性别,民族,工资,身份证号)
工程表(工程号 char(6),名称)
参加表(ID,职工编号,工程号,天数)
用SQL语言实现下列功能的sql语句代码:
1.创建数据库,名为[工程管理],其它参数可自己指定 (5分)。
2.创建上述三表的代码(12分);
要求使用以下约束:主键(职工表.职工编号,工程表.工程号)、外键(参加表.职工编号,参加表.工程号)、默认(民族:汉族)、非空(姓名)、唯一(身份证号)、检查(性别、天数在0~200之间), 自动编号(ID)
3.插入、修改与删除记录操作(12分):
(1)向工程表插入:
工程号工程名称
100001 修路A段
100003 铺路B段
(2)修改工程号为100003的工程名称为:基座打桩
(3)删除工程号为100003的工程信息
4. 创建名为[参加表视图]的视图(姓名,工程名称,天数);(8分)
5. 创建名为[某工程参加职工]的内嵌表值函数,完成输入一项工程号,返回表中含有参
加该工程的职工的职工姓名、性别、工资、身份证号和天数;(5分)
调用函数检索:所有参加'100001'这项工程的职工姓名;(3分)。
6. 创建名为[职工参加天数]的存储过程:在[参加表视图]中查找某给定姓名的职工参加
所有工程的总天数。 (5分)
执行存储过程:计算职工“张明”的总天数。(3分)
7.创建一个名为[GZ_RULE]的规则,并将其绑定到职工表的工资列上,规定取值为1000元到3000元之间。(6分)
8. 创建一个名为[del_tr]的触发器,如果某人参加工程的天数不为0,就不能删除该职工
的信息,即回滚撤销删除。(6分)
现有关系数据库如下:
数据库名:销售管理
商品表(商品号 char(6),品名,进价,售价,库存数量)
销售表(序号 int,商品号,销售数量,日期)
用SQL语言实现下列功能的sql语句代码:
1.创建数据库,名为[销售管理],其它参数可自己指定 (5分)。
2.创建数据表[商品表](6分);
要求使用:主键(商品号),品名(非空),检查约束“进价<售价”
创建数据表[销售表](6分);
要求使用:主键(序号)、外键(商品号)
3.将下列商品信息添加到商品表,然后执行修改和删除操作。(12分)
商品号品名进价售价库存
101 索尼DV 5000 6200 100
102 联想手机 1000 1300 200
修改商品号为101的售价为5800
删除商品号为102的商品信息
4.创建视图[销售表视图](8分);
销售表视图(序号, 品名,售价,数量,日期)
5.从销售表视图中查询含有“DV”的品名和日期。(8分)
6.从商品表中查询商品的最高售价、最低售价、平均售价。(8分)
7.创建带参数的存储过程[某商品情况],输入任意一个商品号,即可查到该商品的品名,进价,售价,库存数量。(5分)
执行此过程,查询'101'商品情况 (3分)
8.创建一个名为[i_tr]的触发器,如果销售一个商品,就将该商品的库存数量减去销售数量。(4分)
9.有一个[学生课程]数据库,数据库中包括三个表:
学生表(学号,姓名,性别,年龄,所在系)
课程表(课程号,课程名,先修课号,学分)
成绩表(学号,课程号,成绩)
用SQL语言编写实现下列功能的代码:
1、建立一个[学生表],要求设置学号属性为主键,规定年龄大于16。
2、查询年龄在20至23岁之间的学生的姓名、系别、和年龄。
3、查询各系的人数及平均年龄。
4、计算“数据库原理”课程的学生平均成绩。
5、将计算机科学系全体学生的成绩置零。
6、创建一个“经济系”全体学生的视图V_JJX。
7、创建一个自定义函数,可以求解任意数n的阶乘累加和,即计算S = 1!+2!+3!+……+ n!,并用n=10调用该函数。
8、建一个规则,并将其绑定到学生表的所在系列上,规定取值为('经济系','管理系','机电系', '信息系')之一。
9、创建一个触发器,要求当更新课程表的课程号时,能更新成绩表中相应的课程号。
10.现有关系数据库如下:数据库名:教师数据库
教师表(教师编号 char(6),姓名,性别,民族,职称,身份证号)
课程表(课号 char(6),课程名称)
任课表(ID,教师编号,课号,课时数)
用SQL语言写出下列功能的sql语句代码:
1.创建数据库,名为[教师数据库],其它参数可自己指定 (5分)。
2.创建上述三表的代码(15分);
要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、默认(民族:汉族)、非空(姓名)、唯一(身份证号)、检查(性别、课时数在0~200之间), 自动编号(ID)
3.写出插入、修改与删除记录操作的代码(15分):
(1)向课程表插入:
课号课程名称
100001 SQL Server数据库
100003 VC程序设计
(2)修改课号为100003的课程名称:Visual C++程序设计
(3)删除课号为100003的课程信息
4.写出创建视图的代码:任课视图(教师编号,姓名,课号,课程名称,课时数);(5分)
调用函数检索:所有代'SQL Server数据库'这门课程的老师姓名
6. 写出创建存储过程以及执行代码:计算某教师代课总课时,并将值返回 (5分)
执行:计算“郭老师”的总课时。
11.现有关系数据库如下:
员工(员工编号,姓名,性别,部门名称,职务)
项目(项目编号,项目名称,预算)
施工(员工编号,项目编号,工时)
用SQL语言实现下列各题:
1.创建数据库,名为[施工管理],其它参数可自己指定 (5分)。
2.创建数据表[员工]代码(10分);
要求使用:员工编号 (主键)、部门名称(非空)
3.查询每个员工的姓名,并按职称降序排列;(5分)
4.查询总工时在480小时以上(含480小时)的员工编号和总工时;(10分)
5.检索职称为“高级工程师”,同时至少参加了一预算在100万以上的项目的员工的姓名和部门名称;(10分)
6.定义一个工作量视图,包含的属性有员工编号、姓名、项目名称和工时。(5分)
7.对项目名称为“高教新区项目”的预算增加50万元;(5分)
8. 建一个默认d_1,值为100,并将其绑定到施工的工时列上。(5分)
9、创建一个自定义函数FN,计算S = 1+1/2+1/3+…… + 1/n,并用n=10调用该函数。(5分)
12.现有关系数据库如下:
数据库名:我班同学数据库
同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)
宿舍表(宿舍号 char(6),宿舍电话)
用SQL语言实现下列功能的sql语句代码:
1.创建数据库,名为[我班同学数据库],其它参数可自己指定 (5分)。
2.创建数据表[宿舍表]代码(4分);
宿舍表(宿舍号 char(6),宿舍电话)
要求使用:主键(宿舍号)、宿舍电话:以633开头的7位电话号码
3.创建数据表[同学表]代码(6分);
同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)
要求使用:主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性别)
4.将下列宿舍信息添加到宿舍表,然后执行修改和删除操作。(20分)
宿舍号宿舍电话
101 6331157
102 6331777
修改宿舍号为101的宿舍电话:6331158
删除宿舍号为102的宿舍信息
5.创建视图[同学表视图]代码(8分);
同学表视图(学号, 姓名, 性别, 年龄, 民族, 身份证号, 宿舍号, 宿舍电话)
6.从同学表视图中查询姓张的女同学的姓名、性别、宿舍电话。(5分)
7.从同学表中查询女同学的最大年龄、最小年龄、平均年龄。(5分)
8.创建带参数的存储过程[某宿舍同学],输入任意一个宿舍号,即可查到该宿舍的学生姓名, 性别, 宿舍电话。(7分)
执行此过程,查询'101'宿舍情况
15. 现有名为“教师任课管理”的关系数据库,含有如下数据表:
教师表(教师编号 char(3),姓名,性别,民族,职称,身份证号)
课程表(课号 char(6),课程名)
任课表(教师编号,课号,课时数)
请用T-SQL语言写出实现下列功能的代码:
1.创建数据库,名为[教师任课管理],其它参数可自己指定 (4分);
2.创建上述三表的代码 (12分) ;
要求使用的约束为:
主键(教师表.教师编号,课程表.课号)
外键(任课表.教师编号,任课表.课号)
默认(民族:汉族)
非空(姓名)
唯一(身份证号)
检查(性别、课时数在0~200之间)
3.写出向课程表插入以下数据的代码(6分):
课号课程名称
100001 SQL Server数据库
100003 VC程序设计
4. 写出修改数据代码:将课号为100003的课程名改为‘C++程序设计’(5分)
5. 写出删除数据代码:删除职称为空的教师信息(5分)
6. 查询语句:查询民族为‘回’、‘蒙’、‘藏’的男教师信息,并按民族升序显示。(5分)
7. 查询语句:分别统计男女教师中身份证号以‘42’开头的教师人数。(5分)
8. 查询语句:查询教授‘英语’的教师姓名、职称。(5分)
9. 创建视图:教师课程视图(姓名,职称,课程名,课时数)。(3分)
16. 现有名为“销售管理”的关系数据库,含有如下数据表:
商品表(商品号 char(6),品名,进价,售价,库存数量)
销售表(序号 int,商品号,销售数量,日期)
请用SQL语言写出实现下列功能的代码:
1.创建数据库,名为[销售管理],其它参数可自己指定 (4分)。
2.创建数据表[商品表](5分);
要求使用:主键(商品号),非空(品名),检查约束“进价<售价”
创建数据表[销售表](5分);
要求使用:主键(序号)、外键(商品号)
3.写出向商品表插入以下数据的代码(6分):
商品号品名进价售价库存
101 索尼DV 5000 6200 100
102 联想手机 1000 1300 200
4. 写出修改数据代码:修改商品号为’101’的售价为5800 (5分)
5. 写出删除数据代码:删除商品号为’102’的商品信息(5分)
6. 从商品表中查询商品的最高售价、最低售价、平均售价。(5分)
7. 查询销售量累计超过2000的商品名称。(5分)
8. 创建视图[销售表视图]:
销售表视图(序号, 品名,售价,数量,日期) (5分)
9. 从销售表视图中查询含有“DV”的品名和日期。 (5分)
17. 现有关系数据库如下:
数据库名:工程管理
职工表(职工编号 char(6),姓名,性别,民族,工资)
参加表(ID,职工编号,工程号,天数)
工程表(工程号 char(6),名称,预算)
用SQL语言实现下列功能的sql语句代码:
1. 创建数据库,名为[工程管理],指定文件存放在E:\下。其它参数可自己指定 (5分)。
2. 创建职工表的代码(5分);
要求使用以下约束:主键(职工表.职工编号)、非空(姓名) 、默认(民族:汉族)、检查(性别)
3.向工程表插入操作(5分):
工程号工程名称预算
100001 修路A段 200000
100003 铺路B段 500000
4. 修改工程号为100003的工程名称为:基座打桩(5分)
5. 查询未参加工程名称为“基座打桩”的人数。(5分)
6. 查询参加各项工程的总天数超过100以上的职工信息,并按姓名排序显示。(5分)
7. 将预算大于20000的工程信息创建视图名为[V_ys20];(5分)
8. 创建一个名为[GZ_RULE]的规则,并将其绑定到职工表的工资列上,规定取值为1000
元到3000元之间。(5分)
9.创建一个索引,为职工表中的性别和姓名创建降序的非聚集组合索引i_xx。 (5分) 10. 创建一个名为[del_tr]的触发器,如果某人参加工程的总天数不为0,就不能删除该
职工的信息,即回滚撤销删除。(10分)
18. 数据库名:我班同学数据库
同学表(学号,姓名,性别,年龄,民族,宿舍号)
宿舍表(宿舍号,宿舍电话,宿舍面积)
用SQL语言实现下列功能的sql语句代码:
1. 创建数据表[同学表]代码(5分);
要求使用:主键(学号)、外键(宿舍号)、默认(民族为汉)、检查(性别:男,女)
2. 将下列宿舍信息添加到宿舍表。(5分)
宿舍号宿舍电话宿舍面积
101 88041157 20
102 88041777 22
3. 删除宿舍号为103的宿舍信息(5分)
4. 修改同学表增加一个联系电话char(11)。(5分)
5. 查询男女生同学的最大年龄、最小年龄、平均年龄。(5分)
6. 查询没有住在宿舍面积大于20的同学人数。(5分)
7. 查询姓张的女同学的姓名、性别、宿舍电话,并按姓名排序显示。(5分)
8. 创建人数少于3人的宿舍信息视图名为:[低于3人宿舍视图] (5分);
低于3人宿舍视图(宿舍号, 宿舍电话,宿舍面积)
9. 创建一个名为d_mj的默认值20,将其绑定到宿舍表的宿舍面积上。
10. 创建带参数的存储过程[同宿舍同学],输入任意一个学生姓名,即可查到该宿舍所有的学生姓名, 宿舍电话。(5分)
执行此过程,查询'张山'宿舍情况 (5分)
19. 现有关系数据库如下:
数据库名:医院管理
医生表(医生编号,姓名,性别,职称,奖金)
病人表(病人编号,姓名,性别,年龄,身份证号)
医疗表(ID,病人编号,医生编号,入院日期,病历描述)
用SQL语言写出实现下列功能的语句代码:
1. 创建病人表:
要求使用:主键(病人表. 病人编号)、非空(姓名)、检查(性别,年龄>16)
2. 删除数据:删除职称为空且没有病人的医生信息
3. 修改数据表,为病人表增加一列“联系电话”;为“入院日期”设置默认值约束为系统
当前日期。
4. 查询:查询所有姓王的病人姓名、病历描述、以及病人所对应的医生编号。
5. 查询:检索管有平均年龄在50到60之间的病人的医生信息。
6. 创建一个索引,为病人表中的性别和姓名创建降序的非聚集组合索引i_xx。
7. 创建一个规则,并将其绑定到医生表的职称列上,规定取值为('主任医师','副主任医师','医师', '助理医师')之一。
8. 创建一个触发器,要求当医疗表更新数据(插入或修改)时,如果某医生的病人数超
过8人,则提示信息“超过8人,不能插入!”,并回滚操作。
9. 创建存储过程[增加奖金],完成以下增加奖金任务:输入一个入院日期,如果自该时
间起的病人数超过500人,则将病人数在10人以上的医生奖金增加200元,并将全体医生的总奖金额用输出参数@zjj带出过程。并用日期“2009-10-1”调用该过程。(10分)
20. 现有关系数据库如下:
数据库名:医院管理
医生表(医生编号,姓名,性别,出生日期,职称)
病人表(病人编号,姓名,性别,年龄,身份证号)
医疗表(ID,病人编号,医生编号,入院日期,病历描述)
用SQL语言写出实现下列功能的语句代码:
1. 创建数据库,库名“医院管理”,指定所有文件存放在e:\,其他参数均使用默认值。
2. 创建医生表:
要求使用:主键(医生表. 医生编号)、非空(姓名)、检查(性别)
3. 将下列医生信息插入到医生表
编号姓名性别出生日期职称
100001 王医生男 1963-5-18 副主任医师
100002 郭医生女 1950-7-26 副主任医师
4. 修改数据:将编号为100002的医生职称改为‘主任医师’
5. 查询:检索入院年份在2008到2009之间的病人信息。
6. 查询:查询所有姓王的病人姓名、病历描述、以及病人所对应的医生编号;
7. 创建视图:医生患者视图(医生姓名,病人姓名,入院日期,病历描述);
8. 创建一个默认,并将其绑定到医生表的职称列上,默认值为“医师”。
9. 创建自定义函数f_ysrs : 输出某医生的看病人数,并用“张明”调用。 (要求输入参数为:医生姓名,输出参数为:病人数)。
21. 现有关系数据库如下, 数据库名:工程管理
员工表(员工号,姓名,性别,年龄,小时工资额)
工程表(工程号,工程名,工程造价) 施工表(员工号, 工程号,工时数,备注) 请用T-SQL 语言写出实现下列功能的语句代码: 1. 创建数据库“工程管理”,要求指定所有文件存放在e:\data\中,其他参数均使用默认值。
2. 创建员工表,要求使用:主键(员工表. 员工号)、非空(姓名)、检查(性别,
年龄>16)
3. 为员工表增加一可容纳11位字符的“联系电话” 列。
4. 删除年龄>50且没有参与施工的员工信息。
5. 将工程名中含“立交桥”的工程造价提高10%。
6. 查询比 “刘明”的年龄高的员工姓名。
7. 查询那些参加的员工数大于30的工程名及工程造价。 8. 查询每个参加了工程的员工姓名及其总工时数。
9. 查询施工员工的平均年龄在30到40之间的工程信息。
10. 创建一个名为v_sg 的视图,包含员工姓名,工程名,工时数。 11.为员工表中的性别和姓名创建性别降序,姓名升序的非聚集组合索引i_xx 。 12. 创建一个自定义函数f_zgsh ,可以求解每个员工的总工时数,并用员工“张珊”去调
用该函数。
13. 创建一个触发器,要求在员工表插入新数据时,如果员工小时工资额超过平均工资额,则提示信息“小时工资额不匹配,不能插入!”,并回滚操作。
22. 现有关系数据库如下:
数据库名:销售管理
商品表(商品号 char(6),品名,进价,售价,库存数量) 销售表(序号 int ,商品号,销售数量,日期) 写出用SQL 语言实现下列功能的sql 语句代码:
1.创建数据库,名为[销售管理],其它参数可自己指定。
2.创建数据表[商品表],要求使用:主键(商品号),品名(非空),检查约束“进价<售价” 。
3.将下列商品信息添加到商品表。
商品号 品名 进价 售价 库存 101 索尼DV 5000 6200 100 102 联想手机 1000 1300 200 4. 执行修改操作。修改商品号为101的 售价为5800。 5. 执行删除操作。删除商品号为102的 商品信息。 6. 修改表,为商品表增加一个“产地”列。
7. 从商品表中查询商品的最高售价、最低售价、平均售价。
一、密封线内不准答题。
二、姓名
、准考证号不许涂改,否
三
、考生在答题前应先将姓名、学指框内。
年级、班级
注意
一、密
二、姓三、考年级、班级 注意
8. 查询品名“海信TV ”的总销售数量。
9. 查询有销售记录的商品的品名,进价,售价,库存数量,并按库存数量升序排序。 10. 从商品表中查询总销售数量大于1000的商品信息。
11. 创建视图[销售表视图] (序号, 品名,售价,数量,日期) 12. 从销售表视图中查询含有“DV ”的品名和日期。 13. 创建带参数的存储过程[某商品情况],输入任意一个商品号,即可查到该商品的品名,进价,售价,库存数量。
执行此过程,查询'101'商品情况
14. 创建一个名为[i_tr]的触发器,如果销售一个商品,就将该商品的库存数量减去销
售数量。
用T-SQL 命令完成下列题。
JXGL : Student
由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成, 记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno 。 Course
由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成, 记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno 。 SC
由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成, 记作:SC(Sno,Cno,Grade),其中主码为(SNO,CNO)。
建立student 表,其中sno 属性为主键,sname 、sage 与ssex 不为空,并且ssex 只能在
“男”与“女”中选一个,sage 的取值在15到45之间。(6分) 查询全体学生的学号与姓名。(4分) 查询年龄不在20~23岁之间的学生姓名、系别和年龄。(4分) 查询所有姓刘学生的姓名、学号和性别。(4分)
查询所有选修了课程的学生的学号、姓名、选修的课程名及成绩。(5分) 查询选修2号课程且成绩在90分以上的所有学生的学号、姓名。(5分) 求各个课程号及相应的选课人数。(5分) 建立信息系学生的视图(含有学号、姓名、年龄及性别),并要求进行修改和插入操作
时仍须保证该视图只有信息系的学生。通过视图查找年龄大于等于18岁的女学生。(6分)
查询同时选修了1、2号课程的学生学号。(5分) 按course 表的cname 列的升序建唯一索引。(4分)
为JXGL 数据库建立一个默认对象,使其对应于性别为女,并将其绑定到student 表的
ssex 列上。(4分)
为数据库JXGL 建立一个规则对象,并将其绑定到sc 表的grade 列上,规定grade 的取
值在1-100之间。(4分)
将学号95002的学生姓名改为“刘辰”。(4分)
一、密封线内不准答题。
二、姓名、准考证号不许涂改,否则试卷无效。
三、考生在答题前应先将姓名、学号、年级和班级填写在指定的方框内。
四、试卷印刷不清楚。可举手向监考教师询问。
在年级、班级
注意
24、现有图书管理数据库的三个关系模式:(12*5分)
图书(总编号,分类号,书名,作者,出版单位,单价)
读者(借书证号,单位,姓名,性别,职称,地址)
借阅(借书证号,总编号,借书日期)
用T-SQL语句完成如下题:
(1) 为借阅关系建立表结构。借书证号是长度为3的字符型,总编号是长度为6的字符型,
借书日期是日期型。要求定义主码、外码。(下划线标注的为关系的主码)
(2) 列出图书库中所有藏书的书名及出版单位。
(3) 查找书名以计算机打头的所有图书和作者。
(4) 查找价格介于10元和20元之间的图书种类,结果按出版单位和单价升序排序。
(5) 找出李某所借图书的所有图书的书名及借书日期。
(6) 查询1997年7月以后没有借书的读者借书证号、姓名及单位。
(7) 检索同时借阅了总编号为112266和449901两本书的借书证号。
(8) 求科学出版社图书的最高单价、最低单价、平均单价。
(9) 求出各个出版社图书的最高价格、最低价格和册数。
(10) 分别找出各单位当前借阅图书的读者人数。
(11) 找出当前至少借阅了2本图书的读者及所在单位。
(12) 从图书管理数据库中删除读者表。
25. 2、用T-SQL命令完成下列题。(60分)
有包括如下三个表的“教学管理”数据库JXGL:
学生表Student
由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno。
课程表Course
由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,
记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno。
学生选课SC
由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,
记作:SC(Sno,Cno,Grade)。
1)建立sc表,为每列选择合适的数据类型。其中(SNO,CNO)为主键,grade的取值在0到
100之间。Sno列参照student表的sno列,cno参照course表的cno列。(6分)
2)查询全体学生的学号与姓名。(4分)
3)查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄,查询结果
按年龄降序排列。(4分)
4)查询名字中第2个字为"阳"字的学生的姓名和学号。(4分)
5)查询与“钱横”在同一个系学习的学生信息。(5分)
6)查询选修了课程名为“数据库系统”的学生学号、姓名和所在系。(5分)
7)查询选修了3门以上课程的学生姓名。(5分)
8)建立信息系学生的视图(含有学号、姓名、年龄及性别),并要求进行修改和插入操作
时仍须保证该视图只有信息系的学生。通过视图查找年龄大于等于18岁的女学生。(6
分)
9)查询同时选修了1、2号课程的学生学号。(5分)
10)按studnet表的sname列的升序建唯一索引。(4分)
11)为JXGL数据库建立一个默认对象,使其对应于性别为女,并将其绑定到student表的
ssex列上。(4分)
12)为数据库JXGL建立一个规则对象,并将其绑定到student表的sno列上,规定sno的
取值为5位数字。(4分)
13)向sc表插入一条记录值(?95002?,?2?,90)(4分)
26.用T-SQL命令完成下列题。(60分)
有包括如下三个表的“教学管理”数据库JXGL:
学生表Student
由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno。
课程表Course
由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,
记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno。
学生选课SC
由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,
记作:SC(Sno,Cno,Grade)。
1)建立sc表,sno是长度为5的字符型,cno是长度为2的字符型,grade是小整型。其
中(SNO,CNO)为主键,grade的取值在0到100之间。Sno列参照student表的sno列,cno 参照course表的cno列。(6分)
2)查询全体学生的学号与姓名。(4分)
3)查询所有年龄在20岁以下的学生姓名及其年龄。查询结果按年龄的降序排列(4分)
4)查询所有姓刘学生的姓名、学号和性别。(4分)
5)查询计算机系(CS)选修了2门及以上课程的学生的学号。(5分)
6)查询选修了课程名为“计算机基础”且成绩在80分以上的学生学号、姓名和所在系。
(5分)
7)查询选修了3门以上课程的学生学号。(5分)
8)将学生的学号及他的平均成绩定义为一个视图S_G,通过视图查询平均成绩在90分以
上的学生学号和平均成绩。(6分)
9)查询选修2号课程且成绩在90分以上的所有学生的学号、姓名。(5分)
10)根据course表的cname列创建唯一聚集索引,并且降序排列。(4分)
11)①为JXGL数据库建立一个默认对象,使其对应于性别为女,并将其绑定到student表
的ssex列上。(09gb金融12,营销12适用)(4分)
②向course表中增加一个约束,以限制Ccredit的取值范围为1-4。(09gz国贸12,工管
123适用)(4分)
12)将信息系(IS)所有学生的年龄增加1岁。(4分)
13)删除jxgl数据库。(4分)
27.用T-SQL命令完成下列题。(60分)
有包括如下三个表的“教学管理”数据库JXGL:
学生表Student
由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno。
课程表Course
由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,
记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno。
学生选课SC
由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,
记作:SC(Sno,Cno,Grade)。
1)建立sc表,为每列选择合适的数据类型。其中(SNO,CNO)为主键,grade的取值在0到
100之间。Sno列参照student表的sno列,cno参照course表的cno列。(6分)
2)查询学号为98001的学生的详细情况。(4分)
3)查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。
(4分)
4)查询所有不姓刘学生的姓名、学号和性别。(4分)
5)查询计算机系(CS)选修了2门及以上课程的学生的学号。(5分)
6)查询选修了课程的学生的学号、姓名、选修的课程名及成绩。(5分)
7)查找平均成绩在80分以上的学生学号和平均成绩。(5分)
8)将Student表中所有女生记录定义为一个视图。并通过视图查询所有女生的信息。(6分)
9)查找未选修了1号课程的学生的姓名和系名。(5分)
10)按student表的sname列的降序创建索引。(4分)
11)创建一个名为cj默认值为0的默认对象。并将其绑定到sc表的grade列上。(4分)
12)向Student表增加“入学时间”列,其数据类型为日期型。(4分)
13)删除2号课程的所有选课记录。(4分)
28、已知数据库中表
试用SQL 语言完成下列问题: (1) 列出所有教授的姓名
(2)检索选修”数据库”课程的学生姓名
(3)统计成绩表中,每一门课程的平均成绩
(4)向student 表中增加一条记录(…200215140?,?张三?,20) (5)将grade 表中系编号为?001?系的学生的成绩增加10分 29. 已知表:
试用SQL 语言完成下列问题: (1) 查询年龄在20—30岁(包括20,30岁)之间的学生的姓名、系别和年龄。 (2) 查询学生总人数
(3) 查询与?刘晨?在同一个系的学生
student course sc
(4) 将学生?200215121?的年龄改为22岁 (5) 删除学号为?200215121?的学生记录。
30. 用SQL 语言完下列试题
部门(部门号,名称,电话)
职工(职工号,姓名,年龄,职务,工资,部门号) (1) 定义上面两个关系名模式(5′) 要求:
定义主码:部门号,职工号 定义外键(参照):部门号 定义职工年龄不得超过60岁 部门名称,职工姓名不可为空
(2) 修改两个关系模式(5′)
部门名称改为空姓
增加约束ck_gz ,工资在1000与10000之间,并对以前的数据进
行检查
为部门表增加列:经理名,非空性,默认值为“暂无”
31. 已知数据库中表,用SQL 语言完下列试题(注:表格中小括号里的内容为对各
表名或列名的解释,并非表名或列名的一部分)
一、密封线内不准答题。
二、姓名、准考证号不许
三
、考生在答题前应先将
年级、班级
注意
1. 已知学分=学时/17,计算每一门课程的学分数
2. 统计成绩表中,每一门课程的平均成绩
3. 查询系编号不为空的学生人数
4. 查询选修了课程的学生人数,并赋予新列名“选课总人数”
5. 查询选修了2门以上课程的学生学号
6. 查询教师表中每一种职称的最高工资和最低工资
7. 对于成绩表中分数在60分以上的行按照学号分组,其中只包含选课数大于2且平均分超过70的学号,选课数和平均分
8. 查询全体学生,结果按系的系号升序排列,出生日期的降序排列 9. 查询选修课了c1号课程的学生学号及成绩,且按分数的降序排列 10. 求各个课程及相应选课人数,平均分,最高分,最低分
11. 检索选修了5门以上课程的学生学号 12. 向学生表中插入如下一条记录:
13. 将选修“c1”号课程的学生成绩加上10分 14. 删除学号为‘4115’学生的选课记录
已知数据库中三张表的结构,请按照表中说明用SQL 语言将这三张表建立起来。
表1 student 表结构
表cousse 表结
构
表3 sc 表结构
32.
根据第二题中所设计的数据表, 已知表中内容如下,其中’CS ’表示计算机系,’MA ’表示数学系,’IS ’表示信息系。请用SQL 语言完下列试题1-13: student:
course:
1. 查询所有‘cs ’系男学生的情况
2. 查询系名不为空的学生总人数
3. 检索选修了课程的学生总人数
4. 查询至少有两门课程在80分以上的学生学号
5. 查询所有姓‘王’或姓‘李’的学生情况,并按学号的降序进行排列
6.
查询所有学生的选课情况,结果包含学号,姓名,课程号,成绩,包括所有未选修课程的学生情况
7.查询选修了‘信息系统’这门课程的学生姓名
8.查询‘MA’系中比‘IS’系所有男生年龄都小的女生姓名
9.查询平均成绩在80分以上的学生姓名
10.查询每门课程最高分的学生姓名
11.向学生表中插入如下一条记录:
12.将选修“1”号课程的学生成绩加上10分
13.删除学号为‘200215126’的学生记录
33.已知三张数据表student,course,sc,其表中内容如下,用SQL语言完下列试题1-13:
注:表中小括号中的内容为对英文列名的解释,并非列名的一部分!student:
:
1.查询所有‘IS’系男学生的情况
2.查询全体学生总人数
3.检索选修了课程的学生总人数
4.查询至少有两门课程在80分以上的学生学号