文章目录
1.如何创建计算字段以及怎样从应用程序中使用别名引用它们
1.1 什么是计算字段
存储在数据库表中的数据一般不是应用程序所需要的格式。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT语句内创建的。
可在SQL语句内完成的许多和格式化工作都可以直接在客户机应用程序内完成。一般来说,在数据库服务器上完成这些操作比在客户机中完成要快得多,因为DBMS是设计来快速有效地完成这种处理的。
1.2 拼接字段—concat()
在MySQL的SELECT语句中,可使用concat()
函数来拼接两个列。
# name (location)这样的格式列出供应商报表
SELECT Concat(vend_name,' (',vend_country,')') FROM vendors ORDER BY vend_name;
Concat()
拼接串,即把多个串连接起来形成一个较长的串。Concat()
需要一个或多个指定的串,各个串之间用逗号分隔。
SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') FROM vendors ORDER BY vend_name;
RTrim()
函数去掉值右边的所有空格。通过使用RTrim(),各个列都进行了整理。
LTnim()函数
去掉串左边的空格
Trim()函数
去掉串左右两边的空格
1.3 使用别名—AS
SQL支持列别名,别名用AS关键字
赋予
SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country), ')') AS vend_title FROM vendors ORDER BY vend_name;
SELECT语句本身与以前使用的相同,只不过这里的语句中计算字段之后跟了文本AS vend_title
。它指示SQL创建一个包含指定计算的名为vend_title的计算字段。从输出中可以看到,结果与以前的相同,但现在列名为vend_title,任何客户机应用都可以按名引用这个列,就像它是一个实际的表列一样。
1.4 执行算术运算
计算字段的另一常见用途是对检索出的数据进行算术计算。
SELECT prod_id,quantity,item_price FROM orderitems WHERE order_num = 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 Now()
利用Now()函数返回当前日期和时间
2.MySQL支持何种数据处理函数以及如何使用这些函数
如果你决定使用函数,应该保证做好代码注释,以便以后你(或其他人)能确切地知道所编写SQL代码的含义。
大多数SQL实现支持以下类型的函数:
- 用于处理文本串(如删除或填充值,转换值为大写或小写)的文本函数。
- 用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。
- 用于处理日期和时间值并从这些值中提取特定成分(例如返回两个日期之差,检查日期有效性等)的日期和时间函数。
- 返回DBMS正使用的特殊信息(如返回用户登录信息,检查版本细节)的系统函数。
2.1 文本处理函数
下面列出常用的文本处理函数<