数据库|《SQL必知必会》(7,8)(创建计算字段、使用数据处理函数)

上回:《SQL必知必会》(4,5,6):过滤数据、高级数据过滤、通配符过滤

文章目录

  • 第七课:创建计算字段
    • 7.1 计算字段
    • 7.2 拼接字段
      • 使用别名
    • 7.3 执行算数计算
    • 7.4 小结
  • 第八课:使用数据处理函数
    • 8.1 函数
    • 8.2 使用函数
      • 8.2.1 文本处理函数
      • 8.2.2 日期和时间处理函数
      • 8.2.3 数值处理函数
    • 8.3 小结

第七课:创建计算字段 7.1 计算字段 存储在数据库中的数据一般不是我们程序所需要的格式,如:
  • 物品订单表存储物品的价格和数量,不存储每个物品的总价格(用价格乘以数量即可)。但为打印发票,需要物品的总价格。
  • 需要根据表数据进行诸如总数、平均数的计算。
这就是计算字段派上用场的地方。与前几节课不同的是,计算字段并不是间存在与数据库表中。计算字段是运行时在select语句内创建的。
字段(field):基本上与列(column)的意思相同,经常互换使用。
计算字段,说白了就是不能直接拿过来用,需要处理一下在传到客户端的。
7.2 拼接字段 举个栗子:
家庭住址,往往在数据库中不是一长串存储的,xx省xx市xx区xxxxx;涉及到表级约束,可以百度一下。一般省市等,也许在一个表中,单一的不在同一个列,这是一级约束,不可再分原则。
但是我们需要的数据,是那一长串的,我们需要在数据库中拿出这些数据,拼接一下,在传给客户端。
拼接(concatenate):将值联结到一起,构成单个值。
select语句中,操作符可以使用 +||。但是在MySQL中必须使用特殊的函数。
数据库|《SQL必知必会》(7,8)(创建计算字段、使用数据处理函数)
文章图片

在MySQL中是这样的:
SELECT CONCAT(vend_name,'(',vend_country,')') FROM vendors ORDER BY vend_name;

数据库|《SQL必知必会》(7,8)(创建计算字段、使用数据处理函数)
文章图片
如果输出的数据有空格,可以使用trim() 函数来去除空格。
使用别名
语法 :as is 或者直接 空格跟别名三种一般都可以。
as应该是所以DBMS都支持的。
数据库|《SQL必知必会》(7,8)(创建计算字段、使用数据处理函数)
文章图片

这里就是直接使用空格。
7.3 执行算数计算 最常用的就是,小学数学问题:一直单价 数量,求总价。
SELECT prod_id, quantity ,item_price, quantity*item_price AS expanded_price FROM OrderItems WHERE order_num - 20008 ;

数据库|《SQL必知必会》(7,8)(创建计算字段、使用数据处理函数)
文章图片

提示:如何测试计算
SELECT语句为测试.检验函数和计算提供了很好的方法。虽然SELECT通常用于从表中检索数据,但是省略了FROM子句后就是简单地访问和处理表达式,例如SELECT 3*2; 将返回6,SELECT Trim(’ abc '); 将返回abc,SELECT Now(); 使用Now()函数返回当前日期和时间。现在你明白了,可以根据需要使用SELECT语句进行检验。
7.4 小结 别名很重要,可以简化我们sql的单词拼写,还增强了可读性。对数据库的本质没有改变,只是个相当于代号的东西。
第八课:使用数据处理函数 8.1 函数 再熟悉不过了,从初中就开始接触,伴随到现在,函数就是一个方法的入口,包含着一系列底层的操作,执行相应的功能 有的可以返回需要的值。(我自己说的,可能不准确,不喜勿喷 哈哈)
前边说的trim() 去除空格的那个,那就是个函数,功能是去除空格。
8.2 使用函数 大多数DBMS都支持以下这些:
  • 用于处理文本字符串(如删除或填充值,转换值为大写或小写)的文
    本函数。
  • 用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的
    数值函数。
  • 用于处理日期和时间值并从这些值中提取特定成分(如返回两个日期之差,检查日期有效性)的日期和时间函数。
  • 返回DBMS正使用的特殊信息(如返回用户登录信息)的系统函数。
8.2.1 文本处理函数
用的最多的。
数据库|《SQL必知必会》(7,8)(创建计算字段、使用数据处理函数)
文章图片

用法参考trim();
算了,还是来个栗子吧:
upper() 转大写
数据库|《SQL必知必会》(7,8)(创建计算字段、使用数据处理函数)
文章图片

8.2.2 日期和时间处理函数
日期和时间采用相应的数据类型存储在表中,每种 DBMS 都有自己的特殊形式。日期和时间值以特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间。
应用程序—般不使用日期和时间的存储格式,因此日期和时间函数总是用来读取、统计和处理这些值。由于这个原因,日期和时间函数在SQL中具有重要的作用。遗憾的是,它们很不一致,可移植性最差。
SELECT order_num,order_date FROM Orders WHERE YEAR(order_date) = 2012;

数据库|《SQL必知必会》(7,8)(创建计算字段、使用数据处理函数)
文章图片

DBMS提供的功能远不止简单的日期成分提取。大多数DBMS具有比较日期、执行基于日期的运算、选择日期格式等的函数。但是,可以看到,不同DBMS的日期-时间处理函数可能不同。关于具体 DBMS支持的目期-时间处理函数,请参阅相应的文档。
8.2.3 数值处理函数
常用的:
数据库|《SQL必知必会》(7,8)(创建计算字段、使用数据处理函数)
文章图片

8.3 小结 【数据库|《SQL必知必会》(7,8)(创建计算字段、使用数据处理函数)】这—课介绍了如何使用SQL的数据处理函数。虽然这些函数在格式化、处理和过滤数据中非常有用,但它们在各种SQL实现中很不一致,毫无移植性可言,用DBMS的时候,多看看帮助文档。

    推荐阅读