第十章 創(chuàng)建計(jì)算字段
本章介紹如何創(chuàng)建字段,如何從應(yīng)用程序中使用別名引用它們。
10.1 計(jì)算字段
字段 (field): 基本上與列(column)的意思相同嫁蛇,數(shù)據(jù)庫列一般稱為列齿坷,而術(shù)語字段通常用在計(jì)算字段的連接上。對(duì)客戶機(jī)而言狰闪,計(jì)算字段與數(shù)據(jù)列的返回方式相同。
10.2 拼接字段
- 拼接(concatenate) 將值聯(lián)結(jié)到一起構(gòu)成單個(gè)值濒生。
-
分析 1:concat可以將多個(gè)串拼接在一起埋泵,上述例子中,連接了vend_name罪治,(丽声, vend_country,)四個(gè)元素觉义。上述的拼接的結(jié)果實(shí)際上是沒有名字的雁社,可以使用
AS
為結(jié)果設(shè)置一個(gè)別名,例如:
分析2:別名還有其他用途:簡化列名晒骇,在實(shí)際的表名包含不合規(guī)字符時(shí)進(jìn)行重命名等等霉撵。
10.3 執(zhí)行算數(shù)字段
計(jì)算字段的另一個(gè)常見用途是對(duì)檢索結(jié)果進(jìn)行算術(shù)運(yùn)算,例
SELECT a_column * b_column AS result from t1
洪囤⊥狡拢可以使用的運(yùn)算符還包括:+
,-
,/
等。在mysql中可以直接利用select 語句來檢測計(jì)算結(jié)果瘤缩,例如:
SELECT Now(); SELECT 2*3; SELECT Rtrim('abv');
等喇完。
第十一章 使用數(shù)據(jù)處理函數(shù)
本章介紹什么是函數(shù),mysql支持何種函數(shù)剥啤,以及如何使用函數(shù)锦溪。
11.1 函數(shù)
與其他大多數(shù)計(jì)算機(jī)語言一樣奄喂,SQL語言提供了函數(shù)來處理數(shù)據(jù),但是需要注意的是各DBMS所提供的函數(shù)各有特點(diǎn)海洼,即使是相同功能的函數(shù)跨新,使用方式和返回?cái)?shù)據(jù)的格式也不一定相同。因此函數(shù)并不具備高可移植性坏逢。mysql隨著版本的迭代域帐,支持的函數(shù)在不斷豐富。
- 在客戶端命令行中是整,可以使用
HELP FUNCTIONS
來查看當(dāng)前版本支持哪些函數(shù)肖揣。
11.2 使用函數(shù)
大多數(shù)SQL支持一下幾個(gè)類型的函數(shù):
- 文本處理函數(shù):對(duì)字符本身進(jìn)行處理
-
日期與時(shí)間處理函數(shù):日期與時(shí)間采用特殊的數(shù)據(jù)格式進(jìn)行存儲(chǔ)以便快速進(jìn)行排序與過濾,以及節(jié)省物理存儲(chǔ)空間浮入。常用的日期與時(shí)間處理函數(shù)如下圖所示:
注意:不同格式的日期時(shí)間不能直接比較龙优,例如
Now()
函數(shù)返回的內(nèi)容包括日期和時(shí)間,它不能與'2018-08-26'
直接比較事秀,后者屬于一個(gè)日期彤断,不包括時(shí)間。應(yīng)該用Date(Now())
與'2018-08-26'
比較易迹。-
數(shù)值處理函數(shù):一般用于代數(shù)宰衙,三角或幾何運(yùn)算,這是DBMS最一致的函數(shù)睹欲。常用函數(shù)如下圖所示:
第十二章:匯總數(shù)據(jù)
本章介紹什么是聚集函數(shù)(或譯為聚合函數(shù))供炼,如何利用它來匯總數(shù)據(jù)。
12.1 聚集函數(shù)
聚集函數(shù)(aggregate function):運(yùn)行在行組上窘疮,計(jì)算和返回單個(gè)值的函數(shù)袋哼。
- AVG函數(shù):計(jì)算表中相關(guān)的所有列的平均值
- COUNT函數(shù):用于統(tǒng)計(jì)表中行的數(shù)目或符合要求的行的數(shù)目。其中COUNT(*)可以將空行統(tǒng)計(jì)在內(nèi)闸衫,COUNT(column)會(huì)自動(dòng)過濾值為NULL的行涛贯。
- MAX函數(shù):返回列中的最大值。
- MIN函數(shù):返回列中的最小值楚堤。
- SUM函數(shù):返回指定列值的總和疫蔓。
12.2 聚集不同的值
對(duì)上述的5個(gè)聚集函數(shù),默認(rèn)是對(duì)所有行進(jìn)行操作身冬,可以通過指定DISTINCT關(guān)鍵字的方式過濾重復(fù)行。
12.3 組合聚集函數(shù)
SELECT 語句可以根據(jù)需要包含多個(gè)聚集函數(shù):