sql习题一

习题一

1.  SQL的有关语句定义

1)  学生关系Student,包括学号Sno、姓名SN、年龄SA

2)  课程关系Course,包括课程号Cno、课程名CN、任课教师CT

3)  学生选课关系,包括SnoCno和成绩G

注意:说明主键码和外键码(如果有的话),并在键码属性上建立索引。

2.  按题1的学生关系模式,用SQL的有关语句

1)  授予赵华对学生关系Student的插入和修改权限;

2)  插入任意3个学生的完整信息;

3)  修改所有学生的年龄(加1)。

3.  结合题1定义的学生选课数据库,用SQL语句查询计算机系学生数据库课的成绩,输出学生姓名和成绩,按成绩排序(降序),若成绩相同,再按学号排序(升序)。

4.  按嵌入式SQL的格式插入任意一个学生的学号、姓名、系别和年龄。

6分)

5.  商店销售商品的数据库,涉及如下数据:

商店号、商店名、地址

商品号、商品名、单价。

某商店销售某商品的数量和日期。

1)  设计E/R图(属性名用中、英文均可);

2)  转换成关系模型(注明键码和函数依赖)。

6.  有关图书发行的关系模型如下:

书店S(书店号SNo,书店名SN,地址A

图书B(书号BNo,书名BN,价格P

图书馆L(馆号LNo,馆名LN,城市C

图书发行LBSLNoBNoSNo,发行量Q

       分别用关系代数和SQL语言表达如下查询:

       图书馆L4(馆号)收藏图书的书名和出售该书的书店名。

7.  写出3个关系模式分别满足:

1)  1NF,不是2NF

2)  2NF,不是3NF

3)  3NF,也是BCNF

各用两句话分别说明你所写的关系模式是前者,不是(或也是)后者。

 

 

 

 

 

 

 

11           CREATE TABLE Student(

       Sno INT PRIMARY KEY,

       SN CHAR(30),

       SA INT

);

       2)           CREATE TABEL Course(

      Cno INT PRIMARY KEY,

      CN CHAR(30),

      CT CHAR(30)

);

       3)           CREATE TABEL SC(

      Sno INT,

      Cno INT,

      G INT,

      PRIMAYR KEY(Sno,Cno),

      FOREIGN KEY(Sno) REFERENCES Student(Sno),

      FOREIGN KEY(Cno) REFERENCES Course(Cno)

);

 

 

2  1         GRANT INSERT, UPDATE, ON Student TO 赵华;

    2        INSERT INTO Student

                     (TABLE (01001,’赵华’,19),

                                   (01002,’李芳’,18),

                                   (01003,’刘红’,20),

                     );

       3         UPDATE Student

                     SET SA=SA+1;

 

3  SELECT SN,G

       FROM Student,Course,SC

       WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno

                     AND Course.CN=’数据库

       ORDER BY G DESC,Sno;

 

 

4  1)说明:     EXEC SQL BEGIN DECLARE SECTION;

                            int sno;

                            char sname[30];

                            int sage;

                            char SQLSTATE[6];

                            EXEC SQL END DECLARE SECTION;

2)赋值:     sno:=01001;

                     sname:=’赵华’;

                     sage:=19;

3)插入:     EXEC SQL INSERT

                                     INTO Student

                                     VALUES(:sno,:sname,:sage);

 

 

 

51

商店号

商店名

地址

商店

销售

数量

日期

单价

商品名

商品号

商品

   

2  商店(商店号,商店名,地址)              商店号商店名,地址

       商品(商品号,商品名,单价)              商品号商品名,单价      

       销售(商店号,商品号,数量,日期)    商店号,商品号数量,日期

 

6  1π BN,SNσ LNo=L4B     LBS     S))

     2  SELECT BN,SN

              FROM B,LBS,S

              WHERE B.BNo=LBS.BNo AND LBS.SNo=S.SNo

                            AND LBS.LNo=L4;

 

7  1)学生选课(学号,姓名,课程号,成绩)

              属性不可分,是1NF;存在非主属性对键码的部分依赖(学号,课程号 姓名),不是2NF

       2)学生(学号,姓名,系别,系主任)

             

键码为单属性,不存在部分依赖,是2NF;存在非主属性对键码的传递依赖(学号姓名,系别;系别 学号;系别系主任;学号 系主任),不是3NF

3)学生(学号,姓名,年龄)

非主属性(姓名,年龄)对键码不存在部分依赖和传递依赖,是3NF

主属性(学号)对键码也不存在部分依赖和传递依赖,是BCNF

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值