文档库 最新最全的文档下载
当前位置:文档库 › SQL题

SQL题

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分以上的学生学号

相关文档