7.1 计算字段

字段(field),基本与列(column)含义相同。

利用计算字段可以直接从数据库中检索出转换、计算或格式化过的数据。

计算字段不实际存在于数据库表中,是运行时在SELECT语句内创建的。

需要特别注意:从客户端来看,计算字段的数据与实际表列的返回方式相同。只有DBMS能够区分SELECT语句中的实际表列和计算字段。

7.2 拼接字段

拼接(concatenate),将值联结到一起(将一个值附加到另一个值)构成单个值。

在一些DBMS的SELECT语句中,可使用加号“+”或两个竖杠“||”来拼接两个列。

但在MySQL和MariaDB中,必须使用特殊的函数。

新计算列实际上没有名字,只是一个值,可利用AS关键字赋予别名来引用它。

别名(alias),有时也叫导出列(derived column),是一个字段或值的替换名。

建议使用一个含义清楚的单词,或者将多个单词的列名重命名为一个词汇当作别名

  1. MariaDB [sqlbzbh]> SELECT * FROM Vendors;
  2. +---------+-----------------+-----------------+------------+------------+----------+--------------+
  3. | vend_id | vend_name | vend_address | vend_city | vend_state | vend_zip | vend_country |
  4. +---------+-----------------+-----------------+------------+------------+----------+--------------+
  5. | BRE02 | Bear Emporium | 500 Park Street | Anytown | OH | 44333 | USA |
  6. | BRS01 | Bears R Us | 123 Main Street | Bear Town | MI | 44444 | USA |
  7. | DLL01 | Doll House Inc. | 555 High Street | Dollsville | CA | 99999 | USA |
  8. | FNG01 | Fun and Games | 42 Galaxy Road | London | NULL | N16 6PS | England |
  9. | FRB01 | Furball Inc. | 1000 5th Avenue | New York | NY | 11111 | USA |
  10. | JTS01 | Jouets et ours | 1 Rue Amusement | Paris | NULL | 45678 | France |
  11. +---------+-----------------+-----------------+------------+------------+----------+--------------+
  12. 6 rows in set (0.00 sec)
  13. MariaDB [sqlbzbh]>
  14. MariaDB [sqlbzbh]>
  15. MariaDB [sqlbzbh]> SELECT Concat(vend_name, '---', vend_country) FROM Vendors;
  16. +----------------------------------------+
  17. | Concat(vend_name, '---', vend_country) |
  18. +----------------------------------------+
  19. | Bear Emporium---USA |
  20. | Bears R Us---USA |
  21. | Doll House Inc.---USA |
  22. | Fun and Games---England |
  23. | Furball Inc.---USA |
  24. | Jouets et ours---France |
  25. +----------------------------------------+
  26. 6 rows in set (0.00 sec)
  27. MariaDB [sqlbzbh]>
  28. MariaDB [sqlbzbh]> SELECT Concat(vend_name, '---', vend_country) AS vend_title FROM Vendors;
  29. +-------------------------+
  30. | vend_title |
  31. +-------------------------+
  32. | Bear Emporium---USA |
  33. | Bears R Us---USA |
  34. | Doll House Inc.---USA |
  35. | Fun and Games---England |
  36. | Furball Inc.---USA |
  37. | Jouets et ours---France |
  38. +-------------------------+
  39. 6 rows in set (0.00 sec)
  40. MariaDB [sqlbzbh]>

7.3 执行算术计算

可以利用计算字段对检索出的数据进行算术计算。

SQL支持基本算术操作符:+ - * /

圆括号可用来区分优先顺序。

  1. MariaDB [sqlbzbh]> SELECT prod_id, quantity, item_price FROM OrderItems WHERE order_num = 20008;
  2. +---------+----------+------------+
  3. | prod_id | quantity | item_price |
  4. +---------+----------+------------+
  5. | RGAN01 | 5 | 4.99 |
  6. | BR03 | 5 | 11.99 |
  7. | BNBG01 | 10 | 3.49 |
  8. | BNBG02 | 10 | 3.49 |
  9. | BNBG03 | 10 | 3.49 |
  10. +---------+----------+------------+
  11. 5 rows in set (0.00 sec)
  12. MariaDB [sqlbzbh]> SELECT prod_id, quantity, item_price, quantity*item_price AS expanded_price FROM OrderItems WHERE order_num = 20008;
  13. +---------+----------+------------+----------------+
  14. | prod_id | quantity | item_price | expanded_price |
  15. +---------+----------+------------+----------------+
  16. | RGAN01 | 5 | 4.99 | 24.95 |
  17. | BR03 | 5 | 11.99 | 59.95 |
  18. | BNBG01 | 10 | 3.49 | 34.90 |
  19. | BNBG02 | 10 | 3.49 | 34.90 |
  20. | BNBG03 | 10 | 3.49 | 34.90 |
  21. +---------+----------+------------+----------------+
  22. 5 rows in set (0.00 sec)
  23. MariaDB [sqlbzbh]>

没有FROM子句的SELECT语句,可以简单地访问和处理表达式。

  1. MariaDB [sqlbzbh]> SELECT 3*2;
  2. +-----+
  3. | 3*2 |
  4. +-----+
  5. | 6 |
  6. +-----+
  7. 1 row in set (0.00 sec)
  8. MariaDB [sqlbzbh]>
  9. MariaDB [sqlbzbh]> SELECT Now();
  10. +---------------------+
  11. | Now() |
  12. +---------------------+
  13. | 2016-12-22 23:14:40 |
  14. +---------------------+
  15. 1 row in set (0.00 sec)
  16. MariaDB [sqlbzbh]>

读书笔记--SQL必知必会07--创建计算字段的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  3. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  4. 读书笔记--SQL必知必会12--联结表

    12.1 联结 联结(join),利用SQL的SELECT在数据查询的执行中联结表. 12.1.1 关系表 关系数据库中,关系表的设计是把信息分解成多个表,一类数据一个表,各表通过某些共同的值互相关联 ...

  5. SQL语法语句总结(《SQL必知必会》读书笔记)

    一.SQL语句语法 ALTER TABLE ALTER TABLE 用来更新已存在表的结构. ALTER TABLE tablename (ADD|DROP column datatype [NULL ...

  6. [SQL必知必会] 读书笔记

    第1课 数据库 这一课介绍SQL究竟是什么,它能做什么事情.   1.1 数据库基础 下面是一些数据库概念的简要介绍,如果你刚开始接触数据库,可以由此了解必需的基本知识.   1.1.1 数据库 数据 ...

  7. 【读书笔记】【数据库】SQL必知必会

    第1课 了解SQL 简单介绍了sql,和dbms,无重点. 第2课 检索数据 重点:select语句,distinct,limit,注释 1. select 语句如果没有明确排序查询结果,那么返回的数 ...

  8. 《SQL 必知必会》读书笔记

    第1课 了解 SQL 这章主要介绍了数据库,表,字段类型,行,列,主键和SQL等基本概念. 数据库:以某种形式存储的数据集合,在计算机上的表现形式可能是一个文件或者一组文件.我们平时所说的数据库,往往 ...

  9. 《mysql必知必会》读书笔记--存储过程的使用

    以前对mysql的认识与应用只是停留在增删改查的阶段,最近正好在学习mysql相关内容,看了一本书叫做<MySQL必知必会>,看了之后对MySQL的高级用法有了一定的了解.以下内容只当读书 ...

  10. MySQL必知必会1-20章读书笔记

    MySQL备忘 目录 目录 使用MySQL 检索数据 排序检索数据 过滤数据 数据过滤 用通配符进行过滤 用正则表达式进行搜索 创建计算字段 使用数据处理函数 数值处理函数 汇总数据 分组数据 使用子 ...

随机推荐

  1. LINUX篇,设置MYSQL远程访问实用版

    每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...

  2. NodeJs之OS

    OS Node.js提供了一些基本的底层操作系统的模块OS. API var os = require('os'); console.log('[arch] 操作系统CPU架构'+os.arch()) ...

  3. 05.LoT.UI 前后台通用框架分解系列之——漂亮的时间选择器

    LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...

  4. spring无法读取properties文件数据

    只讲述异常点,关于怎么配置文件,这里不做说明.   1. controller中无法读取config.properties文件 controller中注入的@Value配置是从servlet-cont ...

  5. IT持续集成之质量管理

    研发工具生态 质量相关工作 一次编译产出测试包与上线包 !从源头保证版本的⼀一致性!代码质量控制! 全⽅方位的⾃自动化测试体系保证! 提测冒烟效率! 全⾃自动上线流程杜绝⼈人⼯工犯错! 生产环境应⽤用 ...

  6. jquery.each()

    $(selector).each(function(index,element)) index - 选择器的 index 位置 element - 当前的元素(也可使用 "this" ...

  7. RMS去除在线认证

    在微软 OS 平台创建打开 RMS 文档如何避免时延 相信我们在企业内部的环境中已经部署了微软最新的OS平台,Windows 7和Windows 2008 R2,在这些OS平台上使用IRM功能时,您有 ...

  8. RMS:不能对生产服务器使用测试清单

    问题说明:在使用office软件RMS加密时报:不能对生产服务器使用测试清单,或者使用 rmsbulk.exe进行RMS加密时,报不能连接到RMS服务器. 解决办法: 请到https://suppor ...

  9. JAVA 设计模式之策略模式

    定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换. 类型:行为类模式 策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换.在前面说过 ...

  10. [AlwaysOn Availability Groups] 健康模型 Part 2 ——扩展

    健康模型扩展 第一部分已经介绍了AlwayOn健康模型的概述.现在是创建一个自己的PBM策略,然后设置为制定的归类.创建这些策略,创建之后修改一下配置,dashboard就会自动评估这些策略. 场景, ...