搜尋
首頁資料庫mysql教程SQL Server 7.0 入門(三)

SQL Server 7.0 入門(三)

Dec 24, 2016 pm 05:37 PM
serversql

資料排序
       ORDER BY子句依指定的順序排序資料(ordering data)。它要求一個列名字列表或非負整數列表來指定列的位置。分別以ASC代表升序,DESC代表降序,預設為ASC。

限制回傳行的數目
       不使用WHERE子句而限制結果中的行數是可能的。 「TOP」子句能依指定數目或百分值來限制行數。

資料分組與計算聚合函數
       聚合(aggregate)函數計算表中資料的總和。 SQL Server提供以下的聚合函數:
       · AVG 這個函數計算平均值。文法如下:
       AVG ([ALL | DISTINCT] exPRession)
       關鍵字DISTINCT只用來計算不同值的平均值,若有許多重複值,則這些值只計算一次,則預設為ALL。
       Expression可以是涉及一列或多列的算術式。
       · MIN 這個函數找出所提供表達式中的最小值。文法如下:
       MIN (expression)
       · MAX 此函數的功能可在提供的表達式中找出最大值。語法如下:
       MAX (expression)
       則: 如果地字串類型使用MIN和MAX,則輸出依賴於為SQL Server定義的順序。 MIN和MAX不能在位上使用。
    · SUM SUM計算所有資料值的總和。文法如下:
       SUM ([ALL | DISTINCT] expression)
       注意:SUM與AVG只能用於數值資料型態。
    · COUNT 計算表達式值的數目。文法如下:
       COUNT ([ALL | DISTINCT] expression)
       COUNT有另一個用法,而它可以回傳已選取的行數。
       如:SELECT NumRows = COUNT (*) FROM titles
       聚合函數忽略所有空值,但COUNT(*)除外。儘管所有聚合函數的計算都是基於無空值的情況,然而COUNT(*)計算所有的行(包括有空值的行)。

1.  GROUP BY子句
GROUP BY子句在定義的資料的基礎上建立比較小的群組,並且對每個群組進行聚合函數計算。換句話說,它產生每一組的總體訊息。 GROUP BY可以把多於一列當成組合列(Grouping Columns)。它總結組合列中不重複值的資訊。
使用了GROUP BY子句的選擇清單中只能包含以下項目:
· 常數值。
· 組合列。
· 表達式。每個表達式為每組傳回一個值(如聚合函數)。如果一列除了在組合列中外,還在選擇清單中,則它有多個值給組合列的每一個不重複值,這種結構類型是不允許的。
2.  GROUP BY和HAVING
HAVING子句用來在使用GROUP BY子句的查詢中增加資料過濾準則。 HAVING的用法和SELECT中的WHERE子句一樣。在一個包含GROUP BY子句的查詢中使用WHERE子句是可以的。 HAVING和WHERE有相同的語法。 HAVING和WHERE的不同這裡是:
· 在WHERE子句中,在分組進行以前,去除不滿足條件的行,在HAVING子句中,在分組之後條件被應用。
· HAVING可在條件中包含聚合函數,但WHERE不能。
注意:GROUP BY和HAVING子句不能使用文字或圖像資料類型。
3.  COMPUTE BY子句
COMPUTE BY子句可以詳細或總的記錄。它將資料分成較小的群組,然後為每組建立詳細記錄結果資料集(象SELECT),它也可為每組產生總的記錄(象GROUP BY)。
在COMPUT BY中,定義BY子句不是必要的。如果沒有定義BY子句,則認為整個表為一個群組,並且只有兩個結果資料集產生,一個擁有所有詳細記錄,另一個只有一行,它擁有總記錄。
注意:當在COMPUTE中使用BY時,則要求在所有組合列中包含ORDER BY。

Cube和Rollup操作
    CUBE和ROLLUP操作可比簡單的GROUP BY產生更多的聚合值。在產生交叉標籤報告(cross tab reports)時,這些操作非常有用。如果查詢使用n個組合列,則有2n個計算聚合的組合。

從多個表格中存取資料
    我們已討論如何存取單一表格中的資料。從多個表中存取資料也是可能的。從多個表中存取資料稱為連接表(joining a table)。
1、  CROSS JOIN(笛卡兒積)
CROSS JOIN是簡單地、不加任何約束條件地把表組合。 CROSS JOIN後結果的行數是連接前兩個表格行數的乘積。如果對兩個分別有好幾千行的表進行連接,則結果是不可想像的。
2、  INNER JOIN
INNER JOIN是組合兩個表格最常用的方法。 INNER JOIN是基於一個判別式進行的,這個判別式稱為連接條件。連接條件和WHERE子句一起定義。連接條件由兩個表中的列組成,並使用一個比較條件來對列的值進行比較。透過比較的值包含在結果資料集中,以下是Inner JOIN的語法:
語法1:(ANSI 92)
Select
FROM INNER JOIN
ON . = .
語法2:
Select
FROM , WHERE . = .
在FROM 子句中可為表定義別名,並在任何地方都可用別名代替真名。
注意:如果作為連接條件的列中有空值,則空值不能和任何值匹配,因此結果中不包含有空值的行。
3、  Left Outer JOIN
在Inner JOIN中,只有在兩個表中匹配的行才能在結果資料集中。但在Left Outer JOIN中,所有左邊表中的行都出現在結果資料集中,如果左邊表中的某一行在右邊表中沒有匹配的行,則以空值取代右邊表中的值和它連接。
語法如下:(ANSI 92)
Select
FROM LEFT OUTER JOIN
ON . = .
4、 Right Out JOIN和Left Outer JOIN相似,不同的是把右邊的表格作為外部表(所有右邊表格中的行包含在結果資料集中)。
語法如下:
Select
FROM RIGHT OUTER JOIN
ON . = .
5、M中,所有兩個表中的行都包含在結果資料集中。
語法如下:
Select
FROM FULL OUTER JOIN
ON . = .

Case語句
Case的結果值時,可使用Case語句。
    Case語句計算所有定義的條件,並依條件是否為真而回傳結果。
語法如下:
CASE []
WHEN THEN
[ELSE ]
END
Input_expression是任何有效的SQL Server Server或布林表達式。
When_expression是任何有效的SQL Server表達式或布林運算式。這個表達式和Input_expression比較,如果Input_expression沒有定義,則When_expression應該是一個布林表達式。
Result_expression是任何有效的SQL Server表達式。如果When_expression和Input_expression的比較回傳TRUE(如果定義了Input_expression)或When_expression的值為TRUE,則計算表達式,並傳回其結果。否則計算Else_expression中的表達式,並傳回其結果。
例如:
SELECT au_fname,au_lname,
State=CASE state
              '
         END
FROM authors


UNION

       UNION語句將兩個或多個單詞點把兩個或多個單詞點個查詢的結果組合成一個結果集。
       文法如下:
       SELECT
       ALL]
       SELECT
       FROM
       WHERE
       WHERE
       ALL關鍵字指定重複的資料也將包含在最終結果資料集中。如果需要,一個查詢中可以有許多UNION語句。所有Select_list應該有相同數目的列,且是相同或相容的資料型態。

Go指令       Go指令用來標示一個查詢批次(query batch)的結束。查詢批次處理是TSQL語句的集合,這些語句集合在一起執行。 Go與Osql或SQL Server Query Analyzer一起使用。 

 以上就是SQL Server 7.0 入門(三)的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何向新的MySQL用戶授予權限如何向新的MySQL用戶授予權限May 09, 2025 am 12:16 AM

TograntpermissionstonewMySQLusers,followthesesteps:1)AccessMySQLasauserwithsufficientprivileges,2)CreateanewuserwiththeCREATEUSERcommand,3)UsetheGRANTcommandtospecifypermissionslikeSELECT,INSERT,UPDATE,orALLPRIVILEGESonspecificdatabasesortables,and4)

如何在MySQL中添加用戶:逐步指南如何在MySQL中添加用戶:逐步指南May 09, 2025 am 12:14 AM

toadduserInmysqleffect和securly,跟隨台詞:1)USEtheCreateUserStattoDaneWuser,指定thehostandastrongpassword.2)GrantNecterAryAryaryPrivilegesSustherthing privilegesgeStatement,usifementStatement,adheringtotheprinciplelastprefilegege.3)

mysql:添加具有復雜權限的新用戶mysql:添加具有復雜權限的新用戶May 09, 2025 am 12:09 AM

toaddanewuserwithcomplexpermissionsinmysql,loldtheSesteps:1)創建eTheEserWithCreateuser'newuser'newuser'@''localhost'Indedify'pa ssword';。 2)GrantreadAccesstoalltablesin'mydatabase'withGrantSelectOnMyDatabase.to'newuser'@'localhost';。 3)GrantWriteAccessto'

mysql:字符串數據類型和coltrationsmysql:字符串數據類型和coltrationsMay 09, 2025 am 12:08 AM

MySQL中的字符串數據類型包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT,排序規則(Collations)決定了字符串的比較和排序方式。 1.CHAR適合固定長度字符串,VARCHAR適合可變長度字符串。 2.BINARY和VARBINARY用於二進制數據,BLOB和TEXT用於大對像數據。 3.排序規則如utf8mb4_unicode_ci忽略大小寫,適合用戶名;utf8mb4_bin區分大小寫,適合需要精確比較的字段。

MySQL:我應該在Varchars上使用什麼長度?MySQL:我應該在Varchars上使用什麼長度?May 09, 2025 am 12:06 AM

最佳的MySQLVARCHAR列長度選擇應基於數據分析、考慮未來增長、評估性能影響及字符集需求。 1)分析數據以確定典型長度;2)預留未來擴展空間;3)注意大長度對性能的影響;4)考慮字符集對存儲的影響。通過這些步驟,可以優化數據庫的效率和擴展性。

mysql blob:有什麼限制嗎?mysql blob:有什麼限制嗎?May 08, 2025 am 12:22 AM

mysqlblobshavelimits:tinyblob(255bytes),blob(65,535 bytes),中間佈洛布(16,777,215個比例),andlongblob(4,294,967,967,295 bytes).tousebl觀察:1)考慮pperformance impactsandSandStorLageBlobSextern; 2)管理backbackupsandreplication carecration; 3)usepathsinst

MySQL:自動化用戶創建的最佳工具是什麼?MySQL:自動化用戶創建的最佳工具是什麼?May 08, 2025 am 12:22 AM

自動化在MySQL中創建用戶的最佳工具和技術包括:1.MySQLWorkbench,適用於小型到中型環境,易於使用但資源消耗大;2.Ansible,適用於多服務器環境,簡單但學習曲線陡峭;3.自定義Python腳本,靈活但需確保腳本安全性;4.Puppet和Chef,適用於大規模環境,複雜但可擴展。選擇時需考慮規模、學習曲線和集成需求。

mysql:我可以在斑點內搜索嗎?mysql:我可以在斑點內搜索嗎?May 08, 2025 am 12:20 AM

是的,YouCansearchInIdeAblobInMysqlusingsPecificteChniques.1)轉換theblobtoautf-8StringWithConvertFunctionWithConvertFunctionandSearchUsiseLike.2)forCompresseBlysBlobs,useuncompresseblobs,useuncompressbeforeconversion.3)expperformance impperformance imptactSandDataEcoding.4)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。