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

表: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 条评论
登录 后参与评论

相关文章

来自专栏玩转JavaEE

MongoDB文档查询操作(二)

上篇文章我们对MongoDB中的查询操作做了简单介绍,本文我们继续来看更丰富的查询操作。 本文是MongoDB系列的第六篇文章,了解前面的文章有助于更好的理解本...

3043
来自专栏杨建荣的学习笔记

MySQL数据类型(r3笔记第87天)

今天在本地装了一个MySQL的学习环境,简单的熟悉了一下。准备开始好好学习MySQL了。 学习编程语言我都是从数据类型入手。每种编程语言的数据类型都有自己的特点...

28010
来自专栏数据小魔方

MySQL基础入门系列之——字符与日期数据处理

今天这一篇分享MySQL中的字符串处理工具与日期时间处理,这一部分内容虽然看似不多,但是往往是输出处理中的的痛点。 我的MySQL数据库中已经建好了一个包含两列...

3329
来自专栏我的博客

Zend_Db_Adapter使用详情

Zend_Db_Adapter是zendfrmaeword的数据库抽象层api. 基于pdo, 你可以使用 Zend_Db_Adapter 连接和处理多种 数据...

3434
来自专栏代码世界

Django ORM那些相关操作

一般操作 https://docs.djangoproject.com/en/1.11/ref/models/querysets/         官网文档 常...

3686
来自专栏数据库

MySQL数据库应用总结(八)—MySQL数据库的数据类型和运算符(下)

SQL语法预览: 创建表字段数据类型:【createtable 表名(字段名称 数据类型); 】 插入字段值:【insert into表名 values(值1,...

18610
来自专栏C/C++基础

认识左值与常引用

左值是(lvalue)是C++中的一个基本概念。凡是可以出现在赋值运算符左边的表达式都是左值。与左值相对的就是右值(rvalue),凡是可以出现在赋值运算右边的...

612
来自专栏互联网开发者交流社区

Oracle-函数大全

1185
来自专栏个人随笔

ADO.NET查询和操作数据库

stringbuilder 类 stringbuilder类:用来定义可变字符串 stringbulider Append(string value)   在结...

3165
来自专栏Java呓语

第9章、语言结构

字符串是包含在单引号(')或双引号(")字符中的字节或字符序列。 以下几行例子是等同的:

683

扫码关注云+社区