SQL回炉重造06_计算字段

计算字段

  • 计算字段:直接从数据库中检索出转换、计算或格式化过的数据;计算字段并不实际存在于数据库表中,而是运行时在SELEC语句内创建的。
  • 字段(field):基本上与列(column)的意思相同,经常互换使用,不过数据库的列一般还是称为列,而字段则常用在计算字段的连接上。

1. 拼接字段

  • 拼接(concatenate):将若干个值连结到一起构成单个值
  • Concat()函数:在MySQL的SELECT语句中,使用Concat()函数来完成两个列的拼接。
    • 注意:多数DBMS使用+或||来实现拼接,但MySQL则是使用Concat()函数来实现。
  • Trim()函数:用于去除值中的空格;
    • Trim():去掉串左右两边的空格
    • RTrim():去掉串右边的空格
    • LTrim():去掉串左边的空格
/* 
vendors表包含供应商名和位置信息。
假如要生成一个供应商报表,
需要在供应商的名字中按照name(location)这样的格式列出供应商的位
置。
*/
SELECT Concat(Trim(vend_name),'(',Trim(vend_country),')')
FROM vendors
ORDER BY vend_name;
+----------------------------------------------------+
| Concat(Trim(vend_name),'(',Trim(vend_country),')') |
+----------------------------------------------------+
| ACME(USA)                                          |
| Anvils R Us(USA)                                   |
| Furball Inc.(USA)                                  |
| Jet Set(England)                                   |
| Jouets Et Ours(France)                             |
| LT Supplies(USA)                                   |
+----------------------------------------------------+
  • 别名(alias):一个字段或值的替换名,使用AS关键字赋予。
    • 别名常见用途:在实际的表列名包含不符合规定的字符(如空格)时重新命名它,在原来的名字容易误解时扩充它等等;
    • 上文语句拼接后列未命名,客户机无法引用它,但创建别名后任何客户机应用都可以按名字引用这个列,就像是一个实际的表列一样。
    • 导出列(derived column):别名有时候也称为导出列

2. 执行算术计算

  • MySQL算术操作符(+ - * /)
  • 测试计算:通过省略FROM子句,可以简单地访问和处理表达式;例如SELECT 3*2;将返回6,SELECT Trim('abc ');将返回abc,而SELECT Now()则利用Now()函数返回当前日期和时间。
# 检索订单号20005中的所有物品,并计算总价
SELECT prod_id,
	   quantity,
	   item_price,
	   quantity*item_price AS total_price
FROM orderitems
WHERE order_num = 20005;
+---------+----------+------------+-------------+
| prod_id | quantity | item_price | total_price |
+---------+----------+------------+-------------+
| ANV01   |       10 |       5.99 |       59.90 |
| ANV02   |        3 |       9.99 |       29.97 |
| TNT2    |        5 |      10.00 |       50.00 |
| FB      |        1 |      10.00 |       10.00 |
+---------+----------+------------+-------------+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值