學(xué)習(xí)SQL的第十一天(11月19日~11月20日)

SQL AVG 函數(shù)

AVG 函數(shù)返回數(shù)值列的平均值。NULL 值不包括在計算中。

SELECT AVG(column_name) FROM table_name

圖片來自W3C

在上表Orders 中,算出OrderPrice的平均值

SELECT AVG(OrderPrice) AS OrderAverage FROM Orders

找到 OrderPrice 值高于 OrderPrice 平均值的客戶

SELECT Customer FROM Orders?

WHERE OrderPrice > (SELECT AVG(OrderPrice) FROM Orders)

SQL COUNT() 函數(shù)(COUNT() 函數(shù)返回匹配指定條件的行數(shù))

SQL COUNT(column_name) 語法

COUNT(column_name) 函數(shù)返回指定列的值的數(shù)目(NULL 不計入)

SELECT COUNT(column_name) FROM table_name

SQL COUNT(*) 語法

COUNT(*) 函數(shù)返回表中的記錄數(shù)

SELECT COUNT(*) FROM table_name

SQL COUNT(DISTINCT column_name) 語法

COUNT(DISTINCT column_name) 函數(shù)返回指定列的不同值的數(shù)目

SELECT COUNT(DISTINCT column_name) FROM table_name

注釋:COUNT(DISTINCT) 適用于 ORACLE 和 Microsoft SQL Server,但是無法用于 Microsoft Access。


舉個栗子時間?

表“Orders”

計算客戶 "Carter" 的訂單數(shù)

SELECT COUNT(Customer)?AS CustomerNilsen FROM Orders WHERE Customer='Carter'

計算 "Orders" 表中不同客戶的數(shù)目

SELECT COUNT(DISTINCT Customer) AS NumberOfCustomer FROM Orders

結(jié)果如下:

SQL FIRST() 函數(shù)

FIRST() 函數(shù)返回指定的字段中第一個記錄的值。

提示:可使用 ORDER BY 語句對記錄進行排序。

SELECT FIRST(column_name) FROM table_name

表"Orders"

查找 "OrderPrice" 列的第一個值

SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders

SQL LAST() 函數(shù)

LAST() 函數(shù)返回指定的字段中最后一個記錄的值。

提示:可使用 ORDER BY 語句對記錄進行排序。

語法同F(xiàn)IRST()

SQL MAX() 函數(shù)和MIN() 函數(shù) (用法同LAST())

MAX 函數(shù)返回一列中的最大值。NULL 值不包括在計算中。

SELECT MAX(column_name) FROM table_name

注釋:MIN 和 MAX 也可用于文本列,以獲得按字母順序排列的最高或最低值

SQL SUM() 函數(shù)

SUM() 函數(shù)

SUM 函數(shù)返回數(shù)值列的總數(shù)(總額)。

SELECT SUM(column_name) FROM table_name

SQL GROUP BY 語句

GROUP BY 語句用于結(jié)合合計函數(shù),根據(jù)一個或多個列對結(jié)果集進行分組。

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

表Orders

查找每個客戶的總金額(總訂單)

SELECT Customer,SUM(OrderPrice) FROM Orders

GROUP BY Customer

GROUP BY 一個以上的列

SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders

GROUP BY Customer,OrderDate

SQL HAVING 子句

在 SQL 中增加 HAVING 子句原因是,WHERE 關(guān)鍵字無法與合計函數(shù)一起使用。

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

HAVING aggregate_function(column_name) operator value

在Orders 表中查找訂單總金額少于 2000 的客戶

SELECT Customer,SUM(OrderPrice) FROM Orders

GROUP BY Customer

HAVING SUM(OrderPrice)<2000

查找客戶 "Bush" 或 "Adams" 擁有超過 1500 的訂單總金額

SELECT Customer,SUM(OrderPrice) FROM Orders

WHERE Customer='Bush' OR Customer='Adams'

GROUP BY Customer

HAVING SUM(OrderPrice)>1500

SQL UCASE() 函數(shù)

UCASE() 函數(shù)? ? ?把字段的值轉(zhuǎn)換為大寫。

SELECT UCASE(column_name) FROM table_name

表Persons

選取 "LastName" 和 "FirstName" 列的內(nèi)容,然后把 "LastName" 列轉(zhuǎn)換為大寫

SELECT UCASE(Lastname),Firstname FROM Persons

SQL LCASE() 函數(shù)??LCASE 函數(shù)把字段的值轉(zhuǎn)換為小寫。

SQL MID() 函數(shù)

MID 函數(shù)用于從文本字段中提取字符。

SELECT MID(column_name,start[,length]) FROM table_name

圖片來自W3C
表 Persons

從 "City" 列中提取前 3 個字符

SELECT MID(City,1,3) AS SmallCity FROM Persons

結(jié)果如下:

SQL LEN() 函數(shù)

LEN 函數(shù)返回文本字段中值的長度。

SELECT LEN(column_name) FROM table_name

取得 "City" 列中值的長度

SELECT LEN(City) AS Lengthofcity FROM table_name

SQL ROUND() 函數(shù)

ROUND 函數(shù)用于把數(shù)值字段舍入為指定的小數(shù)位數(shù)。

SELECT ROUND(column_name,decimals) FROM table_name

注釋:column_name必需。要舍入的字段;decimals必需。規(guī)定要返回的小數(shù)位數(shù)。

表Products

把名稱和價格舍入為最接近的整數(shù)

SELECT ProductName,ROUND(UnitPrice,0) as UnitPrice FROM Products

SQL NOW() 函數(shù)

NOW 函數(shù)返回當前的日期和時間。

提示:如果使用 Sql Server 數(shù)據(jù)庫,用 getdate() 函數(shù)來獲得當前的日期時間。

SELECT NOW() FROM table_name

在Products表中顯示當天的日期所對應(yīng)的名稱和價格

SELECT ProductName,UnitPrice,NOW() AS Perdata FROM Products

結(jié)果

SQL FORMAT() 函數(shù)

FORMAT 函數(shù)用于對字段的顯示進行格式化。

SELECT FORMAT(column_name,format) FROM table_name

顯示每天日期所對應(yīng)的名稱和價格(日期的顯示格式是 "YYYY-MM-DD")

SELECT ProductName,UnitPrice,FORMAT(NOW(),'YYYY-MM-DD') as Perdata

FROM Products



耶~ 終于學(xué)完啦,測試竟然竟然錯了一道 .... sad

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容