計算字段
- 計算字段和列類似,經常互換使用,但是數據庫中說列更準確,而計算字段是在SELECT語句內創建的。
- 只有服務器的數據庫知道select語句中哪些列是表列,哪些是計算字段,客戶端的應用程序不知道,他覺得都一樣。
- 雖然客戶端的應用程序可以完成所有的格式轉換等工作,但是在服務器端完成要快得多。所以不要在客戶端做。
拼接字段
示例1:as關鍵字賦予計算字段一個別名
mysql不能用+或者雙豎槓||,要用concat函數
select concat(vend_name, '(', vend_country, ')')
as vend_title
from vendors
order by vend_name;
as vend_title指示SQL創建一個包含計算結果的名字爲vend_title的計算字段。注意vend_title並不是一個列名哦
as後面的標識符叫做別名,alias。
不建議把別名設置爲一箇中間有空格的字符串,最好是單個單詞。
可以看到,concat函數還幫助去掉了空格,如果用+或||,還需要自己用trim函數,或者rtrim,ltrim函數去掉左右兩邊的空格,右邊的空格,左邊的空格。
算術運算
示例
先顯示訂單號20008中的所有產品
select prod_id,
quantity,
item_price
from OrderItems
where order_num = 20008;
計算這個訂單中每個產品的總價:單價乘以數量
select prod_id,
quantity,
item_price,
quantity*item_price as expanded_price
from OrderItems
where order_num = 20008;
expanded_price是一個計算字段,由as指定別名,客戶端的應用就可以用這個新的計算列了。
SQL算術操作符
示例:用select語句進行算術計算
select 4 * 5;
去掉右邊的空格
select rtrim('abd ');
去掉左邊的空格
select ltrim(' abd d');
去掉兩邊的空格
select trim(' abd d ');
返回當前時間
select now();
select 10 / 4;
總結
- as關鍵字用於給新創建的計算字段起別名
- 要在服務器端完成計算再通過網絡傳給客戶端應用程序
- concat函數實現把兩列甚至更多列拼接爲一個有格式的字段
- 可以用不帶from子句的select語句完成計算