1.计算字段
字段(field):基本上与列的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常与计算字段一起使用。
2.拼接字段
(1)拼接(concatenate):将值联结到一起(将一个值附加到另一个值)构成单个值。
在SQL的SELECT语句中,可以使用一个特殊的操作符来拼接两个列。不同的DBMS的该操作符不同,而MySQL中,必须使用特殊的函数
输入:
SELECT Concat(vend_name, ' (', vend_country, ')')
FROM Vendors
ORDER BY vend_name;
此SQL语句拼接以下元素:
存储在vend_name列中的名字;
包含一个空格和一个左圆括号的字符串;
存储在vend_country列中的国家;
包含一个右圆括号的字符串。
输出:
SELECT语句返回包含上述四个元素的一个列(计算字段)。
若结合成一个计算字段的两个列用很多空格填充的话,为正确返回格式化的数据,即去掉不需要的空格,可以使用SQL的RTRIM()函数来完成,输入:
SELECT Concat(vend_name, ' (', RTRIM(vend_country), ')')
FROM Vendors
ORDER BY vend_name;
输出:
RIM()函数:RTRIM()去掉右边的空格,LTRIM()去掉左边的空格,TRIM()去掉字符串左右两边的空格。大多数DBMS都支持。
(2)别名(alias):是一个字段或值的替换名,用AS关键字赋予,也叫导出列。
输入:
SELECT Concat(vend_name, ' (', RTRIM(vend_country), ')')
AS vend_title
FROM Vendors
ORDER BY vend_name;
输出:
3.执行算术计算
输入:
SELECT prod_id, quantity, item_price
FROM OrderItems
WHERE order_num = 20008;
输出:
item_price列包含订单中每项物品的单价,如下汇总物品的价格(单价乘以订购数量),输入:
SELECT prod_id,
quantity,
item_price,
(quantity*item_price) AS expanded_price
FROM OrderItems
WHERE order_num = 20008;
*跟sql关键字重复了,quantity*item_price必须加圆括号。
输出:
输出的expanded_price是一个计算字段。