第十一章:使用数据处理函数

表:orders

字段:order_id order_name quantity item_price order_num order_date

1.函数:

用来处理数据的过程,上一章提到的RTrim()就是一个函数例子。

注:函数没有SQL的可移植性强。不同的DBMS支持的函数可能不同,所以在做数据迁移时,函数会是一个障碍。

为了解决这个问题,建议必须使用函数时,应当做好代码注释,以便以后能够比较清晰的了解整个SQL语义。

2.使用函数:

大多数SQL实现支持以下类型的函数:

*用于处理文本串(如删除或填充值,转化值为大写或小写)的文本函数。

*用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。

*用于处理日期和时间值并从这些值中提取特定成分(例如,返回两个日期之差,检查日期有效性等)的日期和时间函数。

*返回DBMS正使用的特殊信息(如返回用户登录信息,检查版本细节)的系统函数。

3.文本处理函数:

使用upper()函数,将字母全部转化为大写

SELECT order_name,Upper(order_name) AS upper_order_name FROM orders ORDER BY order_name

常用的文本处理函数:

函数

说明

Left()

返回串左边的字符

Length()

返回串的长度

locate()

找出串的一个子串

Lower()

将串转化为小写

LTrim()

去掉串左边的空格

Right()

返回串右边的字符

RTrim()

去掉右边的空格

Soundex()

返回串的SOUNDEX值

SubString()

返回子串的字符

Upper()

将串转化为大写

4.日期和时间处理函数:

常用时间和时间处理函数

函数

说明

AddDate()

增加一个日期(天、周等)

AddTime()

增加一个时间(时、分等)

CurDate()

返回当前日期

CurTime()

返回当前时间

Date()

返回日期时间和日期部分

DateDiff()

计算两个日期之差

Date_Add()

高度灵活的日期运算函数

Data_Format()

返回一个格式化的日期或时间串

Day()

返回一个日期的天数部分

DayOfWeek()

返回一个日期,返回对应的星期几

Hour()

返回一个时间的小时部分

Minute()

返回一个时间的分钟部分

Month()

返回一个时间的月份部分

Now()

返回当前日期和时间

Second()

返回一个时间的秒部分

Time()

返回一个日期时间的时间部分

Year()

返回一个日期的年份部分

基本日期比较:

SELECT order_id, order_num 
FROM orders 
WHERE order_date = '2015-09-01'

若此时,order_date为datetime类型,其格式是不满足仅仅只有日期的(该格式还包含时分秒),若想避免WHERE语句出现无法匹配的状况可以使用

SELECT order_id, order_num
FROM orders
WHERE Date(orderdate) = '2015-09-01'

查询2015年9月的所有订单

SELECT order_id, order_num 
FROM orders
WHERE Date(order_date) BETWEEN '2015-09-01' AND '2015-09-30'

或者通过下面的SQL实现

SELECT order_id, order_num
FROM orders
WHERE Year(order_date) = 2005 AND Month(order_date) = 9

5.数值处理函数:

常用数值处理函数

函数

说明

Abs()

返回一个数的绝对值

Cos()

返回一个数的余弦值

Exp()

返回一个数的指数值

Mod()

返回除操作的余数

Pi()

返回圆周率

Rand()

返回一个随机数

Sin()

返回一个数的正弦值

Sqrt()

返回一个数的平方根

Tan()

返回一个数的正切值

我个人而言,感觉这一章能用到的东西屈指可数

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

XmlWriter/XmlReader示例代码

在Silverlight项目中,如果您想最大程度的减少xap包的大小,仅使用默认System.Xml命名空间下提供的功能来实现“XML序列化/反序列化”,恐怕X...

2227
来自专栏跟着阿笨一起玩NET

C# string byte[] Base64 常用互相转换

http://www.cnblogs.com/zxx193/p/3605238.html?utm_source=tuicool

1401
来自专栏算法修养

CodeForces 666B World Tour(spfa+枚举)

B. World Tour time limit per test 5 seconds memory limit per test 512 mega...

3264
来自专栏CodingToDie

FastSql ORM 实现

FastSql 中 ORM 的实现 Table of Contents 原理 实现 1. 使用注解 2. 反射工具类 3. 简单的 model 4. 注解解析 ...

4766
来自专栏三丰SanFeng

算法学堂 - 二分查找及其变形

C语言中可以用bsearch()实现二分查找。同qsort()一样,bsearch()也包含在glibc库中,且同样要自定义比较函数。其原型如下: void *...

2036
来自专栏芋道源码1024

数据库中间件 Sharding-JDBC 源码分析 —— 结果归并

本文主要基于 Sharding-JDBC 1.5.0 正式版 1. 概述 2. MergeEngine 2.2.1 AbstractStreamResultSe...

3418
来自专栏GreenLeaves

C# String.Format的格式限定符与Format方法将多个对象格式化一个字符串原理

Format方法将多个对象格式化成一个字符串Format方法解析格式字符串的原理:

832
来自专栏coding...

C语言基础 - 实现单向链表

1333
来自专栏菩提树下的杨过

java:POI导出excel

POI是一个开源项目,专用于java平台上操作MS OFFICE,企业应用开发中可用它方便导出Excel. 下面是使用示例: 1、maven中先添加依赖项 1 ...

2405
来自专栏熊二哥

JDK1.8快速入门

JDK8提供了非常多的便捷用法和语法糖,其编码效率几乎接近于C#开发,maven则是java目前为止最赞的jar包管理和build工具,这两部分内容都不算多,就...

1969

扫码关注云+社区