第7课 创建计算字段
这一课介绍什么是计算字段
,如何创建计算字段
,以及如何从应用程序中使用别名
引用它们。
7.1 计算字段
我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户端应用程序中重新格式化。
提示:客户端与服务端的格式
在
SQL
语句内可完成的许多转换和格式化工作都可以直接在客户端应用程序内完成。但在数据库服务器上完成这些操作比在客户端中完成要快得多。
计算字段
并不实际存在于数据库表中。计算字段
是运行时在SELECT
语句内创建的。- 只有数据库知道
SELECT
语句中哪些列是实际的表列,哪些列是计算字段
。
7.2 拼接字段
拼接concatenate
将值联结到一起 (将一个值附加到另一个值) 构成单个值。
- 根据你所使用的
DBMS
,此操作符可用加号+
或两个竖杠||
表示。 - 在
MySQL
和MariaDB
中,必须使用特殊的函数。
说明:是
+
还是||
?
Access
和SQL Server
使用+
号。DB2
、Oracle
、PostgreSQL
、SQLite
和Open Office Base
使用||
。
SELECT vend_name + ' (' + vend_country + ')'
FROM Vendors
ORDER BY vend_name;
下面是使用MySQL
或MariaDB
时需要使用的语句:
SELECT Concat(vend_name, ' (', vend_country, ')')
FROM Vendors
ORDER BY vend_name;
说明:
TRIM()
函数大多数
DBMS
都支持TRIM()
函数。RTRIM()
去掉字符串右边的空格。LTRIM()
去掉字符串左边的空格。TRIM()
去掉字符串左右两边的空格。
使用别名
别名alias
是一个字段或值的替换名。别名
用AS
关键字赋予。
说明:
AS
通常可选在很多
DBMS
中,AS
关键字是可选的,不过最好使用它,这被视为一条最佳实践。提示:别名的其他用途
别名
还有其他用途。
- 常见的用途包括在实际的表列名包含不合法的字符(如空格)时重新命名它,在原来的名字含混或容易误解时扩充它。
注意:
别名
别名
的名字既可以是一个单词,也可以是一个字符串。
- 如果是后者,字符串应该括在引号中。虽然这种做法是合法的,但不建议这么去做。多单词的名字可读性高,不过会给客户端应用带来各种问题。
- 因此,别名最常见的使用是将多个单词的列名重命名为一个单词的名字。
说明:
导出列
别名
有时也称为导出列
(derived column
),不管怎么叫,它们所代表的是相同的东西。
7.3 执行算术计算
提示:如何测试计算
SELECT
语句为测试、检验函数和计算提供了很好的方法。
虽然SELECT
通常用于从表中检索数据,但是省略了FROM子句后就是简单地访问和处理表达式,例如:
SELECT 3 * 2;
将返回6。SELECT Trim(' abc ');
将返回abc。SELECT Now();
使用Now()
函数返回当前日期和时间。现在你明白了,可以根据需要使用
SELECT
语句进行检验。
第8课 使用函数处理数据
这一课介绍了什么是函数,DBMS
支持何种函数,以及如何使用这些函数;这些函数在格式化、处理和过滤数据中非常有用。还将讲解为什么SQL
函数的使用可能会带来问题。在各种SQL
实现中很不一致。
8.1 函数
每一个DBMS
都有特定的函数。
可移植portable
所编写的代码可以在多个系统上运行。
8.2 使用函数
- 用于处理文本字符串(如删除或填充值,转换值为大写或小写)的文本函数。
- 用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。
- 用于处理日期和时间值并从这些值中提取特定成分(如返回两个日期之差,检查日期有效性)的日期和时间函数。
- 返回
DBMS
正使用的特殊信息(如返回用户登录信息)的系统函数。
8.2.1 文本处理函数
SOUNDEX
是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX
考虑了类似的发音字符和音节,使得能对字符串进行发音比较而不是字母比较。虽然SOUNDEX
不是SQL
概念,但多数DBMS
都提供对SOUNDEX
的支持。
说明:
SOUNDEX
支持
Microsoft Access
和PostgreSQL
不支持SOUNDEX()
,因此以下的例子不适用于这些DBMS
。
另外,如果在创建SQLite
时使用了SQLITE_SOUNDEX
编译时选项,那么SOUNDEX()
在SQLite
中就可用。因为SQLITE_SOUNDEX
不是默认的编译时选项,所以多数SQLite
实现不支持SOUNDEX()
。
8.2.2 日期和时间处理函数
DATEPART()
函数,此函数返回日期的某一部分。DATEPART()
函数有两个参数,它们分别是返回的成分和从中返回成分的日期。MySQL
和MariaDB
具有各种日期处理函数,但没有DATEPART()
。MySQL
和MariaDB
用户可使用名为YEAR()
的函数从日期中提取年份。
大多数DBMS
具有比较日期、执行基于日期的运算、选择日期格式等的函数。
8.2.3 数值处理函数
数值处理函数仅处理数值数据。
这些函数一般主要用于代数、三角或几何运算。
来源:CSDN
作者:大虎牙
链接:https://blog.csdn.net/qq_34170700/article/details/104052117