学习笔记 | Ch07-08 创建计算字段、使用函数处理数据
发布日期:2021-07-25 15:44:03 浏览次数:10 分类:技术文章

本文共 2207 字,大约阅读时间需要 7 分钟。

第7课 创建计算字段

  • 这一课介绍什么是计算字段,如何创建计算字段,以及如何从应用程序中使用别名引用它们。

7.1 计算字段

  • 我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户端应用程序中重新格式化。
提示 > 客户端与服务端的格式 : 在SQL语句内可完成的许多转换和格式化工作都可以直接在客户端应用程序内完成。但在数据库服务器上完成这些操作比在客户端中完成要快得多。
  • 计算字段并不实际存在于数据库表中,是运行时在SELECT语句内创建的。
  • 只有数据库知道SELECT语句中哪些列是实际的表列,哪些列是计算字段

7.2 拼接字段

拼接concatenate:将值联结到一起 (将一个值附加到另一个值) 构成单个值。
  • 根据你所使用的DBMS,此操作符可用加号+或两个竖杠||表示。
  • MySQLMariaDB中,必须使用特殊的函数。
说明:是+还是||?
  • AccessSQL Server使用+号。
  • DB2OraclePostgreSQLSQLiteOpen Office Base使用||
SELECT vend_name + ' (' + vend_country + ')'FROM VendorsORDER BY vend_name;

下面是使用MySQLMariaDB时需要使用的语句:

SELECT Concat(vend_name, ' (', vend_country, ')')FROM VendorsORDER 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都有特定的函数。

DBMS函数的差异

在这里插入图片描述

  • 可移植portable:所编写的代码可以在多个系统上运行。

8.2 使用函数

  • 用于处理文本字符串(如删除或填充值,转换值为大写或小写)的文本函数。
  • 用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。
  • 用于处理日期和时间值并从这些值中提取特定成分(如返回两个日期之差,检查日期有效性)的日期和时间函数。
  • 返回DBMS正使用的特殊信息(如返回用户登录信息)的系统函数。
8.2.1 文本处理函数

在这里插入图片描述

  • SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。
  • SOUNDEX考虑了类似的发音字符和音节,使得能对字符串进行发音比较而不是字母比较。虽然SOUNDEX不是SQL概念,但多数DBMS都提供对SOUNDEX的支持。
说明:SOUNDEX支持
  • Microsoft AccessPostgreSQL不支持SOUNDEX(),因此以下的例子不适用于这些DBMS
  • 另外,如果在创建SQLite时使用了SQLITE_SOUNDEX编译时选项,那么SOUNDEX()SQLite中就可用。因为SQLITE_SOUNDEX不是默认的编译时选项,所以多数SQLite实现不支持SOUNDEX()
8.2.2 日期和时间处理函数
  • DATEPART()函数,此函数返回日期的某一部分。
  • DATEPART()函数有两个参数,它们分别是返回的成分和从中返回成分的日期
  • MySQLMariaDB具有各种日期处理函数,但没有DATEPART()
  • MySQLMariaDB用户可使用名为YEAR()的函数从日期中提取年份。
  • 大多数DBMS具有比较日期、执行基于日期的运算、选择日期格式等的函数。
8.2.3 数值处理函数
  • 数值处理函数仅处理数值数据。

这些函数一般主要用于代数、三角或几何运算。

在这里插入图片描述

参考资料

  • 《SQL必知必会》第7-8课

转载地址:https://blog.csdn.net/qq_34170700/article/details/104052117 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:学习笔记 | Ch09 汇总数据
下一篇:Lenovo 50-80安装系统教程

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月14日 01时52分48秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

数字拆分问题算法回溯_学会了回溯算法,我终于会做数独了 2019-04-21
广州刷脸支付骗局_刷脸支付是骗局?那可能你还不了解刷脸支付 2019-04-21
卸载源码安装的mysql_源码安装与卸载mysql 2019-04-21
mysql查询当天记录_sql查询当天记录 2019-04-21
java 远程调试 端口_JAVA远程调试 2019-04-21
java 获取 html 图片路径_JAVA-替换html中图片的路径-从html代码中提取图片路径并下载(完整版)... 2019-04-21
java redis 面试题_Java面试题(Redis篇) 2019-04-21
java 正则表达式分类功能_JAVA正则表达式4种常用功能 2019-04-21
java3d立方体_3d立方体贴图 2019-04-21
java ajax教程_(转)JAVA AJAX教程第三章—AJAX详细讲解 2019-04-21
java operators_A guide to Java Operators 2019-04-21
java socket调试_JAVA实现SOCKET多客户端通信的案例 2019-04-21
java 使用或覆盖了已过时的api_JAVA使用或覆盖了已过时的 API 2019-04-21
java 图片旋转保存_Java 对图片90度旋转 2019-04-21
用java实现文学研究助手_数据结构文学研究助手 C语言代码实现(带源码+解析)... 2019-04-21
java gc的几种方式_GC 的三种基本实现方式 2019-04-21
wget linux java 32_通过wget在Linux上下载Java JDK会显示在许可证页面上 2019-04-21
babylonjs 设置面板位置_babylonjs 空间坐标转为屏幕坐标 2019-04-21
oracle里面如何查询sqlid,CSS_oracle中如何查看sql, --查询表状态:  select uo.O - phpStudy... 2019-04-21
oracle 查询中用case,oracle case when 在查询时候的用法。 2019-04-21