MySQL数据处理函数

数据处理函数

有时从数据库表中获取到的数据需要进行一些处理。如将小写字母替换为相应的大写字母。这个处理过程可以在客户机上进行,也可以在数据库上进行。数据库上进行会更高效。数据库中有相应的数据处理函数来处理这些数据,但是在SQL中使用特殊的数据处理函数会降低其可移植性。不同的DBMS系统,其数据处理函数不同。

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

  • 用于处理文本串的函数,如删除、填充值、转换大小写;
  • 用于在数值数据上进行算术操作的函数;
  • 用于处理日期和时间值并从这些值中提取特殊成分,如两个日期只差的函数;
  • 返回DBMS正在使用的特殊信息的系统函数,如返回用户登录,检查版本;

文本处理函数

例子:将某一列字符转换为大写字符

常用文本处理函数

函数 说明
Left() 返回串左边的字符
Length() 返回串的长度
Locate() 找出串的一个子串
Lower() 将串转换为小写
LTrim() 去掉串左边的空格
Right() 返回串右边的字符
RTrim() 去掉串右边的空格
Soundex() 返回串的SOUNDEX值
SubString() 返回子串的字符
Upper() 将串转换为大写

Soundex()函数,找出发音类似的串,如由于拼写错误,在表中记录了发音相似的名字,这时如果使用LIKE或者其他的匹配搜索并不高效。使用SoundEX()会方便很多。

如下例子,真是名字为 Y.Lee,但是表中存放的名字为Y.Lie,如果使用匹配搜索会发现搜索不到,这时可以使用SoundEX()函数:

日期和时间处理函数

常用日期和时间处理函数

函数 说明
AddDate() 增加一个日期(天、周)
AddTime() 增加一个时间(时,分)
CurDate() 返回当前日期
CurTime() 返回当前时间
Date() 返回日期时间的日期部分
DateDiff() 计算两个日期之差
Date_Add() 高度灵活的日期计算函数
Date_Format 返回一个格式化的日期或字符串
Day() 返回一个日期的天数部分
DayOfWeek() 对于一个日期返回对应的星期几
Hour() 返回一个时间的小时部分
Minute() 返回一个时间的分钟部分
Month() 返回一个时间的月份部分
Now() 返回当前日期
Second() 返回一个时间的秒部分
Time() 返回一个日期时间的时间部分
Year() 返回一个日期的年份部分

简单的时间对比:

但是如果order_date后面跟的有时间,那么上面的SQL语句将匹配不出来,因此我们可以使用日期函数,仅比较表中的日期,而忽略时间:

搜索出一个月的订单;

但是有时不想去算这个月到底有多少天,则可以实现如下:

数值处理函数

数值处理函数仅处理数值数据,这些函数一般用于代数、三角或者几何运算。

常用数值处理函数如下

函数 说明
Abs() 返回一个数的绝对值
Cos() 返回一个角度的余弦
Exp() 返回一个数的指数值
Mod() 返回除操作的余数
Pi() 返回圆周率
Rand() 返回一个随机数
Sin() 返回一个角度的正弦
Sqrt() 返回一个数的平方根
Tan() 返回一个数的正切

下面是一个正切的例子:

MySQL数据处理函数,布布扣,bubuko.com

时间: 2024-08-06 11:53:11

MySQL数据处理函数的相关文章

mysql之数据处理函数与数据汇总函数

一.数据处理函数   1.函数 与其他大多数计算机语言一样, SQL支持利用函数来处理数据.函数一般是在数据上执行的,它给数据的转换和处理提供了方便. 注意:函数没有 SQL的可移植性强.能运行在多个系统上的代码称为可移植的( portable).相对来说,多数SQL语句是可移植的,在SQL实现之间有差异时,这些差异通常不那么难处理.而函数的可移植性却不强.几乎每种主要的 DBMS的实现都支持其他实现不支持的函数,而且有时差异还很大.为了代码的可移植,许多 SQL程序员不赞成使用特殊实现的功能.

MySQL创建字段+数据处理函数+汇总数据(聚集函数)+分组数据

[0]README 0.1)本文部分文字描述转自"MySQL 必知必会",旨在review"MySQL创建字段+数据处理函数+汇总数据(聚集函数)+分组数据" 的基础知识: [1]创建计算字段 1)problem+solution 1.1)problem:存储在表中的数据都不是应用程序所需要的.我们需要直接从数据库中检索出转换,计算或格式化过的数据: 1.2)solution:这就是计算字段发挥作用所在了, 计算字段是运行时在 select语句内创建的: 2)字段定

mysql必知必会--使用数据处理函数

函数 与其他大多数计算机语言一样,SQL支持利用函数来处理数据.函数 一般是在数据上执行的,它给数据的转换和处理提供了方便. 在前一章中用来去掉串尾空格的 RTrim() 就是一个函数的例子 函数没有SQL的可移植性强 能运行在多个系统上的代码称 为可移植的(portable).相对来说,多数SQL语句是可移植的, 在SQL实现之间有差异时,这些差异通常不那么难处理.而函 数的可移植性却不强.几乎每种主要的DBMS的实现都支持其 他实现不支持的函数,而且有时差异还很大. 为了代码的可移植,许多S

第八课 使用数据处理函数

8.1 函数 提取字符串的组成部分 Access 使用 MID() : DB2 . Oracle . PostgreSQL 和 SQLite 使用 SUBSTR() : MySQL 和 SQL Server 使用 SUBSTRING()数据类型转换Access 和 Oracle 使用多个函数,每种类型的转换有一个函数: DB2 和 PostgreSQL 使用 CAST() : MariaDB . MySQL 和 SQL Server 使用CONVERT()取当前日期Access 使用 NOW()

Mysql的函数使用方法

今天有点临时需求要计算一张表的结果,不想写代码,想到了mysql的自定义函数.碰到了很多问题,为了方便一下使用,在此记录一下. 需求:一张表中,有比分,需要查询出比赛id和比赛结果. 分析: 单表查询没啥的,困难就困难在怎么判断比分之后返回想要的结果. 这里我把比赛结果分别定义代号,1主场胜.2平局.3客场胜 函数逻辑: 接收两个参数,判断参数的大小,分别返回结果. 实现: Navicat操作: navicat for mysql 工具内--创建函数 这里分别是存储过程和函数,我们选择函数 设置

MySQL字符串函数、日期时间函数

MySQL字符串函数.日期时间函数 一.常见字符串函数: 1.CHAR_LENGTH  获取长度(字符为单位) 2.FORMAT  格式化 3.INSERT  替换的方式插入 4.INSTR  获取位置 5.LEFT/RIGHT  取左.取右 6.LENGTH   获取长度(字节为单位) 7.LTRIM/RTRIM/TRIM 去空格(左/右/自定义) 8.STRCMP  字符串比较 9.CONCAT  字符串拼接 10.SUBSTRING  字符串截取 1.CHAR_LENGTH:获取长度(字符

Mysql字符串函数FIND_IN_SET()的两点用法

概要:该可以查询用逗号分割的字段,以及对结果进行强制排序 首先看一张表: colid vyear area cast ,31,32,21,12 2014 1 15 ,32,33,34,35,21, 2014 2 16 ,33,34,36,39,40 2011 3 17 表中的colid字段的值是以逗号分割, 当我们需要查询这张表中,colid含有32的行, 那么可以用FIND_IN_SET() SQL如下: SELECT * FROM table WHERE FIND_IN_SET('32',

MySQL四舍五入函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)

MySQL四舍五入函数ROUND(x) ROUND(x)函数返回最接近于参数x的整数,对x值进行四舍五入. 实例: 使用ROUND(x)函数对操作数进行四舍五入操作.SQL语句如下: mysql>SELECT ROUND(-2.34),ROUND(-4.56),ROUND(2.34),ROUND(4.56); ROUND(x)函数的执行结果如下图所示: 上图中代码执行的结果显示,进行四舍五入处理以后,只保留了各个值的整数部分. MySQL四舍五入函数ROUND(x,y) ROUND(x,y)函数

mysql 创建函数ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_f

mysql 创建函数的时候 报错 ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)ERROR 1418 (HY000