create view [医疗表视图] as
select br.姓名,ys.姓名,yl.病历 from 病人表 as br join 医疗表 as yl
on br.编号yl.病人编号 join 医生表 as ys
on yl.医生编号=ys.编号 4.
Select br.编号, br.姓名, br.病历, yl.医生编号 from 病人表 br left join 医疗表 yl on br.编号 = yl.病人编号 5.
create procedure [某医生看病人数] @医生编号 nchar(16), @人数 int output as
select @人数=count(病人编号) from 病人表
where 医生编号 = @医生编号 go
declare @TOTAL int
execute [某医生看病人数] '100001', @TOTAL 6
select * from 医生表 where 出生日期<'1970-01-01' 9.
select 编号, 姓名, 性别, 出生日期, 职称 from 医生表 where 编号 in (select 医生编号 from 医疗表) 8.
create default zhicheng AS '医师' go
exec sp_bindefault 'zhicheng', '医生表.职称'
四、设计题(共50分)
现有关系数据库如下:
数据库名:学生选课数据库
学生表(学号,姓名,性别,年龄,专业)
课程表(课程号,课程名,学分,先行课程号) 选课表(ID, 学号,课程号,分数) 用SQL语言实现下列功能的sql语句代码:
1. 创建数据库[学生选课数据库]代码(2分); 2. 创建[课程表]代码(2分);
课程表(课程号 char(6),课程名,学分,先行课程号) 要求使用:主键(课程号)、非空(课程名, 学分) 3. 创建[学生表]代码(6分);
学生表(学号 char(6),姓名,性别,年龄,专业) 要求使用:主键(学号)、非空(姓名,专业)、检查(性别) 4. 创建[选课表]代码(4分);
选课表(ID,学号,课号,分数) 要求使用:外键(选课表.学号,选课表.课程号)、检查(分数),自动编号(ID) 5. 将下列课程信息添加到课程表的代码(8分)
课程号 课程名 学分 先行课程号 100001 C语言 2
100002 数据结构 2 100001 100003 数据库原理 2
修改 课程号为100003的课程名:SQL数据库 删除 课程号为100002的课程信息
6. 写出创建:选课表视图(学号,姓名,课程号,课程名,学分,分数)的代码;(4分)
7. 写出创建:某门课程成绩 内嵌表值函数以及检索的代码;(6分) 检索:所有修 SQL数据库 这门学生的成绩;
8. 写出创建:某门课程高低均分 计算某门课程成绩最高分、最低分、平均分 存储过程以及执行的代码;(6分)
执行:所有修 SQL数据库 这门学生的最高分、最低分、平均分; 9. 检索姓张的女同学的情况:姓名、学号、专业。(2分)
10.检索有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。(4分) 1.
create database [学生选课数据库] go
use [学生选课数据库] go 2.
create table 学生表
([学号] char(6) primary key, [姓名] nchar(4) not null,
[性别] nchar(1) check([性别] in ('男', '女')), [年龄] numeric(2) ,
[专业] char(18) not null ) 3.
create table课程表
([课程号] char(6) primary key, [课程名] char(40) not null, [学分] numeric(2) not null, [先行课程号] char(6) ) 4.
create table选课表 (ID IDENTITY(1, 1),
[学号] char(6) references 学生表(学号),
[课程号] char(6) references 课程表(课程号), [分数] integer check([分数] between 0 and 100) ) 5.
insert 课程表 values('100001', 'C语言',2)
insert 课程表 values('100002', '数据结构', 2, '100001') insert 课程表 values('100003', '数据库原理', 2)
update课程表 set 课程名='SQL数据库' where 课程号='100003' delete课程表 where 课程号='100002' 6. create view [选课表视图] as
select 选课表.学号,姓名,选课表.课程号,课程名, 学分, 分数 from 选课表,学生表,课程表 where 选课表.学号=学生表.学号 and 选课表.课程号=课程表.课程号 --或
create view [选课表视图] as
select 选课表.学号,姓名,选课表.课程号,课程名, 学分,分数 from 选课表 join 学生表 on 选课表.学号=学生表.学号 join 课程表 on 选课表.课程号=课程表.课程号 7.
create function [某门课程成绩](@课程名 varchar(40)) returns table as
return (select学号,姓名,课程名,学分,分数from 选课表视图 where 课程名=@课程名) go
select * from [某门课程成绩]('SQL数据库') 8.
create procedure [某门课程高低均分] @课程名 varchar(40) as
select 课程名, 最高分=max(分数)、最低分=min(分数)、平均分=avg(分数)
from 选课表视图
where 课程名 = @课程名 go
execute [某门课程高低均分] 'SQL数据库' 9.
select 姓名, 学号, 专业 from 学生表 where 姓名 like '张%' and 性别='女' 10.
select 学号, 姓名, 专业 from 学生表 where学号 in (select distinct 学号 from 选课表 where分数<60)
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据库上机习题及答案(2)在线全文阅读。
相关推荐: