- SQL Server 2016數(shù)據(jù)庫應用與開發(fā)習題解答與上機指導
- 姜桂洪主編
- 1210字
- 2019-07-01 10:07:46
第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
- 深入理解Android(卷I)
- Mastering JavaScript Functional Programming
- Instant Apache Stanbol
- Flink SQL與DataStream入門、進階與實戰(zhàn)
- Software Testing using Visual Studio 2012
- Learning ASP.NET Core 2.0
- 你不知道的JavaScript(中卷)
- Kinect for Windows SDK Programming Guide
- MATLAB for Machine Learning
- Python全棧數(shù)據(jù)工程師養(yǎng)成攻略(視頻講解版)
- RealSenseTM互動開發(fā)實戰(zhàn)
- Android開發(fā)三劍客:UML、模式與測試
- 輕松上手2D游戲開發(fā):Unity入門
- Emotional Intelligence for IT Professionals
- RocketMQ實戰(zhàn)與原理解析