加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

第3章关系数据库标准语言SQL

(2010-12-29 22:31:16)
标签:

杂谈

3章关系数据库标准语言SQL

一、选择题

1、SQL语言是                    的语言,易学习。

    A.过程化    B.非过程化    C.格式化    D.导航式    答案:B

2、SQL语言是                  语言。

    A.层次数据库    B.网络数据库    C.关系数据库    D.非数据库    答案:C

3、SQL语言具有                    的功能。

    A.关系规范化、数据操纵、数据控制    B.数据定义、数据操纵、数据控制

    C.数据定义、关系规范化、数据控制    D.数据定义、关系规范化、数据操纵    答案:B

4、SQL语言具有两种使用方式,分别称为交互式SQL和                  

    A.提示式SQL    B.多用户SQL    C.嵌入式SQL    D.解释式SQL    答案:C

5、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。

    要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系          

    A.S      B.SC,C      C.S,SC      D.S,C,SC    答案:D

6、如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作                   不能执行。

    A.从职工表中删除行(‘025’,‘王芳’,‘03’,720)   B.将行(‘005,’,‘乔兴’,‘04’,750)插入到职工表中

    C.将职工号为,‘001’的工资改为700    D.将职工号为,’038’的部门号改为‘03’               答案:B    

7、若用如下的SQL语句创建一个student表:

    CREATE TABLE student(NO C(4) NOT NULL,

    NAME C(8) NOT NULL,

    SEX C(2),

    AGE N(2))

    可以插入到student表中的是                    

A.(‘1031’,‘曾华’,男,23)      B.(‘1031’,‘曾华’,NULL,NULL)

  C.(NULL,‘曾华’,‘男’,‘23’)  D.(‘1031’,NULL,‘男’,23)                                         答案:B

第8到第11题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:

    S(S#,SN,SEX,AGE,DEPT)

    C(C#,CN)

    SC(S#,C#,GRADE)

其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。

8、检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是                 

 

 A.SELECT SN,AGE,SEX FROM S

       WHERE AGE>(SELECT AGE FROM S

                    WHERE SN=“王华”)

    B.SELECT SN,AGE,SEX    FROM S

       WHERE SN=“王华”

    C.SELECT SN,AGE,SEX  FROM S

WHERE AGE>(SELECT AGE

            WHERE SN=“王华”)

    D.SELECT SN,AGE,SEX  FROM S

          WHERE AGE>王华.AGE

 

答案:A

9、检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是          

 

  A.SELECT S# FORM SC    WHERE C#=“C2” AND GRAD>=

             (SELECT GRADE FORM SC

                WHERE C#=“C2”)

    B.SELECT S# FORM SC

            WHERE C#=“C2” AND GRADE IN

               (SELECT GRADE FORM SC

                 WHERE C#=“C2”)

 

    C.SELECT S# FORM SC

         WHERE C#=“C2” AND GRADE NOT IN

                (SELECT GRADE FORM SC

                 WHERE C#=“C2”)

    D.SELECT S# FORM SC

            WHERE C#=“C2” AND GRADE>=ALL

            (SELECT GRADE FORM SC

               WHERE C#=“C2”)

 答案:D

10、检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是            

 

  A.SELECT S.SN,SC.C#,SC.GRADE

         FROM S

         WHERE S.S#=SC.S#

    B.SELECT S.SN,SC.C#,SC.GRADE

         FROM SC

         WHERE S.S#=SC.GRADE

    C.SELECT S.SN,SC.C#,SC.GRADE

         FROM S,SC

         WHERE S.S#=SC.S#

    D.SELECT S.SN,SC.C#,SC.GRADE

         FROM S.SC

 

    答案:C

11、检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是          

 

    A.SELECT S#,SUM(GRADE)FROM SC

        WHERE GRADE>=60

        GROUP BY S#

        ORDER BY DESC

        HAVING COUNT(*)>=4    WHERE C#=“C2” AND GRADE>=

             (SELECT GRADE FORM SC

             WHERE C#=“C2”)

    B.SELECT S# FORM SC

         WHERE C#=“C2” AND GRADE IN

           (SELECT GRADE FORM SC

            WHERE C#=“C2”)

C.SELECT S# FORM SC

         WHERE C#=“C2” AND GRADE NOT IN

           (SELECT GRADE FORM SC

           WHERE C#=“C2”)

    D.SELECT S# FORM SC

         WHERE C#=“C2” AND GRADE>=ALL

           (SELECT GRADE FORM SC

           WHERE C#=“C2”

  答案:D

二、填空题

1、SQL是                   。    答案:结构化查询语言

2、视图是一个虚表,它是从  ①  中导出的表。在数据库中,只存放视图的 ②  ,不存放视图的   ③ 。  答案:①一个或几个基本表   ②定义   ③视图对应的数据

3、设有如下关系表R:

    R(No,NAME,SEX,AGE,CLASS)

    主关键字是NO

其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。

写出实现下列功能的SQL语句。

    ①插入一个记录(25,“李明”,“男”,21,“95031”);               

    ②插入“95031”班学号为30、姓名为“郑和”的学生记录;              

    ③将学号为10的学生姓名改为“王华”;               

    ④将所有“95101”班号改为“95091”;              

    ⑤删除学号为20的学生记录;              

    ⑥删除姓“王”的学生记录;              

答案:

①INSERT INTO VALUES(25,“李明”,“男”,21,“95031”)

    ②INSERT INTO R(NO,NAME,CLASS)  VALUES(30,“郑和”,“95031”)

    ③UPDATE SET NAME=“王华”WHERE  NO=10

    ④UPDATE SET CLASS=“95091”WHERE CLASS=“95101”

    ⑤DELETE FROM WHERE NO=20

⑥DELETE FROMR WHERE NAME LIKE“王%”

3章书面作业

1、设学生课程数据库中有三个关系:

学生关系SS#SNAMEAGESEX

学习关系SCS#C#GRADE

课程关系CC#CNAME

其中S#C#SNAMEAGESEXGRADECNAME分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。

SQL语句表达下列操作

1)检索选修课程名称为“MATHS”的学生的学号与姓名

 2)检索至少学习了课程号为“C1”和“C2”的学生的学号

3)检索年龄在1820之间(含1820)的女生的学号、姓名和年龄

4)检索平均成绩超过80分的学生学号和平均成绩

5)检索选修了全部课程的学生姓名

6)检索选修了三门课以上的学生的姓名

 

答案:(1)SELECT SNAME,AGE

          FROM S,SC,C

          WHERE S.S#=SC.S#

          AND C.C#=SC.C#

          AND CNAME= MATHS

    (2) SELECT S#

         FROM SC

         WHERE CNO=C1 AND S# IN( SELECT S#

                             FROM SC

                             WHERE CNO=C2)

   (3)SELECT S#,SNAME,AGE

      FROM S

      WHERE AGE BETWEEN 18 AND 20

   (4) SELECT S# ,AVG(GRADE) 平均成绩

       FROM SC

       GROUP BY S#

       HAVING AVG(GRADE)>80

(5) SELECT  SNAME

FROM  S

WHERE  NOT  EXISTS

              (SELECT  *

               FROM  C

               WHERE NOT  EXISTS

                  (SELECT  *

                   FROM  SC

                   WHERE S#=S.S#  AND C#=C.C#

                          )

) 

     (6) SELECT SNAME

      FROM S,SC

        WHERE S.S#=SC.S#

       GROUP BY SNAME

       HAVING COUNT(*)>3        

 

2、设学生-课程数据库中包括三个表: 

学生表:Student SnoSnameSexSageSdept

课程表:CourseCnoCnameCcredit

学生选课表:SCSnoCnoGrade

其中SnoSnameSexSageSdept、 CnoCnameCcredit Grade分别表示学号、姓名、性别、年龄、所在系名、课程号、课程名、学分和成绩。

试用SQL语言完成下列项操作:

1)查询选修课程包括“1042”号学生所学的课程的学生学号

2)创建一个计科系学生信息视图S_CS_VIEW,包括Sno学号、Sname姓名、Sex性别;

3)通过上面第2题创建的视图修改数据,把王平的名字改为王慧平

4)创建一选修数据库课程信息的视图,视图名称为datascore_view,包含学号、姓名、成绩。

 

答案:(1) SELECT DISTINCT SNO

         FROM SC SCX

         WHERE NOT EXISTS

               (SELECT *

                FROM SC SCY

                WHERE SCY.SNO 1042 AND

                   NOT EXISTS

                      (SELECT *

                        FROM SC SCZ

                         WHERE SCZ.SNO=SCX.SNO AND

                        SCZ.CNO=SCY.CNO))

    (2)  CREATE VIEW S_CS_VIEW 

        AS

        SELECT SNO,SNAME,SEX

        FROM STUDENT

        WHERE Sdept=CS

  (3)UPDATE S_CS_VIEW

    SET SNAME= 王慧平

    WHERE SNAME= 王平

(4) CREATE VIEW datascore_view

   AS

   SELECT  SNO  学号、SNAME  姓名、GRADE 成绩

   FROM STUDENT,SC,COURSE

   WHERE STUDENT.SNO=SC.SNO

   AND COURSE.CNO=SC.CNO

   AND CNAME= 数据库

 

4章数据库的安全性

一、选择题

1下面哪个不是数据库系统必须提供的数据控制功能              

A.安全性 B.可移植性 C.完整性 D.并发控制          答案:B

2、保护数据库,防止未经授权的或不合法的使用造成的数据泄漏、更改破坏。这是指数据的            

A.安全性 B.完整性 C.并发控制 D.恢复              答案:A

3、数据库的                是指数据的正确性和相容性。

A.安全性 B.完整性 C.并发控制 D.恢复              答案:B

4、在数据系统中,对存取权限的定义称为                    

A.命令     B.授权     C.定义     D.审计      答案:B

5数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的                

A.可靠性 B.一致性 C.完整性 D.安全性                 答案:D

6、下列SQL语句中,能够实现“收回用户ZHAO对学生表(STUD)中学号(XH)的修改权”这一功能的是       

AREVOKE UPDATE(XH) ON TABLE FROM ZHAO       BREVOKE UPDATE(XH) ON TABLE FROM PUBLIC

CREVOKE UPDATE(XH) ON STUD FROM ZHAO         DREVOKE UPDATE(XH) ON STUD FROM PUBLIC         答案:C

7、把对关系SC的属性GRADE的修改权授予用户ZHAOSQL语句是                  

AGRANT GRADE ON SC TO ZHAO                   BGRANT UPDATE ON SC TO ZHAO

CGRANT UPDATE (GRADE) ON SC TO ZHAO    DGRANT UPDATE ON SC (GRADE) TO ZHAO   答案:C

8SQL Server 中删除触发器用(  )。

AROLLBACK         B.  DROP        CDELALLOCATE      D.  DELETE                    答案:B

二、填空题

1保护数据安全性的一般方法是                    。  答案:设置用户标识和存取权限控制

2安全性控制的一般方法有和视图的保护五级安全措施。答案:①用户标识鉴定 ②存取控制 ③审计   ④数据加密

3存取权限包括两方面的内容,一个是  ,另一个是 。    答案:①要存取的数据对象 ②对此数据对象进行操作的类型

4在数据库系统中对存取权限的定义称为                。    答案:授权

5、在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用    语句,收回所授的权限使用        语句。    答案:①GRANT  REVOKE

6、DBMS存取控制机制主要包括两部分:自主存取控制,________________。   答案:强制存取控制

7、 当对某一表进行诸如(  )、 (  )、 (  ) 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句。

答案:INSERT,DELETE,UPDATE

5章数据库完整性

一、选择题:

1、在数据库系统中,保证数据及语义正确和有效的功能是 (     

A.并发控制       B.存取控制       C.安全控制       D.完整性控制                   答案:D

2关于主键约束以下说法错误的是(  )

A. 一个表中只能设置一个主键约束    B.允许空值的字段上不能定义主键约束

C.允许空值的字段上可以定义主键约束  D.可以将包含多个字段的字段组合设置为主键        答案:C

3在表或视图上执行除了(  )以外的语句可以激活触发器。

A.Insert  B. Delete  C. Update  D. Create                                    答案:D

4、数据库的____是指数据的正确性和相容性。

A.安全性 B.完整性 C.并发控制 D.恢复                                             答案:B

5、在数据库的表定义中,限制成绩属性列的取值在0到100的范围内,属于数据的________约束。

A、 实体完整性B、参照完整性C、用户自定义D、用户操作                                 答案:C

二、填空题

1.数据库的完整性是指数据的    .  ②__  。答案:①实体完整性  ②参照完整性  用户定义完整性 

2、实体完整性是指在基本表中,                  。   答案:主属性不能取空值

3、参照完整性是指在基本表中,                 。    答案:外码可以是空值或者另一个关系主码的有效值

4为了保护数据库的实体完整性,当用户程序对主码进行更新使主码值不惟一时,DBMS         。答案:拒绝此操作

三、设计题

在学生课程管理数据库中创建一触发器,当向学生选课表插入记录时,检查该记录的学号在学生表中是否存在,检查该记录的课程号在课程表中是否存在,及选课成绩是否在0到100范围,若有一项为否,则不允许插入。

答案:

create trigger stu_ins_tri

on sc

for insert

as

begin 

declare @s# char(6),@c# char(5),@grade int 

select @s#=sno,@c#=cno,@grade=score

from inserted

if (@s# not in(select sno from student)) or (@c# not in (select cno from course) )or (@grade not between and 100)

rollback transaction 

else

print '成功插入'

end

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有