一、計算字段
存儲在數據庫表中的數據一般不是應用程序所需要的格式
1、如果想在一個字段中既顯示公司名,又顯示公司的地址,但這兩個信息一般包含在不同的字段中。
2、城市、州和郵編存儲在不同的列中,但郵件標簽打印程序卻需要把它們作為一個恰當格式的字段檢索出來。
3、列數據是大小寫混合的,但是報表程序需要的所有數據按大寫表示出來。
4、物品訂單的總價格一般是不存儲到數據中的,但是我們需要。
我們需要計算字段,計算字段並不存在於數據庫中,而是運行時在select語句內創建的。
二、拼接字段
拼接字段(concatenate):將值連接到一起構成單個值。使用concat函數來拼接兩個列。例如:
select concat(vend_name,'(',vend_country,')') from vendors order by vend_name;
concat()拼接串,即把多個串連接起來形成一個較長的串。它需要一個或多個指定的串,各個串之間用逗號分隔。
select concat(rtrim(vend_name),'(',rtrim(vend_country),')') from vendors order by vend_name;
rtrim:函數去掉右邊的空格,通過使用rtrim(),各個列都進行了整理。同理,ltrim(),trim()一樣道理。
三、使用別名:別名是一個字段或者值的替換名,用AS關鍵字賦予。
select concat(rtrim(vend_name),'(',rtrim(vend_country),')') as vend_title from vendors order by vend_name;
輸出結果和上面兩個相同,不過標題換成了vend_title.
四、執行算術計算:對檢索出來的數據進行算術運算
orders表包含收到的所有訂單,orderitems表包含每個訂單中的各項物品。如下:
select prod_id,quantity,item_price from orderitems where order_num=20005;
item_price列包含訂單中每項物品的單價,如下:
select prod_id,quantity,item_price,quantity*item_price as expanded_price from orderitems where order_num=20005;
以上語句的expanded_price列為一個計算字段(別名,作為一個物品的總價)
mysql中支持如下表中列出的基本算術運算符,此外,圓括號可用來區分優先順序。
+ 加
- 減
* 乘
/ 除