SQL-Server-2005基礎(chǔ)教程_第1頁
SQL-Server-2005基礎(chǔ)教程_第2頁
SQL-Server-2005基礎(chǔ)教程_第3頁
SQL-Server-2005基礎(chǔ)教程_第4頁
SQL-Server-2005基礎(chǔ)教程_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第1頁 huanyingni SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第2頁 第第7章章 操縱數(shù)據(jù)操縱數(shù)據(jù) SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 教學(xué)目標(biāo) 教學(xué)過程 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第3頁 教學(xué)目標(biāo)教學(xué)目標(biāo) l理解操縱數(shù)據(jù)需要解決的問題理解操縱數(shù)據(jù)需要解決的問題 l掌握使用掌握使用INSERT語句插入數(shù)據(jù)語句插入數(shù)據(jù) l掌握使

2、用掌握使用UPDATE語句更新數(shù)據(jù)語句更新數(shù)據(jù) l掌握使用掌握使用DELETE語句刪除數(shù)據(jù)語句刪除數(shù)據(jù) l掌握使用掌握使用SELECT語句檢索數(shù)據(jù)語句檢索數(shù)據(jù) l理解分組、子查詢、連接、集合運(yùn)算、理解分組、子查詢、連接、集合運(yùn)算、 CTE等檢索特點(diǎn)等檢索特點(diǎn) l理解數(shù)據(jù)加密的方式和特點(diǎn)理解數(shù)據(jù)加密的方式和特點(diǎn) SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第4頁 教學(xué)過程教學(xué)過程 7.1 概述概述 7.2 插入數(shù)據(jù)插入數(shù)據(jù) 7.3 更新數(shù)據(jù)更新數(shù)據(jù) 7.4 刪除數(shù)據(jù)刪除數(shù)據(jù) 7.5 檢索操作概述檢索操作概述 7.6 使用使用SELECT子句檢索

3、數(shù)據(jù)子句檢索數(shù)據(jù) 7.7 排序排序 7.8 使用使用WHERE子句選擇數(shù)據(jù)子句選擇數(shù)據(jù) 7.9 聚合技術(shù)聚合技術(shù) 7.10 分組技術(shù)分組技術(shù) 7.11 連接技術(shù)連接技術(shù) 7.12 子查詢技術(shù)子查詢技術(shù) 7.13 集合運(yùn)算技術(shù)集合運(yùn)算技術(shù) 7.14 公用表表達(dá)式公用表表達(dá)式 7.15 PIVOT和和UNPIVOT 7.16 加密表中數(shù)據(jù)加密表中數(shù)據(jù) SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第5頁 7.1 概述概述 l表創(chuàng)建之后,表只是一個(gè)空表。表創(chuàng)建之后,表只是一個(gè)空表。 l如何向表中添加數(shù)據(jù)呢?如果表中已有數(shù)據(jù)了,如何向表中添加數(shù)據(jù)呢?如

4、果表中已有數(shù)據(jù)了, 但是數(shù)據(jù)不合適或不正確,那么如何更新這些數(shù)但是數(shù)據(jù)不合適或不正確,那么如何更新這些數(shù) 據(jù)呢?如果表中的數(shù)據(jù)不再需要了,那么如何刪據(jù)呢?如果表中的數(shù)據(jù)不再需要了,那么如何刪 除這些過時(shí)的數(shù)據(jù)呢?如何按照用戶需要,將表除這些過時(shí)的數(shù)據(jù)呢?如何按照用戶需要,將表 中的數(shù)據(jù)檢索出來呢?這些問題都是數(shù)據(jù)操縱問中的數(shù)據(jù)檢索出來呢?這些問題都是數(shù)據(jù)操縱問 題。題。 l用戶可以使用用戶可以使用INSERT、UPDATE、DELETE、 SELECT等語句來解決這些數(shù)據(jù)操縱問題。等語句來解決這些數(shù)據(jù)操縱問題。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 20

5、21年5月5日第6頁 7.2 插入數(shù)據(jù)插入數(shù)據(jù) l表創(chuàng)建之后往往只是一個(gè)空表,因此向表中插入表創(chuàng)建之后往往只是一個(gè)空表,因此向表中插入 數(shù)據(jù)是在表結(jié)構(gòu)創(chuàng)建之后,首先需要執(zhí)行的操作。數(shù)據(jù)是在表結(jié)構(gòu)創(chuàng)建之后,首先需要執(zhí)行的操作。 向表中插入數(shù)據(jù),應(yīng)該使用向表中插入數(shù)據(jù),應(yīng)該使用INSERT語句。該語語句。該語 句包括了兩個(gè)子句,即句包括了兩個(gè)子句,即INSERT子句和子句和VALUES 子句。子句。INSERT子句指定要插入數(shù)據(jù)的表名或視子句指定要插入數(shù)據(jù)的表名或視 圖名稱,它可以包含表或視圖中列的列表。圖名稱,它可以包含表或視圖中列的列表。 VALUES子句指定將要插入的數(shù)據(jù)。子句指定將要插入的

6、數(shù)據(jù)。 l一般地,使用一般地,使用INSERT語句一次只能插入一行數(shù)語句一次只能插入一行數(shù) 據(jù)。據(jù)。INSERT語句的基本語法形式如下所示:語句的基本語法形式如下所示: INSERT INTO table_or_view_name (column_list) VALUES (expression) SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第7頁 7.3 更新數(shù)據(jù)更新數(shù)據(jù) l可以使用可以使用UPDATE語句更新表中已經(jīng)存在的數(shù)據(jù)。語句更新表中已經(jīng)存在的數(shù)據(jù)。 UPDATE語句既可以一次更新一行數(shù)據(jù),也可以一次更新語句既可以一次更新一行數(shù)據(jù),

7、也可以一次更新 許多行,甚至可以一次更新表中的全部數(shù)據(jù)行。許多行,甚至可以一次更新表中的全部數(shù)據(jù)行。 l在在UPDATE語句中,使用語句中,使用WHERE子句指定要更新的數(shù)據(jù)子句指定要更新的數(shù)據(jù) 行滿足的基本條件,使用行滿足的基本條件,使用SET子句給出新的數(shù)據(jù)。新數(shù)據(jù)子句給出新的數(shù)據(jù)。新數(shù)據(jù) 既可以是常量,也可以是指定的表達(dá)式。既可以是常量,也可以是指定的表達(dá)式。 lUPDATE語句的基本語法形式如下:語句的基本語法形式如下: UPDATE table_or_view_name SET column_name = expression, WHERE search_condition SQL

8、Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第8頁 7.4 刪除數(shù)據(jù)刪除數(shù)據(jù) l當(dāng)表中的數(shù)據(jù)不再需要時(shí),可以刪除。一當(dāng)表中的數(shù)據(jù)不再需要時(shí),可以刪除。一 般情況下,使用般情況下,使用DELETE語句刪除數(shù)據(jù)。語句刪除數(shù)據(jù)。 DELETE語句可以從一個(gè)表中刪除一行或語句可以從一個(gè)表中刪除一行或 多行數(shù)據(jù)。多行數(shù)據(jù)。 l刪除數(shù)據(jù)的刪除數(shù)據(jù)的DELEE語句的基本語法形式如語句的基本語法形式如 下:下: DELETE FROM table_or_name WHERE search_condition SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出

9、版社清華大學(xué)出版社 2021年5月5日第9頁 7.5 檢索操作概述檢索操作概述 l如果我們希望檢索表中數(shù)據(jù),可以使用如果我們希望檢索表中數(shù)據(jù),可以使用 SELECT語句。在語句。在SELECT語句中,有三個(gè)語句中,有三個(gè) 基本的組成部分:基本的組成部分:SELECT子句、子句、FROM子子 句和句和WHERE子句。子句。 lSELECT子句用于指定將要檢索的列名稱,子句用于指定將要檢索的列名稱, FROM子句指定將要檢索的對象,子句指定將要檢索的對象,WHERE 子句則用于指定數(shù)據(jù)應(yīng)該滿足的條件。子句則用于指定數(shù)據(jù)應(yīng)該滿足的條件。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社

10、清華大學(xué)出版社 2021年5月5日第10頁 7.6 使用使用SELECT子句檢索數(shù)據(jù)子句檢索數(shù)據(jù) l在在SELECT語句中,可以在語句中,可以在SELECT子句中子句中 選擇指定的數(shù)據(jù)列、使用文字串、改變列選擇指定的數(shù)據(jù)列、使用文字串、改變列 標(biāo)題、執(zhí)行數(shù)據(jù)運(yùn)算、使用標(biāo)題、執(zhí)行數(shù)據(jù)運(yùn)算、使用ALL關(guān)鍵字、關(guān)鍵字、 使用使用DISTINCT關(guān)鍵字等。關(guān)鍵字等。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第11頁 選擇指定的數(shù)據(jù)列選擇指定的數(shù)據(jù)列 l選擇指定的數(shù)據(jù)列是指可以在選擇指定的數(shù)據(jù)列是指可以在SELECT子子 句中指定將要檢索的列名稱。

11、選擇指定的句中指定將要檢索的列名稱。選擇指定的 列名稱要注意幾點(diǎn),第一,這些列名稱應(yīng)列名稱要注意幾點(diǎn),第一,這些列名稱應(yīng) 該與表中定義的列名稱一致,否則就可能該與表中定義的列名稱一致,否則就可能 出錯(cuò)或者得到意想不到的結(jié)果;第二,列出錯(cuò)或者得到意想不到的結(jié)果;第二,列 名稱之間的順序既可以與表中定義的列順名稱之間的順序既可以與表中定義的列順 序相同,也可以不相同;第三,序相同,也可以不相同;第三,SELECT 語句的檢索結(jié)果只是影響數(shù)據(jù)的顯示,對語句的檢索結(jié)果只是影響數(shù)據(jù)的顯示,對 表中數(shù)據(jù)的存儲沒有任何的影響。表中數(shù)據(jù)的存儲沒有任何的影響。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清

12、華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第12頁 使用文字串使用文字串 l通常,直接閱讀通常,直接閱讀SELECT語句的檢索結(jié)果,語句的檢索結(jié)果, 是一件頭疼的事情,因?yàn)轱@示出來的數(shù)據(jù),是一件頭疼的事情,因?yàn)轱@示出來的數(shù)據(jù), 只是一些不連貫的、閱讀性不強(qiáng)的信息。只是一些不連貫的、閱讀性不強(qiáng)的信息。 為了提高為了提高SELECT語句檢索結(jié)果的可讀性,語句檢索結(jié)果的可讀性, 可以通過在可以通過在SELECT關(guān)鍵字后面增加文字關(guān)鍵字后面增加文字 串。通常情況下,使用單引號將文字串引串。通常情況下,使用單引號將文字串引 起來。起來。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社

13、清華大學(xué)出版社 2021年5月5日第13頁 改變列標(biāo)題改變列標(biāo)題 l在默認(rèn)情況下,在數(shù)據(jù)檢索結(jié)果中所顯示在默認(rèn)情況下,在數(shù)據(jù)檢索結(jié)果中所顯示 出來的列標(biāo)題就是在定義表時(shí)使用的列名出來的列標(biāo)題就是在定義表時(shí)使用的列名 稱。但是,在檢索過程中可以根據(jù)用戶的稱。但是,在檢索過程中可以根據(jù)用戶的 需要改變顯示的列標(biāo)題。實(shí)際上,改變列需要改變顯示的列標(biāo)題。實(shí)際上,改變列 標(biāo)題也就是為指定的列定義一個(gè)別名。改標(biāo)題也就是為指定的列定義一個(gè)別名。改 變列標(biāo)題有兩種方法,一種方法是使用等變列標(biāo)題有兩種方法,一種方法是使用等 號號(=),另一種方法是使用,另一種方法是使用AS關(guān)鍵字。關(guān)鍵字。 SQL Server

14、 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第14頁 數(shù)據(jù)運(yùn)算數(shù)據(jù)運(yùn)算 l數(shù)據(jù)運(yùn)算就是指對檢索的數(shù)據(jù)進(jìn)行各種運(yùn)數(shù)據(jù)運(yùn)算就是指對檢索的數(shù)據(jù)進(jìn)行各種運(yùn) 算。也就是說,可以在算。也就是說,可以在SELECT關(guān)鍵字后關(guān)鍵字后 面列出的列項(xiàng)中使用各種運(yùn)算符和函數(shù)。面列出的列項(xiàng)中使用各種運(yùn)算符和函數(shù)。 這些運(yùn)算符和函數(shù)包括算術(shù)運(yùn)算符、數(shù)學(xué)這些運(yùn)算符和函數(shù)包括算術(shù)運(yùn)算符、數(shù)學(xué) 函數(shù)、字符串函數(shù)、日期和時(shí)間函數(shù)、系函數(shù)、字符串函數(shù)、日期和時(shí)間函數(shù)、系 統(tǒng)函數(shù)等。統(tǒng)函數(shù)等。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第15頁

15、使用使用ALL和和DISTINCT關(guān)鍵字關(guān)鍵字 l在在SELECT語句中,可以在語句中,可以在SELECT子句中子句中 通過使用通過使用ALL或或DISTINCT關(guān)鍵字控制查詢關(guān)鍵字控制查詢 結(jié)果集的顯示樣式。結(jié)果集的顯示樣式。ALL關(guān)鍵字表示檢索關(guān)鍵字表示檢索 所有的數(shù)據(jù),包括重復(fù)的數(shù)據(jù)行。所有的數(shù)據(jù),包括重復(fù)的數(shù)據(jù)行。 DISTINCT關(guān)鍵字表示僅僅顯示那些不重復(fù)關(guān)鍵字表示僅僅顯示那些不重復(fù) 的數(shù)據(jù)行,重復(fù)的數(shù)據(jù)行只是顯示一次。的數(shù)據(jù)行,重復(fù)的數(shù)據(jù)行只是顯示一次。 由于由于ALL關(guān)鍵字是默認(rèn)值,所以當(dāng)沒有顯關(guān)鍵字是默認(rèn)值,所以當(dāng)沒有顯 式使用式使用ALL或或DISTINCT關(guān)鍵字時(shí),隱含著

16、關(guān)鍵字時(shí),隱含著 使用使用ALL關(guān)鍵字。關(guān)鍵字。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第16頁 7.7 排序排序 l在使用在使用SELECT語句時(shí),排序是一種常見語句時(shí),排序是一種常見 的操作。排序是指按照指定的列或其他表的操作。排序是指按照指定的列或其他表 達(dá)式對結(jié)果集進(jìn)行排列順序的方式。達(dá)式對結(jié)果集進(jìn)行排列順序的方式。 SELECT語句中的語句中的ORDER BY子句負(fù)責(zé)完子句負(fù)責(zé)完 成排序操作。成排序操作。 l在排序時(shí),既可以按照升序排列,也可以在排序時(shí),既可以按照升序排列,也可以 按照降序排列。關(guān)鍵字按照降序排列。關(guān)鍵字ASC

17、表示升序,表示升序, DESC表示降序,默認(rèn)情況下是升序。表示降序,默認(rèn)情況下是升序。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第17頁 7.8 使用使用WHERE子句選擇數(shù)據(jù)子句選擇數(shù)據(jù) l在在SELECT語句中,語句中,WHERE子句指定將要子句指定將要 搜索的數(shù)據(jù)行的條件。也就是說,只有滿搜索的數(shù)據(jù)行的條件。也就是說,只有滿 足足WHERE子句條件的數(shù)據(jù)行才會出現(xiàn)在結(jié)子句條件的數(shù)據(jù)行才會出現(xiàn)在結(jié) 果集中。果集中。 l這些搜索條件可以分為這些搜索條件可以分為 簡單搜索條件簡單搜索條件 模糊搜索條件模糊搜索條件 復(fù)合搜索條件復(fù)合搜索條件

18、 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第18頁 簡單搜索條件簡單搜索條件 l在在WHERE子句中,簡單搜索條件是指使用子句中,簡單搜索條件是指使用 比較運(yùn)算符、范圍、列表、合并以及取反比較運(yùn)算符、范圍、列表、合并以及取反 等運(yùn)算方式形成的搜索條件。等運(yùn)算方式形成的搜索條件。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第19頁 模糊搜索條件模糊搜索條件 l在檢索字符數(shù)據(jù)時(shí),通常提供的檢索條件是不十在檢索字符數(shù)據(jù)時(shí),通常提供的檢索條件是不十 分準(zhǔn)確的,例如這種搜索條件僅僅是包含、類似分

19、準(zhǔn)確的,例如這種搜索條件僅僅是包含、類似 某種樣式的字符。在某種樣式的字符。在WHERE子句中,可以使用子句中,可以使用 LIKE關(guān)鍵字實(shí)現(xiàn)這種靈活的模糊搜索條件。關(guān)鍵字實(shí)現(xiàn)這種靈活的模糊搜索條件。 lLIKE關(guān)鍵字用于檢索與特定字符串匹配的字符數(shù)關(guān)鍵字用于檢索與特定字符串匹配的字符數(shù) 據(jù)。據(jù)。LIKE關(guān)鍵字后面可以跟一個(gè)列值的一部分而關(guān)鍵字后面可以跟一個(gè)列值的一部分而 不是一個(gè)完整的列值,從而形成不是一個(gè)完整的列值,從而形成LIKE子句。子句。LIKE 子句的語法形式如下:子句的語法形式如下: match_expression NOT LIKE pattern ESCAPE escape_c

20、haracter SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第20頁 復(fù)合搜索條件復(fù)合搜索條件 l在在WHERE子句中可以使用邏輯運(yùn)算符把若子句中可以使用邏輯運(yùn)算符把若 干個(gè)搜索條件合并起來,組成復(fù)雜的復(fù)合干個(gè)搜索條件合并起來,組成復(fù)雜的復(fù)合 搜索條件。搜索條件。 l這些邏輯運(yùn)算符包括這些邏輯運(yùn)算符包括AND,OR和和NOT。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第21頁 7.9 聚合技術(shù)聚合技術(shù) l聚合技術(shù)是指對一組數(shù)據(jù)進(jìn)行聚合運(yùn)算得聚合技術(shù)是指對一組數(shù)據(jù)進(jìn)行聚合運(yùn)算得 到聚合值

21、的過程。在聚合運(yùn)算中主要是使到聚合值的過程。在聚合運(yùn)算中主要是使 用聚合函數(shù)。在用聚合函數(shù)。在Microsoft SQL Server 2005系統(tǒng)中,一般情況下,可以在三個(gè)地系統(tǒng)中,一般情況下,可以在三個(gè)地 方使用聚合函數(shù),即方使用聚合函數(shù),即SELECT子句、子句、 COMPUTE子句和子句和HAVING子句。本節(jié)主要子句。本節(jié)主要 講述如何在講述如何在SELECT子句和子句和COMPUTE子子 句中使用聚合函數(shù),有關(guān)句中使用聚合函數(shù),有關(guān)HAVING子句使用子句使用 聚合函數(shù)的內(nèi)容在下一節(jié)介紹聚合函數(shù)的內(nèi)容在下一節(jié)介紹 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大

22、學(xué)出版社 2021年5月5日第22頁 SELECT子句中的聚合子句中的聚合 l在在SELECT子句中可以使用聚合函數(shù)進(jìn)行運(yùn)算,子句中可以使用聚合函數(shù)進(jìn)行運(yùn)算, 運(yùn)算結(jié)果作為新列出現(xiàn)在結(jié)果集中。在聚合運(yùn)算運(yùn)算結(jié)果作為新列出現(xiàn)在結(jié)果集中。在聚合運(yùn)算 的表達(dá)式中,可以包括列名、常量以及由算術(shù)運(yùn)的表達(dá)式中,可以包括列名、常量以及由算術(shù)運(yùn) 算符連接起來的函數(shù)。算符連接起來的函數(shù)。 l例如,在如圖例如,在如圖7-34所示的示例中,在所示的示例中,在SELECT子子 句中使用聚合函數(shù)計(jì)算了句中使用聚合函數(shù)計(jì)算了Production.Product表表 中的數(shù)據(jù)量以及有關(guān)標(biāo)準(zhǔn)成本的最大值、最小值、中的數(shù)據(jù)量以

23、及有關(guān)標(biāo)準(zhǔn)成本的最大值、最小值、 平均值、標(biāo)準(zhǔn)偏差、方差等。注意平均值、標(biāo)準(zhǔn)偏差、方差等。注意COUNT函數(shù)的函數(shù)的 特點(diǎn)。特點(diǎn)。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第23頁 COMPUTE子句中的聚合子句中的聚合 l需要指出的是,當(dāng)在需要指出的是,當(dāng)在SELECT子句中出現(xiàn)子句中出現(xiàn) 聚合函數(shù)時(shí),結(jié)果集中的數(shù)據(jù)全是聚合值,聚合函數(shù)時(shí),結(jié)果集中的數(shù)據(jù)全是聚合值, 沒有明細(xì)值。這是使用沒有明細(xì)值。這是使用SELECT子句計(jì)算子句計(jì)算 聚合值的缺點(diǎn)。能否解決這種問題呢?能,聚合值的缺點(diǎn)。能否解決這種問題呢?能, 解決問題的方法就是使用解

24、決問題的方法就是使用COMPUTE子句。子句。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第24頁 7.10 分組技術(shù)分組技術(shù) l聚合函數(shù)只能產(chǎn)生一個(gè)單一的匯總數(shù)據(jù),使用聚合函數(shù)只能產(chǎn)生一個(gè)單一的匯總數(shù)據(jù),使用 GROUP BY子句,則可以生成分組的匯總數(shù)據(jù)。子句,則可以生成分組的匯總數(shù)據(jù)。 GROUP BY子句把數(shù)據(jù)組織起來分成組。一般情子句把數(shù)據(jù)組織起來分成組。一般情 況下,可以根據(jù)表中的某一列進(jìn)行分組,通過使況下,可以根據(jù)表中的某一列進(jìn)行分組,通過使 用聚合函數(shù),對每一個(gè)組可以產(chǎn)生聚合值。用聚合函數(shù),對每一個(gè)組可以產(chǎn)生聚合值。 l如果

25、希望過濾某些分組,可以使用如果希望過濾某些分組,可以使用HAVING子句子句 排。分組技術(shù)是指使用排。分組技術(shù)是指使用GROUP BY子句完成分組子句完成分組 操作的技術(shù)。操作的技術(shù)。 l如果在如果在GROUP BY子句中沒有使用子句中沒有使用CUBE或或 ROLLUP關(guān)鍵字,那么表示這種分組技術(shù)是普通關(guān)鍵字,那么表示這種分組技術(shù)是普通 分組技術(shù)。分組技術(shù)。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第25頁 普通分組技術(shù)普通分組技術(shù) lGROUP BY子句、子句、HAVING子句和聚合函子句和聚合函 數(shù)一起完成對每一個(gè)組生成一行和一個(gè)匯數(shù)

26、一起完成對每一個(gè)組生成一行和一個(gè)匯 總值??傊怠?l在使用在使用GROUP BY子句和子句和HAVING子句的子句的 過程中,要求考慮一些條件過程中,要求考慮一些條件 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第26頁 ROLLUP和和CUBE關(guān)鍵字關(guān)鍵字 l在在GROUP BY子句中,可以使用子句中,可以使用ROLLUP或或 CUBE關(guān)鍵字獲得附加的分組數(shù)據(jù),這些附加的關(guān)鍵字獲得附加的分組數(shù)據(jù),這些附加的 分組數(shù)據(jù)是通過各組之間的組合得到的。使用分組數(shù)據(jù)是通過各組之間的組合得到的。使用 ROLLUP關(guān)鍵字可以得到各組的單項(xiàng)組合,但是關(guān)鍵字

27、可以得到各組的單項(xiàng)組合,但是 CUBE關(guān)鍵字可以得到各組之間的任意組合。在關(guān)鍵字可以得到各組之間的任意組合。在 結(jié)果集中,通過組組合起來的組名稱是結(jié)果集中,通過組組合起來的組名稱是NULL, 可以使用可以使用GROUPING函數(shù)來判斷該組是否是經(jīng)過函數(shù)來判斷該組是否是經(jīng)過 組合得到的。實(shí)際上,使用組合得到的。實(shí)際上,使用CUBE關(guān)鍵字可以生關(guān)鍵字可以生 成多維數(shù)據(jù)。成多維數(shù)據(jù)。 l下面,通過一個(gè)示例講述這兩個(gè)關(guān)鍵字的特點(diǎn)。下面,通過一個(gè)示例講述這兩個(gè)關(guān)鍵字的特點(diǎn)。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第27頁 7.11 連接技術(shù)連接技

28、術(shù) l在設(shè)計(jì)表時(shí),為了提高表的設(shè)計(jì)質(zhì)量,經(jīng)在設(shè)計(jì)表時(shí),為了提高表的設(shè)計(jì)質(zhì)量,經(jīng) 常把相關(guān)數(shù)據(jù)分散在不同的表中。但是,常把相關(guān)數(shù)據(jù)分散在不同的表中。但是, 在使用數(shù)據(jù)時(shí),需要把這些數(shù)據(jù)集中在一在使用數(shù)據(jù)時(shí),需要把這些數(shù)據(jù)集中在一 個(gè)查詢語句中。連接技術(shù)可以滿足這種客個(gè)查詢語句中。連接技術(shù)可以滿足這種客 觀需求。觀需求。 l在在Microsoft SQL Server 2005系統(tǒng)中,這系統(tǒng)中,這 種連接操作又可以細(xì)分為交叉連接、內(nèi)連種連接操作又可以細(xì)分為交叉連接、內(nèi)連 接、外連接等。下面分別研究這些連接技接、外連接等。下面分別研究這些連接技 術(shù)。術(shù)。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教

29、程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第28頁 交叉連接交叉連接 l交叉連接也被稱為笛卡爾乘積,返回兩個(gè)交叉連接也被稱為笛卡爾乘積,返回兩個(gè) 表的乘積。在檢索結(jié)果集中,包含了所連表的乘積。在檢索結(jié)果集中,包含了所連 接的兩個(gè)表中所有行的全部組合。接的兩個(gè)表中所有行的全部組合。 l例如,如果對例如,如果對A表和表和B表執(zhí)行交叉連接,表執(zhí)行交叉連接,A 表中有表中有5行數(shù)據(jù),行數(shù)據(jù),B表中有表中有12行數(shù)據(jù),那么行數(shù)據(jù),那么 結(jié)果集中可以有結(jié)果集中可以有60行數(shù)據(jù)。行數(shù)據(jù)。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第29頁 內(nèi)連

30、接內(nèi)連接 l內(nèi)連接把兩個(gè)表中的數(shù)據(jù)連接生成一個(gè)第內(nèi)連接把兩個(gè)表中的數(shù)據(jù)連接生成一個(gè)第3 個(gè)表,在這個(gè)第個(gè)表,在這個(gè)第3個(gè)表中,僅包含那些滿足個(gè)表中,僅包含那些滿足 連接條件的數(shù)據(jù)行。在內(nèi)連接中,使用連接條件的數(shù)據(jù)行。在內(nèi)連接中,使用 INNER JOIN連接運(yùn)算符,并且使用連接運(yùn)算符,并且使用ON關(guān)關(guān) 鍵字指定連接條件。鍵字指定連接條件。 l內(nèi)連接是一種常用的連接方式,如果在內(nèi)連接是一種常用的連接方式,如果在 JOIN關(guān)鍵字前面沒有明確指定連接類型,關(guān)鍵字前面沒有明確指定連接類型, 那么默認(rèn)的連接類型是內(nèi)連接。那么默認(rèn)的連接類型是內(nèi)連接。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大

31、學(xué)出版社清華大學(xué)出版社 2021年5月5日第30頁 外連接外連接 l在外連接中,不僅包括那些滿足條件的數(shù)在外連接中,不僅包括那些滿足條件的數(shù) 據(jù),而且某些表不滿足條件的數(shù)據(jù)也會顯據(jù),而且某些表不滿足條件的數(shù)據(jù)也會顯 示在結(jié)果集中。也就是說,外連接只限制示在結(jié)果集中。也就是說,外連接只限制 其中一個(gè)表的數(shù)據(jù)行,而不限制另外一個(gè)其中一個(gè)表的數(shù)據(jù)行,而不限制另外一個(gè) 表中的數(shù)據(jù)。表中的數(shù)據(jù)。 l在在Microsoft SQL Server 2005系統(tǒng)中,可系統(tǒng)中,可 以使用的以使用的3種外連接關(guān)鍵字,即種外連接關(guān)鍵字,即LEFT OUTER JOIN、RIGHT OUTER JOIN和和 FULL

32、 OUTER JOIN。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第31頁 7.12 子查詢技術(shù)子查詢技術(shù) lSELECT語句可以嵌套在其他許多語句中,這些語句可以嵌套在其他許多語句中,這些 語句包括語句包括SELECT、INSERT、UPDATE或或 DELETE等,這些嵌套的等,這些嵌套的SELECT語句被稱為子語句被稱為子 查詢。當(dāng)一個(gè)查詢依賴于另外一個(gè)查詢結(jié)果時(shí),查詢。當(dāng)一個(gè)查詢依賴于另外一個(gè)查詢結(jié)果時(shí), 那么可以使用子查詢。在某些查詢中,查詢語句那么可以使用子查詢。在某些查詢中,查詢語句 比較復(fù)雜不容易理解,因此為了把這些復(fù)雜的

33、查比較復(fù)雜不容易理解,因此為了把這些復(fù)雜的查 詢語句分解成多個(gè)比較簡單的查詢語句形式時(shí),詢語句分解成多個(gè)比較簡單的查詢語句形式時(shí), 可以使用子查詢方式。可以使用子查詢方式。 l使用子查詢方式完成查詢操作的技術(shù)是子查詢技使用子查詢方式完成查詢操作的技術(shù)是子查詢技 術(shù)。術(shù)。 SQL Server 2005基礎(chǔ)教程基礎(chǔ)教程 清華大學(xué)出版社清華大學(xué)出版社 2021年5月5日第32頁 7.13 集合運(yùn)算技術(shù)集合運(yùn)算技術(shù) l查詢語句的結(jié)果集往往是一個(gè)包含了多行數(shù)據(jù)集查詢語句的結(jié)果集往往是一個(gè)包含了多行數(shù)據(jù)集 合。集合之間可以進(jìn)行并、差、交等運(yùn)算。合。集合之間可以進(jìn)行并、差、交等運(yùn)算。 l在在Microsoft SQL Server 2005系統(tǒng)中,兩個(gè)查系統(tǒng)中,兩個(gè)查 詢語句之間也可以進(jìn)行集合運(yùn)算。其中,詢語句之間也可以進(jìn)行集合運(yùn)算。其中,UNION 運(yùn)算符表示并集運(yùn)算,運(yùn)算符表示并集運(yùn)算,EXCEPT運(yùn)算符從左查詢運(yùn)算符從左查詢 中返回右查詢中沒有找到的重復(fù)值,中返回右查詢

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論