0
点赞
收藏
分享

微信扫一扫

数据库期中(二)

大南瓜鸭 2022-04-13 阅读 87
数据库

教务系统中存储着学生信息,包括学号、姓名、专业;课程信息,包括课程号、课程名,

学分,学生的选课信息,包括,学号、课程号、成绩。

1)写出课程信息、选课信息的数据库模式;

学生 ( 学号 , 姓名 , 专业 );

课程 ( 课程号 , 课程名 , 学分 );

选课 ( 学号 , 课程号 , 成绩 );

2)写出创建课程信息的建表命令;

Create table 课程 (

课程号 char(6),

课程名 varchar(30),

学分 decimal(2,1),

Primary key ( 课程号 )

);

create table stu(

sno char ( 12 ),

name varchar ( 120 ) not null ,

major varchar ( 30 ) not null ,

Primary key (sno)

);

Coment on table stu is ‘ 学生信息表 ’;

Coment on column stu.sno is ‘ 学号 ’;

ALTER TABLE stu COMMENT=' 学生信息表 ';

ALTER TABLE stu MODIFY sno CHAR(6) COMMENT ' 学号 ';

Create table course(

cno char(7),

cname varchar(30) not null,

credit decimal(2,1) not null,

Primary key (cno)

);

Create table sc(

sno char(12),

cno char(7),

score decimal(4,1),

Primary key (sno,cno)

);

3)写出下面查询的关系代数表达式:

        a)查询出成绩小于 60 分的学生的学号;

Select sno From sc Where score < 60;

        b)查询出成绩小于 60 分的学生的学号、姓名;

Select stu.sno, name

From stu, sc

Where stu.sno = sc.sno

And score < 60 ;

        c)查询出从来没有选修课程的学生学号;

Select sno

From stu

Where sno not in ( Select sno From sc);

        d)查询出成绩最小的学生的学号;

Select sno

From sc

Where score = ( select min (score) from sc);

        e)查询出至少有 2 个学生选修的课程号;

Select distinct sc.cno

From sc, sc s1

Where sc.cno = s1.cno

and sc.sno <> s1.sno;

         f) 查询出选修了所有课程的学生学号

Select distinct sno

From sc a

Where not exists ( select *

                               From course b

                               Where not exists ( select *

                                                              from sc

                                                              where sno = a.sno

                                                              and cno = b.cno));

R(X,Y)÷S(Y,Z)的运算用结构化语言 SQL 语句可表达为下列形式:

select distinct R.X from R R1

where not exists ( select S.Y

                               from S

                               where not exists ( select * from R R2

                                                            where R2.X = R1.X and R2.Y = S.Y));

举报

相关推荐

0 条评论