投稿:mdxy-dxy 字體:[增加 減小] 類型:轉載 時間:2016-06-04 我要評論
這篇文章主要介紹了SQL Sever查詢語句大全集錦,需要的朋友可以參考下一、 簡單查詢
簡單的Transact-SQL查詢只包括選擇列表、FROM子句和WHERE子句。它們分別說明所查詢列、查詢的
表或視圖、以及搜索條件等。
例如,下面的語句查詢testtable表中姓名為“張三”的nickname字段和email字段。
代碼:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='張三'
選擇列表(select_list)指出所查詢列,它可以是一組列名列表、星號、表達式、變量(包括局部變量和全局變量)等構成。
1、選擇所有列
例如,下面語句顯示testtable表中所有列的數據:
代碼:SELECT * FROM testtable
2、選擇部分列並指定它們的顯示次序
查詢結果集合中數據的排列順序與選擇列表中所指定的列名排列順序相同。
例如:
代碼:SELECT nickname,email FROM testtable
3、更改列標題
在選擇列表中,可重新指定列標題。定義格式為:
列標題=列名
列名 列標題
如果指定的列標題不是標准的標識符格式時,應使用引號定界符,例如,下列語句使用漢字顯示列
標題:
代碼:SELECT 昵稱=nickname,電子郵件=email
4、刪除重復行
SELECT語句中使用ALL或DISTINCT選項來顯示表中符合條件的所有行或刪除其中重復的數據行,默認
為ALL。使用DISTINCT選項時,對於所有重復的數據行在SELECT返回的結果集合中只保留一行。
5、限制返回的行數
使用TOP n [PERCENT]選項限制返回的數據行數,TOP n說明返回n行,而TOP n PERCENT時,說明n是
表示一百分數,指定返回的行數等於總行數的百分之幾。
例如:
代碼:SELECT TOP 2 * FROM `testtable`
代碼:SELECT TOP 20 PERCENT * FROM `testtable`
(二) FROM子句
FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。在FROM子句中最多可指定256個表或視圖,
它們之間用逗號分隔。
在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列
所屬的表或視圖。例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應
使用下面語句格式加以限定:
代碼:SELECT `username`,citytable.cityid
FROM `usertable`,`citytable`
WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下兩種格式為表或視圖指定別名:
代碼:表名 as 別名
表名 別名例如上面語句可用表的別名格式表示為:
代碼:SELECT `username`,b.cityid
FROM usertable a,citytable b
WHERE a.cityid=b.cityidSELECT不僅能從表或視圖中檢索數據,它還能夠從其它查詢語句所返回的結果集合中查詢數據。
例如:
代碼:SELECT a.au_fname+a.au_lname
FROM authors a,titleauthor ta
(SELECT `title_id`,`title`
FROM `titles`
WHERE ` ytd_sales`>10000
) AS t
WHERE a.au_id=ta.au_id
AND ta.title_id=t.title_id此例中,將SELECT返回的結果集合給予一別名t,然後再從中檢索數據。
(三) 使用WHERE子句設置查詢條件
WHERE子句設置查詢條件,過濾掉不需要的數據行。例如下面語句查詢年齡大於20的數據:
代碼:SELECT * FROM usertable WHERE age>20 WHERE子句可包括各種條件運算符:
比較運算符(大小比較):>、>=、=、、!>、!=10 AND age
代碼:SELECT * FROM `usertable` ORDER BY `age` DESC,`userid` ASC另外,可以根據表達式進行排序。
二、 聯合查詢
UNION運算符可以將兩個或兩個以上上SELECT語句的查詢結果集合合並成一個結果集合顯示,即執行聯
合查詢。
UNION的語法格式為:
代碼:select_statement
UNION [ALL] selectstatement
[UNION [ALL] selectstatement][…n]其中selectstatement為待聯合的SELECT查詢語句。
ALL選項表示將所有行合並到結果集合中。不指定該項時,被聯合查詢結果集合中的重復行將只保留一行。
聯合查詢時,查詢結果的列標題為第一個查詢語句的列標題。因此,要定義列標題必須在第一個查詢語
句中定義。要對聯合查詢結果排序時,也必須使用第一查詢語句中的列名、列標題或者列序號。
在使用UNION 運算符時,應保證每個聯合查詢語句的選擇列表中有相同數量的表達式,並且每個查詢選
擇表達式應具有相同的數據類型,或是可以自動將它們轉換為相同的數據類型。在自動轉換時,對於數值類
型,系統將低精度的數據類型轉換為高精度的數據類型。
在包括多個查詢的UNION語句中,其執行順序是自左至右,使用括號可以改變這一執行順序。例如:
查詢1 UNION (查詢2 UNION 查詢3)
三、連接查詢
一個表中。當檢索數據時,通過連接操作查詢出存放在多個表中的不同實體的信息。連接操作給用戶帶
來很大的靈活性,他們可以在任何時候增加新的數據類型。為不同實體創建新的表,爾後通過連接進行
查詢。
將連接操作與WHERE子句中的搜索條件區分開來。所以,在Transact-SQL中推薦使用這種方法。
代碼:FROM join_table join_type join_table [ON (join_condition)]其中join_table指出參與連接操作的表名,連接可以對同一個表操作,也可以對多表操作,對同一個表操作的連接又稱做自連接。
join_type 指出連接類型,可分為三種:內連接、外連接和交叉連接。
和全外連接(FULL OUTER JOIN或FULL JOIN)三種。與內連接不同的是,外連接不只列出與連接條件相匹配的行,而是列出左表(左外連接時)、右表(右外連接時)或兩個表(全外連接時)中所有符合搜索條件的數據行。
代碼:SELECT p1.pub_id,p2.pub_id,p1.pr_info
FROM pub_info AS p1 INNER JOIN pub_info AS p2
ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)(一)內連接
內連接查詢操作列出與連接條件匹配的數據行,它使用比較運算符比較被連接列的列值。
1、等值連接:在連接條件中使用等於號(=)運算符比較被連接列的列值,其查詢結果中列出被連接表中的所有列,包括其中的重復列。
2、不等連接:在連接條件使用除等於運算符以外的其它比較運算符比較被連接的列的列值。這些運算符包括>、>=、、!。
3、自然連接:在連接條件中使用等於(=)運算符比較被連接列的列值,但它使用選擇列表指出查詢結果集合中所包括的列,並刪除連接表中的重復列。
例,下面使用等值連接列出authors和publishers表中位於同一城市的作者和出版社:
代碼:SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city又如使用自然連接,在選擇列表中刪除authors 和publishers 表中重復列(city和state):
代碼:SELECT a.*,p.pub_id,p.pub_name,p.country
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
(二)外連接內連接時,返回查詢結果集合中的僅是符合查詢條件( WHERE 搜索條件或 HAVING 條件)和連接條件
的行。而采用外連接時,它返回到查詢結果集合中的不僅包含符合連接條件的行,而且還包括左表(左外連接時)、右表(右外連接時)或兩個邊接表(全外連接)中的所有數據行。
如下面使用左外連接將論壇內容和作者信息連接起來:
代碼:SELECT a.*,b.* FROM `luntan` LEFT JOIN usertable as b
ON a.username=b.username下面使用全外連接將city表中的所有作者以及user表中的所有作者,以及他們所在的城市:
代碼:SELECT a.*,b.*
FROM city as a FULL OUTER JOIN user as b
ON a.username=b.username
交叉連接不帶WHERE 子句,它返回被連接的兩個表所有數據行的笛卡爾積,返回到結果集合中的數
據行數等於第一個表中符合查詢條件的數據行數乘以第二個表中符合查詢條件的數據行數。
例,titles表中有6類圖書,而publishers表中有8家出版社,則下列交叉連接檢索到的記錄數將等
於6*8=48行。
代碼:SELECT `type`,`pub_name`
FROM `titles` CROSS JOIN `publishers`
ORDER BY `type`
SQL核心語句(非常實用的幾個技巧)
_ArticleContent1_lblContent>插入數據
向表中添加一個新記錄,你要使用SQL INSERT 語句。這裡有一個如何使用這種語句的例子:
代碼:INSERT mytable (mycolumn) VALUES (‘some data') 這個語句把字符串'some data'插入表mytable的mycolumn字段中。將要被插入數據的字段的名字在第一個括號中指定,實際的數據在第二個括號中給出。
INSERT 語句的完整句法如下:
代碼:INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT VALUES |
Values_list | select_statement} 如果一個表有多個字段,通過把字段名和字段值用逗號隔開,你可以向所有的字段中插入數據。假設表mytable有三個字段first_column,second_column,和third_column。
下面的INSERT語句添加了一條三個字段都有值的完整記錄:
代碼:INSERT mytable (first_column,second_column,third_column)
VALUES (‘some data','some more data','yet more data') 注意
你可以使用INSERT語句向文本型字段中插入數據。但是,如果你需要輸入很長的字符串,你應該使用WRITETEXT語句。這部分內容對本書來說太高級了,因此不加討論。要了解更多的信息,請參考Microsoft SQL Sever 的文檔。
如果你在INSERT 語句中只指定兩個字段和數據會怎麼樣呢?換句話說,你向一個表中插入一條新記錄,但有一個字段沒有提供數據。在這種情況下,有下面的四種可能:
如果該字段有一個缺省值,該值會被使用。例如,假設你插入新記錄時沒有給字段third_column提供數據,而這個字段有一個缺省值'some value'。在這種情況下,當新記錄建立時會插入值'some value'。
如果該字段可以接受空值,而且沒有缺省值,則會被插入空值。
如果該字段不能接受空值,而且沒有缺省值,就會出現錯誤。你會收到錯誤信息:
The column in table mytable may not be null.
最後,如果該字段是一個標識字段,那麼它會自動產生一個新值。當你向一個有標識字段的表中插入新記錄時,只要忽略該字段,標識字段會給自己賦一個新值。
注意
向一個有標識字段的表中插入新記錄後,你可以用SQL變量@@identity來訪問新記錄
的標識字段的值。考慮如下的SQL語句:
[code]INSERT anothertable(another_first,another_second)
VALUES(@@identity,'some value') 如果表mytable有一個標識字段,該字段的值會被插入表anothertable的another_first字段。這是因為變量@@identity總是保存最後一次插入標識字段的值。
字段another_first應該與字段first_column有相同的數據類型。但是,字段another_first不能是應該標識字段。Another_first字段用來保存字段first_column的值。
刪除記錄
要從表中刪除一個或多個記錄,需要使用SQL DELETE語句。你可以給DELETE 語句提供WHERE 子句。WHERE子句用來選擇要刪除的記錄。例如,下面的這個DELETE語句只刪除字段first_column的值等於'Delete Me'的記錄:
代碼:DELETE [FROM] {table_name|view_name} [WHERE clause] 在SQL SELECT 語句中可以使用的任何條件都可以在DELECT 語句的WHERE子句中使用。例如,下面的這個DELETE語句只刪除那些first_column字段的值為'goodbye'或second_column字段的值為'so long'的記錄:
注意
為什麼要用TRUNCATE TABLE 語句代替DELETE語句?當你使用TRUNCATE TABLE語句時,記錄的刪除是不作記錄的。也就是說,這意味著TRUNCATE TABLE 要比DELETE快得多。
更新記錄
要修改表中已經存在的一條或多條記錄,應使用SQL UPDATE語句。同DELETE語句一樣,UPDATE語句可以使用WHERE子句來選擇更新特定的記錄。請看這個例子:
下面是UPDATE語句的完整句法:
{column_list|variable_list|variable_and_column_list}
[,{column_list2|variable_list2|variable_and_column_list2}…
[,{column_listN|variable_listN|variable_and_column_listN}]]
[WHERE clause] 注意
你可以對文本型字段使用UPDATE語句。但是,如果你需要更新很長的字符串,應使用UPDATETEXT語句。這部分內容對本書來說太高級了,因此不加討論。要了解更多的信息,請參考Microsoft SQL Sever 的文檔。
如果你不提供WHERE子句,表中的所有記錄都將被更新。有時這是有用的。例如,如果你想把表titles中的所有書的價格加倍,你可以使用如下的UPDATE 語句:
你也可以同時更新多個字段。例如,下面的UPDATE語句同時更新first_column,second_column,和third_column這三個字段:
Second_column='Updated!'
Third_column='Updated!'
WHERE first_column='Update Me1' 技巧
SQL忽略語句中多余的空格。你可以把SQL語句寫成任何你最容易讀的格式。
用SELECT 創建記錄和表
你也許已經注意到,INSERT 語句與DELETE語句和UPDATE語句有一點不同,它一次只操作一個記錄。然而,有一個方法可以使INSERT 語句一次添加多個記錄。要作到這一點,你需要把INSERT 語句與SELECT 語句結合起來,象這樣:
SELECT another_first,another_second
FROM anothertable
WHERE another_first='Copy Me!' 這個語句從anothertable拷貝記錄到mytable.只有表anothertable中字段another_first的值為'Copy Me!'的記錄才被拷貝。
當為一個表中的記錄建立備份時,這種形式的INSERT 語句是非常有用的。在刪除一個表中的記錄之前,你可以先用這種方法把它們拷貝到另一個表中。
如果你需要拷貝整個表,你可以使用SELECT INTO 語句。例如,下面的語句創建了一個名為newtable的新表,該表包含表mytable的所有數據:
FROM mytable
WHERE second_column='Copy Me!' 使用SQL修改已經建立的表是很困難的。例如,如果你向一個表中添加了一個字段,沒有容易的辦法來去除它。另外,如果你不小心把一個字段的數據類型給錯了,你將沒有辦法改變它。但是,使用本節中講述的SQL語句,你可以繞過這兩個問題。
例如,假設你想從一個表中刪除一個字段。使用SELECT INTO 語句,你可以創建該表的一個拷貝,但不包含要刪除的字段。這使你既刪除了該字段,又保留了不想刪除的數據。
如果你想改變一個字段的數據類型,你可以創建一個包含正確數據類型字段的新表。創建好該表後,你就可以結合使用UPDATE語句和SELECT 語句,把原來表中的所有數據拷貝到新表中。通過這種方法,你既可以修改表的結構,又能保存原有的數據。
_ArticleContent1_lblContent>插入數據
向表中添加一個新記錄,你要使用SQL INSERT 語句。這裡有一個如何使用這種語句的例子:
INSERT 語句的完整句法如下:
代碼:INSERT mytable (first_column,second_column,third_column) VALUES (‘some data','some more data','yet more data')
[code]
注意
你可以使用INSERT語句向文本型字段中插入數據。但是,如果你需要輸入很長的字符串,你應該使用WRITETEXT語句。這部分內容對本書來說太高級了,因此不加討論。要了解更多的信息,請參考Microsoft SQL Sever 的文檔。
如果你在INSERT 語句中只指定兩個字段和數據會怎麼樣呢?換句話說,你向一個表中插入一條新記錄,但有一個字段沒有提供數據。在這種情況下,有下面的四種可能:
如果該字段有一個缺省值,該值會被使用。例如,假設你插入新記錄時沒有給字段third_column提供數據,而這個字段有一個缺省值'some value'。在這種情況下,當新記錄建立時會插入值'some value'。
如果該字段可以接受空值,而且沒有缺省值,則會被插入空值。
如果該字段不能接受空值,而且沒有缺省值,就會出現錯誤。你會收到錯誤信息:
The column in table mytable may not be null.
最後,如果該字段是一個標識字段,那麼它會自動產生一個新值。當你向一個有標識字段的表中插入新記錄時,只要忽略該字段,標識字段會給自己賦一個新值。
注意
向一個有標識字段的表中插入新記錄後,你可以用SQL變量@@identity來訪問新記錄
的標識字段的值。考慮如下的SQL語句:
[code]INSERT mytable (first_column) VALUES(‘some value')
字段another_first應該與字段first_column有相同的數據類型。但是,字段another_first不能是應該標識字段。Another_first字段用來保存字段first_column的值。
刪除記錄
要從表中刪除一個或多個記錄,需要使用SQL DELETE語句。你可以給DELETE 語句提供WHERE 子句。WHERE子句用來選擇要刪除的記錄。例如,下面的這個DELETE語句只刪除字段first_column的值等於'Delete Me'的記錄:
注意
為什麼要用TRUNCATE TABLE 語句代替DELETE語句?當你使用TRUNCATE TABLE語句時,記錄的刪除是不作記錄的。也就是說,這意味著TRUNCATE TABLE 要比DELETE快得多。
更新記錄
要修改表中已經存在的一條或多條記錄,應使用SQL UPDATE語句。同DELETE語句一樣,UPDATE語句可以使用WHERE子句來選擇更新特定的記錄。請看這個例子:
下面是UPDATE語句的完整句法:
{column_list|variable_list|variable_and_column_list}
[,{column_list2|variable_list2|variable_and_column_list2}…
[,{column_listN|variable_listN|variable_and_column_listN}]]
[WHERE clause] 注意
你可以對文本型字段使用UPDATE語句。但是,如果你需要更新很長的字符串,應使用UPDATETEXT語句。這部分內容對本書來說太高級了,因此不加討論。要了解更多的信息,請參考Microsoft SQL Sever 的文檔。
如果你不提供WHERE子句,表中的所有記錄都將被更新。有時這是有用的。例如,如果你想把表titles中的所有書的價格加倍,你可以使用如下的UPDATE 語句:
你也可以同時更新多個字段。例如,下面的UPDATE語句同時更新first_column,second_column,和third_column這三個字段:
Second_column='Updated!'
Third_column='Updated!'
WHERE first_column='Update Me1' 技巧
SQL忽略語句中多余的空格。你可以把SQL語句寫成任何你最容易讀的格式。
用SELECT 創建記錄和表
你也許已經注意到,INSERT 語句與DELETE語句和UPDATE語句有一點不同,它一次只操作一個記錄。然而,有一個方法可以使INSERT 語句一次添加多個記錄。要作到這一點,你需要把INSERT 語句與SELECT 語句結合起來,象這樣:
SELECT another_first,another_second
FROM anothertable
WHERE another_first='Copy Me!' 這個語句從anothertable拷貝記錄到mytable.只有表anothertable中字段another_first的值為'Copy Me!'的記錄才被拷貝。
當為一個表中的記錄建立備份時,這種形式的INSERT 語句是非常有用的。在刪除一個表中的記錄之前,你可以先用這種方法把它們拷貝到另一個表中。
如果你需要拷貝整個表,你可以使用SELECT INTO 語句。例如,下面的語句創建了一個名為newtable的新表,該表包含表mytable的所有數據:
FROM mytable
WHERE second_column='Copy Me!' 使用SQL修改已經建立的表是很困難的。例如,如果你向一個表中添加了一個字段,沒有容易的辦法來去除它。另外,如果你不小心把一個字段的數據類型給錯了,你將沒有辦法改變它。但是,使用本節中講述的SQL語句,你可以繞過這兩個問題。
例如,假設你想從一個表中刪除一個字段。使用SELECT INTO 語句,你可以創建該表的一個拷貝,但不包含要刪除的字段。這使你既刪除了該字段,又保留了不想刪除的數據。
如果你想改變一個字段的數據類型,你可以創建一個包含正確數據類型字段的新表。創建好該表後,你就可以結合使用UPDATE語句和SELECT 語句,把原來表中的所有數據拷貝到新表中。通過這種方法,你既可以修改表的結構,又能保存原有的數據。
SQL語法,SQL語句大全,SQL基礎
SQL 語法參考手冊(SQL)/數據類型
2006-07-24 07:42
《SQL 語法參考手冊(SQL)》
DB2 提供了關連式資料庫的查詢語言 SQL (Structured Query Language),是一種非常口語化、既易學又易懂的語法。此一語言幾乎是每個資料庫系統都必須提供的,用以表示關連式的*作,包含了資料的定義(DDL)以及資料的處理(DML)。SQL原來拼成SEQUEL,這語言的原型以“系統 R“的名字在 IBM 聖荷西實驗室完成,經過IBM內部及其他的許多使用性及效率測試,其結果相當令人滿意,並決定在系統R 的技術基礎發展出來 IBM 的產品。而且美國國家標准學會(ANSI)及國際標准化組織(ISO)在1987遵循一個幾乎是以 IBM SQL 為基礎的標准關連式資料語言定義。
一、資料定義 DDL(Data Definition Language)
資料定語言是指對資料的格式和形態下定義的語言,他是每個資料庫要建立時候時首先要面對的,舉凡資料分哪些表格關系、表格內的有什麽欄位主鍵、表格和表格之間互相參考的關系等等,都是在開始的時候所必須規劃好的。
1、建表格:
Create TABLE table_name(
column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],
column2 DATATYPE [NOT NULL],
...)
說明:
DATATYPE --是資料的格式,詳見表。
NUT NULL --可不可以允許資料有空的(尚未有資料填入)。
PRIMARY KEY --是本表的主鍵。
2、更改表格
Alter TABLE table_name
ADD COLUMN column_name DATATYPE
說明:增加一個欄位(沒有刪除某個欄位的語法。
Alter TABLE table_name
ADD PRIMARY KEY (column_name)
說明:更改表得的定義把某個欄位設為主鍵。
Alter TABLE table_name
Drop PRIMARY KEY (column_name)
說明:把主鍵的定義刪除。
3、建立索引
Create INDEX index_name ON table_name (column_name)
說明:對某個表格的欄位建立索引以增加查詢時的速度。
4、刪除
Drop table_name
Drop index_name
二、的資料形態 DATATYPEs
smallint
16 位元的整數。
interger
32 位元的整數。
decimal(p,s)
p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數
點後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。
float
32位元的實數。
double
64位元的實數。
char(n)
n 長度的字串,n不能超過 254。
varchar(n)
長度不固定且其最大長度為 n 的字串,n不能超過 4000。
graphic(n)
和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。這個形態是為
了支援兩個字元長度的字體,例如中文字。
vargraphic(n)
可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。
date
包含了 年份、月份、日期。
time
包含了 小時、分鐘、秒。
timestamp
包含了 年、月、日、時、分、秒、千分之一秒。
三、資料*作 DML (Data Manipulation Language)
資料定義好之後接下來的就是資料的*作。資料的*作不外乎增加資料(insert)、查詢資料(query)、更改資料(update) 、刪除資料(delete)四種模式,以下分 別介紹他們的語法:
1、增加資料:
Insert INTO table_name (column1,column2,...)
valueS ( value1,value2, ...)
說明:
1.若沒有指定column 系統則會按表格內的欄位順序填入資料。
2.欄位的資料形態和所填入的資料必須吻合。
3.table_name 也可以是景觀 view_name。
Insert INTO table_name (column1,column2,...)
Select columnx,columny,... FROM another_table
說明:也可以經過一個子查詢(subquery)把別的表格的資料填入。
2、查詢資料:
基本查詢
Select column1,columns2,...
FROM table_name
說明:把table_name 的特定欄位資料全部列出來
Select *
FROM table_name
Where column1 = xxx
[AND column2 〉 yyy] [OR column3 〈〉 zzz]
說明:
1.'*'表示全部的欄位都列出來。
2.Where 之後是接條件式,把符合條件的資料列出來。
Select column1,column2
FROM table_name
orDER BY column2 [DESC]
說明:ORDER BY 是指定以某個欄位做排序,[DESC]是指從大到小排列,若沒有指明,則是從小到大
排列
組合查詢
組合查詢是指所查詢得資料來源並不只有單一的表格,而是聯合一個以上的
表格才能夠得到結果的。
Select *
FROM table1,table2
Where table1.colum1=table2.column1
說明:
1.查詢兩個表格中其中 column1 值相同的資料。
2.當然兩個表格相互比較的欄位,其資料形態必須相同。
3.一個復雜的查詢其動用到的表格可能會很多個。
整合性的查詢:
Select COUNT (*)
FROM table_name
Where column_name = xxx
說明:
查詢符合條件的資料共有幾筆。
Select SUM(column1)
FROM table_name
說明:
1.計算出總和,所選的欄位必須是可數的數字形態。
2.除此以外還有 AVG() 是計算平均、MAX()、MIN()計算最大最小值的整合性查詢。
Select column1,AVG(column2)
FROM table_name
GROUP BY column1
HAVING AVG(column2) 〉 xxx
說明:
1.GROUP BY: 以column1 為一組計算 column2 的平均值必須和 AVG、SUM等整合性查詢的關鍵字
一起使用。
2.HAVING : 必須和 GROUP BY 一起使用作為整合性的限制。
復合性的查詢
Select *
FROM table_name1
Where EXISTS (
Select *
FROM table_name2
Where conditions )
說明:
1.Where 的 conditions 可以是另外一個的 query。
2.EXISTS 在此是指存在與否。
Select *