官术网_书友最值得收藏!

第6章 數(shù)據(jù)檢索

1.選擇題

(1)SELECT語句中使用________關鍵字可以將重復行屏蔽。

A.order by

B.having

C.top

D.distinct

(2)SELECT語句中的________子句用于存放結果集到表中。

A.select

B.into

C.from

D.group by

(3)SELECT語句中的________子句只能配合group by子句使用。

A.order by

B.having

C.into

D.compute

(4)使用空值查詢時,表示一個列RR不是空值的表達式是________。

A.RR IS NULL

B.RR==NULL

C.RR<>NULL

D.RR IS NOT NULL

(5)表達式中存在LIKE運算時,表達式的結果可能是________類型數(shù)據(jù)。

A.date

B.float

C.int

D.table

答案:DBBDA

2.思考題

(1)簡述SELECT語句中各個子句的作用。

】SELECT語句中各個子句的作用如下。

①SELECT:描述結果集的列,是一個用逗號分隔的表達式列表。②INTO:指定使用結果集來創(chuàng)建新表。

③FROM:包含從中檢索到結果集數(shù)據(jù)的源表的列表。

④WHERE:定義源表中的行要滿足SELECT語句的要求所必須達到的條件。⑤GROUP BY:根據(jù)分組表達式的值將結果集分成組。

⑥WITH ROLLUP與GROUP BY一起時用于總體統(tǒng)計。

⑦HAVING:對結果集的附加篩選。HAVING子句通常與GROUP BY子句一起使用。

⑧ORDER BY:定義結果集中行排列的順序。

(2)說明在SELECT語句中使用聚合函數(shù)應該注意的問題。

】聚集函數(shù)是用于獲取累計值的函數(shù),不能被用于SELECT語句的WHERE子句中。利用GROUP BY子句時,輸出項只能是GROUP BY后的分組列和聚合函數(shù)。聚合函數(shù)可以出現(xiàn)在HAVING中。

(3)SQL腳本執(zhí)行的結果有哪幾種形式?查看SQL腳本的方法有哪些?

】選擇輸出格式可以通過工具欄方式,也可以通過選擇菜單中的“查詢”→“將結果保存到”命令方式。SQL腳本執(zhí)行的結果通常有如下三種形式:以文本格式顯示結果、以網(wǎng)格顯示結果及將結果保存到文件。

查看SQL腳本的方法可以通過查詢設計器進行,也可以通過文本方式進行。

(4)將NULL與其他值比較會產(chǎn)生什么結果?數(shù)值列中存在NULL會產(chǎn)生什么結果?

】涉及空值的查詢用NULL來表示。一個列值是空值或者不是空值,不能表示為=NULL或<>NULL,而要表示為IS NULL或IS NOT NULL。將NULL與其他值比較,其結果也是真或假。

數(shù)值列中存在NULL值,表示數(shù)值不確定。

3.上機練習題(本題利用teaching數(shù)據(jù)庫進行操作)

(1)查詢course表中的所有記錄。

】程序代碼如下。

      select * from course
      go

(2)查詢student表中女生的人數(shù)。

】程序代碼如下。

      select * from student
      where sex = '女'
      go

(3)查詢teacher表中每一位教授的教師號、姓名和專業(yè)名稱。

】程序代碼如下。

      select teacherno,tname,major from teacher
      where prof = '教授'
      go

(4)按性別分組,求出student表中每組學生的平均年齡。

】程序代碼如下。

      select sex as'學生性別',avg(DATEDIFF(year,birthdate,getdate()))
          as'平均年齡'
      from student
      group by sex
      go

(5)利用現(xiàn)有的表生成新表,新表中包括學號、學生姓名、課程號和總評成績。其中:總評成績=final * 0.8+daily * 0.2。

】程序代碼如下。

      select student.studentno,student.sname,score.courseno,
          final * 0.8 + daily * 0.2 as'總評'
      into stu_sorse
      from student,score
      where student.studentno=score.studentno
      go
      select * from stu_sorse
      go

(6)統(tǒng)計每個學生的期末成績平均分。

】程序代碼如下。

      select studentno,sname,avg(總評)
      from stu_sorse
      group by studentno,sname
      go

(7)輸出student表中年齡最大的男生的所有信息。

】程序代碼如下。

      select * from student
      where birthdate = (select min(birthdate)from student)
      go

      / *
      select top 1 * from student
      order by birthdate
      * /

(8)查詢teacher表中沒有職稱的職工的教師號、姓名、專業(yè)和部門。

】程序代碼如下。

      select teacherno,tname,major,department
      from teacher
      where prof is NULL
      go
主站蜘蛛池模板: 沁水县| 桑日县| 怀宁县| 盐城市| 独山县| 定边县| 昂仁县| 东丽区| 东台市| 资兴市| 桐梓县| 洪洞县| 南汇区| 瑞安市| 桂平市| 万州区| 丹江口市| 衡阳县| 漳平市| 濮阳市| 宜春市| 香河县| 岳普湖县| 龙州县| 永济市| 永胜县| 仲巴县| 德兴市| 华亭县| 郯城县| 集安市| 都匀市| 宁都县| 岗巴县| 沅江市| 于田县| 普定县| 曲周县| 漳平市| 永州市| 大埔区|