数据库系统月考二试卷及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二次月考

设有一个学生选课数据库,包括如下三个关系模式:

Student(Sno,Sname,Ssex,Sage,Sdept);

Course(Cno,Cname,Cpno,Credit);

SC(Sno,Cno,Grade)。

Student表示学生,它的各属性依次为学号、姓名、性别、年龄、系别;

设置Sno为主码,Sname值非空,Ssex默认值为‘男’。

Course表示课程,它的各属性依次为课程号、课程名、先行课、学分;

设置Cno为主码,Cname值唯一,Cpno值可以为空。

SC表示学生选课信息,它的各属性依次为学号、课程号、学生所学课程的成绩。

设置Sno、Cno为主码,Grade可以为空、设置check约束取值范围为0-100,设置外键约束Sno参考Student表的属性Sno、Cno参考Course表的属性Cno。

其中,Sage、Credit、Grade三个属性为int型,其余各属性为char型。

一、用SQL语句创建Student表、Course表、SC表。(30分)

(1) 10分

create table student

(sno char(9) primary key, /*列级完整性约束,设置sno为主码*/

sname char(20) not null,/*列级完整性约束, 要求sname值非空*/

ssex char(2) default‘男’,/*默认值约束, ssex默认值为‘男’*/

sage int,

sdept char(20));

(2) 10分

create table course

(cno char(4) primary key, /*列级完整性约束,设置cno为主码*/

cname char(20) unique, /*列级完整性约束, 要求cname值唯一*/

cpno char(2) null,/*cpno值可以为空*/

credit int

);

(3) 10分

create table sc

(sno char(9),

cno char(4),

grade int check((grade IS NULL)OR(grade between 0 AND 100)),

/*check约束限制grade取值范围*/

Primary key(sno,cno), /*表级完整性约束,主键约束*/

Foreign key(sno) references student(sno),/*外键约束*/

Foreign key(cno) references course(cno) /*外键约束*/);

二、请用SQL语句完成如下操作:(70分)

(1)将学生记录(学号:95010,姓名:陈东,性别:男,年龄:18,所在系:IS)插入到student表中。(5分)

insert into student values ('95010', '陈东', '男' , 18, 'IS');

(2)查询student表中学生属于哪些系。(5分)

select distinct sdept

from student;

(3)查询年龄不在18到20之间的学生姓名。(5分)

select sname, sdept

from student

where sage not between 18 and 20

(4)从学生表中统计姓‘刘’的学生的学号和姓名。(5分)

select sno,sname

from student

where sname like ‘刘%’;

(5)查询各系

..学生的平均年龄,将查询结果按照年龄的平均值降序输出。(10分)select sdept,avg(sage)

from student

group by sdept

order by avg(sage) DESC;

(6)查询李勇的数据库课程的成绩。(10分)

select student.sno , sname , cname ,grade

from student, course, sc

where student.sno=sc.sno and o=o and sname ='李勇' and cname='数据库';

(7) 查询学生人数大于5的系。(10分)

select sdept, count(*)

from student

group by sdept

having count(*)>5;

(8)建立MA系学生的视图。(10分)

create view MA_student

AS

select * from student where sdept='MA';

(9) 把对表course的查询权限授予用户U5,并允许他再将此权限授予其他用户。

grant select on table course to U5 with grant option;

青年人首先要树雄心,立大志,其次就要决心作一个有用的人才

相关文档
最新文档