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

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

相关文章

来自专栏西安-晁州

mybatis学习之动态sql

mybatis的动态sql语句很强大,在mapper映射文件中使用简单的标签即可实现该效果,下面一个个记录: 1、select查询 简单的select类似如下:...

24200
来自专栏大数据

Solr:不止于文字

Solr于2004年首次创建时,打算成为OpenSource文本搜索引擎,为企业网站和内部文档搜索等用途提供类似Google的搜索功能。 基于Lucene搜索库...

29800
来自专栏别先生

MYSQL子查询与连接

37:子查询与连接 SET 列名 gbk;//改变客户端数据表的编码类型。 子查询 子查询(Subquery)是指出现在其他SQL语句内的SELECT子句 例...

27350
来自专栏企鹅号快讯

产品经理必备技能:写SQL

在我们这行,有一个经典的问题:产品经理要不要懂技术? 我的观点是,产品经理懂技术,就像流氓会武术,谁都挡不住。懂技术,进可攻退可守,艺多不压身,当然是多多益善。...

35900
来自专栏别先生

Java删除数据库中的数据

1:删除数据库中数据表中的数据同样也是一个非常用的技术,使用executeUpdate()方法执行用来做删除SQL的语句可以删除数据库表中的数据 2:本案例使用...

26950
来自专栏企鹅号快讯

ElasticSearch+Canal 开发千万级的实时搜索系统

公司是做社交相关产品的,社交类产品对搜索功能需求要求就比较高,需要根据用户城市、用户ID昵称等进行搜索。 项目原先的搜索接口采用SQL查询的方式实现,数据库表采...

32950
来自专栏别先生

Eclipse连接到My sql数据库之前操作

Eclipse连接到My sql数据库之前操作 1:首先是安装My sql数据库(为了减少你的麻烦,按照下面的连接,下载即可)百度云链接:http://pan....

30480
来自专栏史上最简单的Spring Cloud教程

Openresty最佳案例 | 第8篇:RBAC介绍、sql和redis模块工具类

RBAC介绍 RBAC(Role-Based Access Control,基于角色的访问控制),用户基于角色的访问权限控制。简单地说,一个用户拥有若干角色,每...

36580
来自专栏别先生

Eclipse中java向数据库中添加数据,更新数据,删除数据

前面详细写过如何连接数据库的具体操作,下面介绍向数据库中添加数据。 注意事项:如果参考下面代码,需要 改包名,数据库名,数据库账号,密码,和数据表(数据表里面的...

44660
来自专栏别先生

MYSQL中约束及修改数据表

MYSQL中约束及修改数据表 28:约束 约束保证数据的完整性和一致性 约束分为表级约束和列级约束 约束类型包括:     NOT NULL(非空约束)   ...

24480

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励