1.3(SQL学习笔记)计算字段及函数
一、计算字段
1.1拼接字段
一般情况下返回的字段是指定列的属性名。如果有时我们对返回格式有特殊要求。
例如,我们需要将显示商品名,即商品价格,同时商品名后面的价格放在括号内。
prod_name(prod_price) 以这种方式显示数据。
这时我们就需要使用拼接字段。


可以看到显示的 数据是以prod_name(prod_price)的格式显示的。
实现这个功能的过程中使用了一个函数:CONCAT(str1,str2,...)。
该函数将str1,str2,..拼接起来显示。
1.2使用别名
上例中的列名是SELECT语句后面的名称,但这个可读写不强。我们可以通过为改列指定一个别名
然后显示的就是我们指定的别名了。别名通过as指定,as可省略不写。

第一列的名称从CONCAT(prod_name, '(',prod_price, ')')变成了prod_name_price。
指定别名可以使列名更具可读性。
1.3字段计算
例如有一列为单价,有一列为数量,我们需要返回一列总价,但是总价在表中并未存储。
这时我们就可以单价*数量,这种方式间接的获取总价。


通过quantity * item_price计算,并为其起一个别名total。
二、函数
2.1数据处理函数
SQL提供一些函数,以便于对数据进行操作。
但不同的数据库管理软件对函数的支持不一致,具体需查阅对应文档。
2.1.1 UPPER()将文本内容转换为大写。

2.1.2 YEAR() 获取数据类型为日期的年份,MONTH()获取数据类型为日期的月份,DAY()获取数据类型为日期的天数。

获取数据类型为日期的年、月、日前提是改数据是日期类型,可以看到order_date的类型是datetiem.

获取所有一月份的订单。
SQL中还有很多函数,具体可查阅对应文档。
2.2聚集函数
聚集函数和前面的函数不同,它不返回全部的检索数据,只返回我们需要的数据。
例如计算当前表有多少行,并不需要返回每一行,只需要返回一个总行数即可。
同样计算指定列的最大值,也不需要返回所有列,只需要该列的最大值即可。
2.2.1 AVG()
计算平均值,只返回一个平均值


计算prod_id为‘BR01’的item_price的平均值.
2.2.2COUNT()
用于计数,COUNT(*)对表中行数进行计数,null也计入总数中。
COUNT(colName)对指定列进行计数,null不计入总数中。


此时返回的是总行数5.

此时返回的cust_email这一行,此时emali为空的行没有被记入总数。
2.2.3MAX(),MIN()
返回指定列中最大、最小值。


prod_price的最大值与最小值。
2.2.4SUM()
计算指定列的和。

SUM(price * quantity),计算单价*数量,然后通过SUM求和可以计算出所有总价。
SELECT后可以跟随多个聚合函数
SELECT AVG(colName), COUNT(colName), SUM(colName) FROM tableName;
但不能这样写:
SELECT AVG(colName), UPPER(colName) FROM tableName;
UPPER不是聚集函数,返回的不是单个值,而是检索出来的所有结果进行大写转换。
而AVG只返回一个值,这是冲突的。
参考资料:
《SQL必知必会》
1.3(SQL学习笔记)计算字段及函数的更多相关文章
- SQL学习之计算字段的用法与解析
一.计算字段 1.存储在数据库表中的数据一般不是应用程序所需要的格式.大多数情况下,数据表中的数据都需要进行二次处理.下面举几个例子. (1).我们需要一个字段同时显示公司名和公司地址,但这两个信息存 ...
- openerp学习笔记 计算字段、关联字段(7.0中非计算字段、关联字段只读时无法修改保存的问题暂未解决)
计算字段.关联字段,对象修改时自动变更保存(当 store=True 时),当 store=False 时,默认不支持过滤和分组7.0中非计算字段.关联字段只读时无法修改保存的问题暂未解决 示例代码: ...
- openerp学习笔记 计算字段支持搜索
示例1: # -*- encoding: utf-8 -*-import poolerimport loggingimport netsvcimport toolslogger = netsvc.Lo ...
- 【SQL学习笔记】排名开窗函数,聚合开窗函数(Over by)
处理一些分组后,该组按照某列排序后 ,取其中某条完整数据的问题. 或 按照其中不同列分组后的聚合 比如 sum,avg之类. MSDN上语法: Ranking Window Functions < ...
- ORALCE PL/SQL学习笔记
ORALCE PL/SQL学习笔记 详情见自己电脑的备份数据资料
- Hadoop源码学习笔记(2) ——进入main函数打印包信息
Hadoop源码学习笔记(2) ——进入main函数打印包信息 找到了main函数,也建立了快速启动的方法,然后我们就进去看一看. 进入NameNode和DataNode的主函数后,发现形式差不多: ...
- SQL学习笔记
SQL(Structured Query Language)学习笔记 [TOC] Terminal登录数据库 1.登录mysql -u root -p ; 2.显示所有数据库show database ...
- Oracle之PL/SQL学习笔记
自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家 ...
- sql 学习笔记 档
从下面的内容 3c school 1:Sql 它分为两部分: 6 2:查询 7 3:插入: 9 4:数据库更新 UPDATE 9 5:删除 DELETE 10 6:Sql TOP 子句: 10 7 ...
随机推荐
- linux irq 自动探测
前言 编写驱动的时候,经常会用到中断,这时候我们在驱动初始化时就得申请中断,那么问题来了,中断号是多少呢?以前的中断号在板级相关的头文件里面已经静态定义好了,bsp的代码在内核启动过程也会根据那个帮我 ...
- centos 快捷键
centos 快捷键大全 时间:2013-02-23 14:54来源:blog.csdn.net 举报 点击:225次 新手通常会不太习惯GNOME或KDE的界面操作,不过还好,LINUX的快捷键大多 ...
- web前端教程:用 CSS 实现三角形与平行四边形
最近在逛某个技术网站的时候,感觉文章关键词上的样式好酷炫啊,分页的样式.来张截图: 你在首页的底部也可以看到这样一个分页栏:是不是看上去还不错?下面就来看看这是如何实现的吧~ 第一种方法:利用bord ...
- Iptables基础整理
Iptables基础框架
- [ python ] 项目二:主机批量管理程序
开发要求: 1. 对主机进行批量管理 2. 可对单台或主机组批量执行命令 3. 可上传文件到对应的主机或组 4. 使用多线程实现 程序: 1. README # 作者:hkey # ...
- ltsdangerous加密解密
前言 在做QQ第三方登录时,用户跳转到QQ登录界面登录成功后,会在URL返回一个code参数.前端把code发送给后端.后端收到后,会查询出openid.然后判断openid是否存在,如果存在就可以绑 ...
- selenium 参数传递(testng.xml 、DataProvider )
为了方便测试代码的复用性,常常采用参数化.传递参数给测试代码 有一下两种方法:1.通过配置XML文件实现.2.通过DataProvider 传递参数. 注意:DataProvider 传递参数返回的是 ...
- hdu 1505(最大子矩阵)
City Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- Maximum Gap——桶排序
Given an unsorted array, find the maximum difference between the successive elements in its sorted f ...
- WebDriver自动化测试工具(3)---PhantomJS的使用
PhantomJS是一个基于webkit的javascript API.它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码.任何你可以在基于webki ...