- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9 章查询资料— 善用SELECT 叙述
第 9 章 查詢資料― 善用 SELECT 敘述 本章提要 9-1 SELECT 敘述的基本結構 9-2 SELECT 子句 9-3 FROM 子句 9-4 WHERE 子句 9-5 GROUP BY 子句 9-6 HAVING 子句 9-7 ORDER BY 子句 9-8 COMPUTE 子句 9-1 SELECT 敘述的基本結構 完整的 SELECT 敘述語法相當繁雜, 為了便於說明, 在此我們先列出 SELECT 敘述中的主要子句, 讓各位先了解 SELECT 敘述的基本結構, 然後再分節詳述各子句的語法及用法。 SELECT 敘述的基本結構 上列語法總共只有 8 句而已, 而且有些子句, 如 SELECT、INTO、FROM、WHERE, 前面的章節已使用過很多次了, 各位應該不致於感覺太陌生才對。 其中由於 SELECT INTO 的用法, 我們在 8-4 節就已經詳細介紹過了, 所以這裏就不再重複說明;至於其它各子句的內容, 就請您看下面各節的介紹。 9-2 SELECT 子句 首先上場的是 SELECT 子句, SELECT 子句的作用是從資料表中挑選出要查詢的欄位, 詳細語法如下: 指定欄位名稱 我們先來看在 SELECT 子句中如何指定欲查詢的欄位名稱, 也就是設定 select_list 的內容。基本上有下列 3 種方式: *:代表資料表中的所有欄位, 例如:SELECT *。 column_name:若僅要查詢資料表中的部份欄位, 就直接將那些欄位名稱列出, 欄位名稱之間用逗號相隔, 例如:SELECT 編號, 書名, 定價。 expression:利用運算式來指定欄位, 運算式的內容可以是欄位名稱、常數、函數 ... 等的組合, 例如:SELECT 定價 * 0.8、SELECT FLAG。 指定欄位名稱 底下我們來看幾個簡單的應用範例。第 1 個例子是查詢書籍資料表中所有欄位的資料: 指定欄位名稱 第 2 個例子查詢書籍資料表中書籍名稱欄位和價格欄位的資料, 而且價格欄位的值還要打 8 折: 指定欄位名稱 第 3 個例子是直接利用 SELECT 子句顯示常數, 因為這個例子不需要從資料表中挑選欄位, 所以連 FROM 子句也省略了: 資料表名稱.欄位名稱 如果是從多個資料表或檢視表中查詢, 那麼 “SELECT * ” 是代表所有資料表 (或檢視表) 中的所有欄位。 如果要指明某資料表 (或檢視表) 的所有欄位, 需用 資料表 (或檢視表) 名稱或別名.* 的方式, 例如:SELECT 書籍.*, 訂單.*。 另外, 如果這些資料表 (或檢視表) 中有同名的欄位, 也要加上資料表或檢視表名稱或別名的方式來指定, 例如:SELECT 訂單.編號, 書籍.編號。 是否顯示重複記錄:ALL 與 DISTINCT SELECT 子句後若加上 DISTINCT 參數, 那麼查詢結果中若有重複的多筆資料 (即每個欄位值都相同的資料), 將只會顯示其中一筆。ALL 的功能則相反, 不論資料是否重複均會顯示。預設值是 ALL, 因此通常不須使用 ALL 參數, 只有在不要顯示重複資料時才用 DISTINCT 來指定。 下面範例會顯示書籍資料表中出版公司欄位的所有資料: 是否顯示重複記錄:ALL 與 DISTINCT 是否顯示重複記錄:ALL 與 DISTINCT 如果我們只是想看看到底有哪些出版公司, 列出重複的資料就沒有意義了, 這時就可以用 DISTINCT 參數來過濾: TOP n 與 TOP n PERCENT TOP n 表示查詢資料表最前面 n 筆記錄, 若再加上 PERCENT, 即 TOP n PERCENT, 則表示查詢前面 n 百分比的記錄, 此時 n 的值可以從 0 到 100。 下面範例可以查詢書籍資料表的前 2 筆記錄: TOP n 與 TOP n PERCENT 下面範例則是查詢書籍資料表的前 30% 的記錄: 需結合 ORDER BY 子句的 WITH TIES WITH TIES 是平手的意思, 當要顯示的資料在排序時有平手的狀況時, 則一併顯示出來 (排序的方式要用 ORDER BY子句來指定, 請參閱 9-7 節)。 底下我們用兩個範例讓各位比較一下是否使用 WITH TIES 的差別: 需結合 ORDER BY 子句的 WITH TIES 需結合 ORDER BY 子句的 WITH TIES 上述兩組敘述的意思都是先將書籍資料表的記錄按價格欄位由小到大排序之後, 再顯示前 3 筆記錄。 首先來看看資料排列後, 前幾筆資料的狀況如下: 需結合 ORDER BY 子句的 WITH TIES 使用「TOP 3」的第一組敘述只列出 3 筆, 所以只列出了表中的前 3 筆資料, 於
文档评论(0)