mysql-计算字段
一、计算字段
存储在数据库表中的数据一般不是应用程序所需要的格式
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中支持如下表中列出的基本算术运算符,此外,圆括号可用来区分优先顺序。
+ 加
- 减
* 乘
/ 除