Mysql第十章 - 計算字段

存儲在數(shù)據(jù)庫表中的數(shù)據(jù)一般不是應(yīng)用程序所需要的格式。
下面舉幾個例子

  • 如果想在一個字段中即顯示公司名,有顯示公司的地址,但這個信息一般包含在不同的列中。
  • 城市,州和郵寄編碼存儲在不同的列中,但郵寄標簽打印程序卻需要將它們作為一個恰當格式字段表示出來
  • 列數(shù)據(jù)是大小寫混合的,但報表程序需要把所有數(shù)據(jù)按照大寫表示出來
  • 物品訂單表存儲物品的價格和數(shù)量,但不需要存儲每個物品的總價格。為打印發(fā)票,需要物品的總價格
  • 需要根據(jù)表數(shù)據(jù)進行總數(shù),平均計算或其他計算

字段(filed)

定義:“字段”基本上與列(column)的意思相同,經(jīng)?;Q使用,不過數(shù)據(jù)庫列一般稱為“列”,而術(shù)語字段通常用在計算字段連接上

客戶機與服務(wù)器的格式 :

可在SQL語句內(nèi)完成的許多轉(zhuǎn)換和格式化工作都可以直接在客戶機應(yīng)用程序內(nèi)完成。但一般來說,在數(shù)據(jù)庫服務(wù)器上完成這些操作比在客戶機中完成要快得多,因為DBMS是設(shè)計來快速有效地完成這種處理的。

CONCAT :拼接(concatenate) 將值聯(lián)結(jié)到一起構(gòu)成單個值

在MySQL的SELECT語句中,可使用Concat()函數(shù)來拼接兩個列。

MYsql的不同點:多數(shù)DBMS使用+或||來實現(xiàn)拼接,MySQL則使用Concat()函數(shù)來實現(xiàn)。當把SQL語句轉(zhuǎn)換成MySQL語句時一定要把這個區(qū)別銘記在心

舉例:
輸入:
select CONCAT(p.person_name,'(',p.biz_code ,')') FROM pi_trades.patient p
輸出:


基礎(chǔ).png

分析:
Concat()拼接串,即把多個串連接起來形成一個較長的串,Concat()需要一個或多個指定的串,各個串之間用逗號分隔。

Trim函數(shù)()函數(shù)

定義:

  • RTrim()函數(shù):去掉值右邊的所有空格。
  • LTrim()函數(shù):支持左邊的所有空格。
  • Trim()函數(shù):去掉左右兩邊的空格。
    舉例:
--- 基礎(chǔ)查詢
select  CONCAT(p.person_name,'(',p.biz_code  ,')')  FROM  pi_trades.patient p 
WHERE p.person_name like'%郝忠平%'
--- 去除患者姓名右邊的空格
select  CONCAT(RTRIM(p.person_name),'(',p.biz_code  ,')')  FROM  pi_trades.patient p 
WHERE p.person_name like'%郝忠平%'
--- 去掉患者姓名左邊的空格
select  CONCAT(LTRIM(p.person_name),'(',p.biz_code  ,')')  FROM  pi_trades.patient p 
WHERE p.person_name like'%郝忠平%'

別名(alias)

定義:SQL支持列別名。別名(alias)是一個字段或值的替換名。別名用AS關(guān)鍵字賦予
輸入:
select CONCAT(LTRIM(p.person_name) ,'(',p.biz_code ,')') AS 患者姓名 FROM pi_trades.patient p
WHERE p.person_name like'%郝忠平%'
輸出:


image.png

分析:
SELECT語句本身與以前使用的相同,只不過這里的語句中計算字段之后跟了文本“患者姓名”。它指示SQL創(chuàng)建一個包含指定計算的名為“患者姓名”的計算字段。

執(zhí)行算術(shù)計算

計算字段的另一個常見用途是對檢索出數(shù)據(jù)進行算術(shù)計算,
舉例:
orders表包含收到的所有訂單,orderitems表包含每個訂單中的各項物品。
輸入:檢索訂單號20005中的所有物品

select prod_id,quantity,item_price from orderitems where order_num=20005

輸出:


image.png

item_price列包含訂單中每項物品的單價。如下匯總物品的價格(單價乘以訂購數(shù)量):
輸入:
select prod_id,quantity,item_price ,quantityitem_price AS expanded_price from orderitems where order_num=20005
分析:
輸出中顯示的expanded_price列為一個計算字段,此計算為quantity
item_price??蛻魴C應(yīng)用現(xiàn)在可以使用這個新計算列,就像使用其他列一樣

image.png
?著作權(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)容

  • 計算字段 存儲在數(shù)據(jù)庫表中的數(shù)據(jù)一般不是應(yīng)用程序所需要的格式。下面舉幾個例子。 如果想在一個字段中既顯示公司名,又...
    JiangCheng97閱讀 1,364評論 0 0
  • 創(chuàng)建計算字段 有的時候我們需要直接從數(shù)據(jù)庫中檢索出轉(zhuǎn)換、計算或格式化過的數(shù)據(jù);而不是檢索出數(shù)據(jù),然后在客戶機應(yīng)用程...
    etron_jay閱讀 349評論 0 0
  • 第1章 了解SQL 1.1 數(shù)據(jù)庫基礎(chǔ) 1.1.1 什么是數(shù)據(jù)庫 數(shù)據(jù)庫(database) 保存有組織的數(shù)據(jù)的容...
    _Cappuccino_閱讀 11,850評論 0 1
  • 第21章 創(chuàng)建和操縱表 21.1 創(chuàng)建表 MySQL不僅用于表數(shù)據(jù)操縱,而且還可以用來執(zhí)行數(shù)據(jù)庫和表的所有操作,包...
    _Cappuccino_閱讀 11,874評論 0 0
  • 一、計算字段 1、Concat() 拼接字段 把多個串鏈接起來形成一個較長的串,需要一個或多個指定的串,各個串之間...
    Temple_Li閱讀 1,458評論 0 0

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