• SQL基础试题


    第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语句创建一个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

    7、当两个子查询的结果       时,可以执行并,交,差操作.

    A.结构完全不一致          B.结构完全一致

    C.结构部分一致            D.主键一致     答案:B

    第8到第10题基于这样的三个表即学生表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 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

    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    B.FROM    C.WHERE   D.GROUP BY     答案:A

    12、关系代数中的σ运算符对应SELECT语句中的(        )子句.

    A.SELECT    B.FROM    C.WHERE   D.GROUP BY    答案:C

    13、WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是(       ).

    A. *        B. %      C. -      D. ?   答案:B

    14、WHERE子句的条件表达式中,可以匹配单个字符的通配符是(      ).

    A. *        B. %      C. -      D. ?    答案:C

    15、SELECT语句中与HAVING子句同时使用的是(      )子句.

    A.ORDER BY  B.WHERE   C.GROUP BY D.无需配合  答案:C

    16、与WHERE G BETWEEN 60 AND 100语句等价的子句是(       ).  答案:D

    1. WHERE  G>60 AND G<100
    2. WHERE  G>=60 AND G<100 
    3. WHERE  G>60 AND G<=100
    4. WHERE  G>=60 AND G<=100  

    17、SELECT语句执行的结果是(      ). 答案:C

    A.数据项    B.元组    C.表      D.视图

    18、下列SQL语句中,修改表结构的是____。答案:A

    A.ALTER          B.CREATE        C.UPDATE        D.INSERT

    二、填空题

    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 R VALUES(25,’李明’,’男’,21,’95031’)

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

        ③UPDATE R SET NAME=‘王华’ WHERE  NO=10

        ④UPDATE R SET CLASS=’95091’WHERE CLASS=’95101’

        ⑤DELETE FROM R WHERE NO=20

    ⑥DELETE FROM  R WHERE NAME LIKE’王%’

    4、SELECT语句中,__WHERE   _____子句用于选择满足给定条件的元组,使用_GROUP BY______子句可按指定列的值分组,同时使用__HAVING_____子句可提取满足条件的组。

    5、   在SQL中,如果希望将查询结果排序,应在SELECT语句中使用_ORDER BY__子句,其中_ASC____选项表示升序,_DESC______选项表示将降序。

    6、子查询的条件不依赖与父查询,这类查询称之为_不相关子查询_______,否则称之为_相关子查询_______。

    7、若一个视图是从单个基本表中导出来的,并且只是去掉了基本表的某些行和某些列,但保留了码,我们称这类视图为__行列子集视图_________。

    三、SQL练习

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

    学生关系S(S#,SNAME,AGE,SEX)

    学习关系SC(S#,C#,GRADE)

    课程关系C(C#,CNAME)

    其中S#、C#、SNAME、AGE、SEX、GRADE、CNAME分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。

    用SQL语句表达下列操作。

    (1)检索选修课程名称为 ’MATHS’ 的学生的学号与姓名。

    (2)检索至少学习了课程号为 ’C1’ 和 ’C2’ 的学生的学号。

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

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

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

    答案:(1)SELECT S#,SNAME

              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 SEX=’女’AND AGE BETWEEN 18 AND 20

          (4) SELECT S# ,AVG(GRADE)

              FROM SC

              GROUP BY S#

              HAVING AVG(GRADE)>80

          (5) SELECT SNAME

            FROM S,SC

             WHERE S.S#=SC.S#

             GROUP BY S#

             HAVING COUNT(*)>3       

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

    学生表:Student (Sno,Sname,Sex,Sage,Sdept)

    课程表:Course(Cno,Cname,Ccredit)

    学生选课表:SC(Sno,Cno,Grade)

    其中Sno、Sname、Sex、Sage、Sdept、 Cno、Cname、Ccredit、Grade分别表示学号、姓名、性别、年龄、所在系名、课程号、课程名、学分和成绩。

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

    (1)创建一个计算机科学系学生信息视图S_CS_VIEW,该视图包含的属性为:Sno、Sname、Sex。

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

    (3)创建一选修数据库课程信息的视图,视图名称为datascore_view,该视图包含的属性为: SNO、SNAME、GRADE。

    答案:

     (1)  CREATE VIEW S_CS_VIEW

            AS

            SELECT SNO, SNAME, SEX

            FROM STUDENT

            WHERE Sdept=’CS’

    (2)UPDATE S_CS_VIEW

        SET SNAME=’王慧平’

        WHERE SNAME=’王平’

    (3) 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=’数据库’

  • 相关阅读:
    剑指offer面试题17:合并两个排序的链表
    剑指offer面试题16:反转链表
    剑指offer面试题15:链表中倒数第K个节点
    Jinja2.template渲染两种常见用法
    hadoop集群运维碰到的问题汇总
    hbase配置参数总结
    hbase内核学习总结
    zookeeper学习笔记
    mongodb 3.2性能测试
    kafka内部结构笔记
  • 原文地址:https://www.cnblogs.com/hoobey/p/7049274.html
Copyright © 2020-2023  润新知