本篇博客仅作为笔记,如有侵权,请联系,立即删除(网上找博客学习,然后手记笔记,因纸质笔记不便保存,所以保存到网络笔记)
1、计算字段
储存在表中的数据不都是计算机应用程序所需要的,我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。
这就是计算字段发挥作用的所在了。与我们前面博客中所讲过的列有所不同,计算字段并不实际存在于数据库表中,计算字段是在运行时在SELECT语句内创建的。
字段:基本上与列的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上。注意:只有数据库知道SELECT语句中哪些列是实际的列表,哪些列是计算字段。
2、拼接字段
拼接:将值联结到一起构成单个值。在MySQL的SELECT语句中,可使用Concat()函数来拼接两个列。
注意:MySQL的不同之处:多数DBMS使用+或||来实现拼接,MySQL则使用Concat()函数来实现。当把SQL语句转换成MySQL语句时一定要把这个区别铭记于心。
SELECT Concat(vend_name,'(',vend_country,')') FROM vendors ODER BY vend_name;
Concat()拼接串,即把多个串连接起来形成一个较长的串。Concat()需要一个或多个指定的串,各个串之间用逗号分隔。
前面曾提到过通过删除数据右侧多余的空格来整理数据,这可以使用MySQL的RTrim()函数来完成:
SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') FROM vendors ORDER BY vend_name;
RTrim()函数去掉值右边的所有空格。通过使用RTrim(),各个列都进行了整理。
注意:MySQL除了支持RTrim()(它去掉串右边的空格),还支持LTrim()(去掉串左边的空格)以及Trim()(去掉串左右两边的空格)。
使用别名:
别名(有时候也称为导出列):是一个字段或者值得替换名,别名用AS关键字赋予。
SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') AS vend_titile FROM vendors ORDER BY vend_name;
SELECT语句本身与以前使用的相同,只不过这里的语句中计算字段之后跟了文本AS vend_title。它指示SQL创建一个包含指定计算得名为vend_title,任何客户机应用都可以按名引用这个列,就像它是一个实际的列表一样。
3、执行算术计算
计算字段的另一常见用途是对检索出来的数据进行算术计算。
SELECT prod_id,quantity,item_price FROM orderitems WHERE oder_num = 20005;
上述SQL语句检索订单号20005中的所有物品。
SELECT prod_id,quantity,item_price, quantity*item_price AS expanded_price FROM orderitems WHERE order_num = 20005;
输出中显示expanded_price列为一个计算字段,次计算字段为quantity*item_price。客户机应用现在可以使用这个新计算列,就像使用其他列一样。
MySQL支持以下操作符,此外,圆括号可用来区分优先顺序。
操作符 | 说明 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
注意:SELECT提供了测试和试验函数与计算得一个很好的办法。虽然SELECT通常用来从表中检索数据,但可以省略FROM子句以便简单地访问和处理表达式。例如,SELECT 3*2,将返回6。SELECT Now()将返回当前日期和时间。