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=’數據庫’

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM