mysql必知必會--建立計算字段

 計算字段

存儲在數據庫表中的數據通常不是應用程序所須要的格式。下面舉
幾個例子。
* 若是想在一個字段中既顯示公司名,又顯示公司的地址,但這兩
個信息通常包含在不一樣的表列中。
* 城市、州和郵政編碼存儲在不一樣的列中(應該這樣),但郵件標籤
打印程序卻須要把它們做爲一個恰當格式的字段檢索出來。
* 列數據是大小寫混合的,但報表程序須要把全部數據按大寫表示
出來。
* 物品訂單表存儲物品的價格和數量,但不須要存儲每一個物品的總
價格(用價格乘以數量便可)。爲打印發票,須要物品的總價格。
* 須要根據表數據進行總數、平均數計算或其餘計算。
在上述每一個例子中,存儲在表中的數據都不是應用程序所須要的。
咱們須要直接從數據庫中檢索出轉換、計算或格式化過的數據;而不是
檢索出數據,而後再在客戶機應用程序或報告程序中從新格式化。
這就是計算字段發揮做用的所在了。與前面各章介紹過的列不一樣,
計算字段並不實際存在於數據庫表中。計算字段是運行時在 SELECT 語句
內建立的。數據庫

字段(field) 基本上與列(column)的意思相同,常常互換使
用,不過數據庫列通常稱爲列,而術語字段一般用在計算字段的
鏈接上。
重要的是要注意到,只有數據庫知道 SELECT 語句中哪些列是實際的
表列,哪些列是計算字段。從客戶機(如應用程序)的角度來看,計算
字段的數據是以與其餘列的數據相同的方式返回的。服務器

客戶機與服務器的格式 可在SQL語句內完成的許多轉換
和格式化工做均可以直接在客戶機應用程序內完成。但一
般來講,在數據庫服務器上完成這些操做比在客戶機中完
成要快得多,由於DBMS是設計來快速有效地完成這種處
理的。函數

拼接字段

拼接(concatenate) 將值聯結到一塊兒構成單個值。
解決辦法是把兩個列拼接起來。在MySQL的 SELECT 語句中,可以使用
Concat() 函數來拼接兩個列工具

MySQL的不一樣之處 多數DBMS使用 + 或 || 來實現拼接,
MySQL則使用 Concat() 函數來實現。當把SQL語句轉換成
MySQL語句時必定要把這個區別銘記在心。
學習

Concat() 拼接串,即把多個串鏈接起來造成一個較長的串。
Concat() 須要一個或多個指定的串,各個串之間用逗號分隔。
上面的 SELECT 語句鏈接如下4個元素:測試

  • 存儲在 vend_name 列中的名字;
  • 包含一個空格和一個左圓括號的串;
  • 存儲在 vend_country 列中的國家;
  • 包含一個右圓括號的串。
    從上述輸出中能夠看到, SELECT 語句返回包含上述4個元素的單個列
    (計算字段)。

經過刪除數據右側多餘的空格來整理數據,這能夠
使用MySQL的 RTrim() 函數來完成,以下所示:編碼

Trim 函數 MySQL除了支持 RTrim() (正如剛纔所見,它去掉
串右邊的空格),還支持 LTrim() (去掉串左邊的空格)以及
Trim() (去掉串左右兩邊的空格)。設計

使用別名

從前面的輸出中能夠看到, SELECT 語句拼接地址字段工做得很好。
但此新計算列的名字是什麼呢?實際上它沒有名字,它只是一個值。如
果僅在SQL查詢工具中查看一下結果,這樣沒有什麼很差。可是,一個未
命名的列不能用於客戶機應用中,由於客戶機沒有辦法引用它。
爲了解決這個問題,SQL支持列別名。別名(alias)是一個字段或值
的替換名。別名用 AS 關鍵字賦予。請看下面的 SELECT 語句3d

SELECT 語句自己與之前使用的相同,只不過這裏的語句中計算
字段以後跟了文本 AS vend_title 。它指示SQL建立一個包含
指定計算的名爲 vend_title 的計算字段。從輸出中能夠看到,結果與以
前的相同,但如今列名爲 vend_title ,任何客戶機應用均可以按名引用
這個列,就像它是一個實際的表列同樣blog

別名的其餘用途 別名還有其餘用途。常見的用途包括在實際
的表列名包含不符合規定的字符(如空格)時從新命名它,在
原來的名字含混或容易誤解時擴充它,等等

導出列 別名有時也稱爲導出列(derived column),無論稱爲
什麼,它們所表明的都是相同的東西

執行算術計算

計算字段的另外一常見用途是對檢索出的數據進行算術計算

如何測試計算 SELECT 提供了測試和試驗函數與計算的一個
很好的辦法。雖然 SELECT 一般用來從表中檢索數據,但能夠
省略 FROM 子句以便簡單地訪問和處理表達式。例如, SELECT
3*2; 將返回 6 , SELECT Trim('abc'); 將返回 abc ,而 SELECT
Now() 利用 Now() 函數返回當前日期和時間。經過這些例子,
能夠明白如何根據須要使用 SELECT 進行試驗。

本章介紹了計算字段以及如何建立計算字段。咱們用例子說明了計 算字段在串拼接和算術計算的用途。此外,還學習瞭如何建立和使用別 名,以便應用程序能引用計算字段。

相關文章
相關標籤/搜索