创建计算字段
有的时候我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后在客户机应用程序或报告程序中重新格式化。
这就会计算字段发挥作用的所在了。
<u>计算字段并不实际存在于数据库表中。计算字段你是运行时再select语句内创建的。</u>
字段(field)基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上。
一、拼接字段
为了说明如何使用计算字段,举一个创建由两列组成的标题的简单例子。
拼接(concatenate)将值联结到一起构成单个值
解决办法就是把两个列拼接起来。在Mysql的select语句中,可使用Concat()函数来拼接两个列。
多数DBMS使用+或||来实现拼接,Mysql则使用Concat()函数来实现。当把Sql语句转换成mysql语句时一定要把这个区别铭记在心。
mysql>select Concat(vend_name,‘(’,vend_contry,‘)’) from venders order by vend_name;
Concat()拼接串,即把多个串连接起来形成一个较长的串。
得到以下输出:
Concat(vend_name,‘(’,vend_contry,‘)’) ACME(USA) Anvils R Us (USA)
曾提到过通过删除右侧多余的空格来整理数据,这可以使用MySQL的RTrim()函数来完成
mysql>select Concat(RTrim(vend_name),‘(’,RTrim(vend_contry),‘)’) from vendors order by vend_name;
RTrim()函数去掉值右边的所有空格。通过使用RTrim(),个格列都进行了整理。
MySQL除了支持RTrim()去掉右边的空格,
还支持LTrim()去掉串左边的空格
以及Trim()去掉串左右两边的空格
二、使用别名
别名(alias)是一个字段或值的替换名。别名用AS关键字赋予。
mysql>select Concat(RTrim(vend_name),‘(’,RTrim(vend_contry),‘)’) AS vend_title from vendors order by vend_name
得到以下输出:
vend_title |
---|
ACME(USA) |
Anvils R Us (USA) |
别名有时也称为导出列(derived column),不管称为什么,它们所代表的都是相同的东西。
三、执行算术计算
mysql>select prod_id, quantitym,item_price from orderitems where order_num = 2005;
mysql>select prod_id,quantity,item_price,quantity * item_price AS expanded_price from orderitems where order_num = 20005;
操作符 | 说明 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
这里提到一个mysql提供的友好测试方法
select 3*2 ; -> 返回 6
select Trim(‘abc’); -> 返回abc
select Now()利用Now()函数返回当前日期和时间