数据库中数据表的格式一般不是应用程序所需要的格式,如:
- 在一个字段中既显示公司名有显示公司地址,但这两个数据一般不在一张表中
- 城市,州和邮政编码在不同的列中,但邮件标签打印程序需要把他们作为一个恰当的标签打印出来
拼接字段
在MySQL中的select语句中可以用concat(或Concat)函数拼接两列,concat需要指定一个或多个串,各串之间用逗号分隔。
select concat(num,'(',grade,')') from stu_info;
+---------------------------+ | concat(num,'(',grade,')') | +---------------------------+ | 000001(1006) | | 000002(1005) | | 000003(1009) | | 000004(1006) | | 000009(2004) | | 1(1009) | | 3(1005) | | 4(1009) | | 5(1005) | +---------------------------+ 9 rows in set (0.00 sec)
使用别名
select拼接工作完成后,得到一个新的列,但这个新的列的民字是什么呢,他没有实际名字,只是一个值,但未命名的列不能用于客户机中,因为客户机没办法引用一个未命名的列。
别名用AS关键字赋予。
select concat(num,'(',grade,')') as new_name from stu_info; +--------------+ | new_name | +--------------+ | 000001(1006) | | 000002(1005) | | 000003(1009) | | 000004(1006) | | 000009(2004) | | 1(1009) | | 3(1005) | | 4(1009) | | 5(1005) | +--------------+ 9 rows in set (0.00 sec)
任何客户机都可以按名引用这个列。他像实际的列表一样。
执行算数计算
select id,price,price*num as sum_price from order
sum_price作为一个计算字段,此计算为price*num,用圆括号括起来可区分优先级,支持的算术操作符为:+,-,*,/
拓展
select实际上就是一个输出语句,select 2*3;输出6,select now();输出当前日期