SQL争霸赛试题及参考答案
1.某医院病房计算机管理中需要如下信息:(15分)
科室:科名,科地址,科电话
病房:病房号,所属科室名
医生:姓名,职称,所属科室名,年龄,工作证号
病人:病历号,姓名,性别,诊断,主管医生,病房号,入住日期
其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个,一个病人可能在不同时间入住不同的病房,也是就说一个病人也许入住过多间病房,一间病房可以入住多名病人。
完成如下设计:
(1) 设计该计算机管理系统的E-R图(7分);
答案(实体上的属性描述及关系描述略)画出四个实体图,然后关系描述正确即可。
(2) 将该E-R图转换为数据库模型图(表名和字段名都可以用中文来写)(8分);
答案:
2. (75分)
表名
S
作用
存储学生信息
主键
SNO
序号
字段名称
字段说明
类型
属性
备注
1
SNO
主键,学号
Varchar(5)
非空
学号必须为数字
2
SName
学生姓名
Nvarchar(50)
非空
姓名唯一
3
Age
年龄
Int
非空
1~100
4
Sex
性别
Nvarchar(1)
非空
默认为男,只能填写男和女
表名
C
作用
存储课程信息
主键
CNO
序号
字段名称
字段说明
类型
属性
备注
1
CNO
主键,课程号
char(2)
非空
课程号长度必须为2
2
CName
课程名
Nvarchar(50)
非空
唯一
3
Teacher
老师姓名
Nvarchar(50)
非空
表名
SC
作用
存储成绩信息
主键
CNO,SNO
序号
字段名称
字段说明
类型
属性
备注
1
CNO
课程号,外键
char(2)
非空
课程号长度必须为2
2
SNO
学生号,外键
Varchar(5)
非空
学号必须为数字
3
Grade
成绩
Int
非空
0~100
2.1 写出SQL语句,建立学生数据库Student,并按以上要求建立表,约束(13分)(答案略);
2.2 插入一下测试数据:(2分)
INSERT [C] ([CNO],[CName],[Teacher]) VALUES ( 'k1','C语言','王华')
INSERT [C] ([CNO],[CName],[Teacher]) VALUES ( 'K5','数据库原理','程军')
INSERT [C] ([CNO],[CName],[Teacher]) VALUES ( 'K8','编译原理','程军')
INSERT [S] ([SNO],[SName],[Age],[sex]) VALUES ( '1','李强',23,'男')
INSERT [S] ([SNO],[SName],[Age],[sex]) VALUES ( '2','刘丽',22,
相关文档:
返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。
语法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函数语法中有下列命名参数:
部分 描述
interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
Date1 ......
方法一:
DB1 tb1
DB2 tb2
选择DB1 到表的列表那里
选择tb1表 右键 所有任务 数据导出
下一步 选择你要导出的数据库DB1 下一步 选择你要导入的数据库DB2
下一步 选择你要导的表(前面画勾)tb1, 后面对应的是新数据库的表名tb2(默认是相同表名,可修改) 下一步 完了 ......
First:
create table gobo.gobo_om_reservations_2008b as
select * from gobo_om_reservations
where to_char(CREATION_DATE,'yyyy')<'2008'
delete from gobo_om_reservations
where to_char(CREATION_DATE,'yyyy')<'2008'
commit
After 2009Year:
create table gobo.gobo_om_reservations_????b as ......
select d.code,d.name, sum(w.weight) weight,round(avg(w.price),2) price,sum(w.money) money
from weight_info w left outer join t_dict d on w.productcode=d.code left outer join t_balancecode b on w.balancecode=b.balancecode where 1=1 and w.operdate>TO_TIMESTAMP('2009-11-2 04:12:32.0', ' ......
Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
fr ......