[MySQL必知必会]使用数据处理函数

函数 一般是在数据上执行的,它给数据的转换和处理提供了方便。

函数没有SQL的可移植性强几乎每种主要的DBMS的实现都支持其他实现不支持的函数,而且有时差异还很大。

【注】如果你决定使用函数,应该保证做好代码注释,以便以后其他人能确切地知道所编写SQL代码含义。

 

主要支持函数类型有:用于处理文本串的文本函数;用于在数值数据上进行算术操作的数值函数;用于处理日期和时间并从这些值中提取特定成分的日期和时间函数;返回DBMS正使用的特殊信息的系统函数

 

常用文本函数:

Left()             返回串左边的字符

Length()           返回字符串的长度

Locate()           找出一个串的子串

Lower()            将串转换为小写

LTrim()            去掉左边的空格

Right()            返回串右边的字符

RTrim()           去掉右边的空格

Soundex()      返回串的SOUNDEX

SubString()        返回子串的字符

Upper()            将串转换为大写

*SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。

 

示例:假设表customers里面有一个用户名为Y.Lee的客户。但如果这是错误的输入,此联系人实际应该是Y.Lie怎么办?显然按照正确的输入不会返回数据。这时候,Soundex()函数就派上用场了,它匹配所有发音类似Y.Lie的联系人。

SELECT username, contact FROMcustomers WHERE Soundex(contact) = Soundex(‘Y.Lie’);

 

常用日期和时间处理函数

AddDate()             增加一个日期(天,周等)

AddTime()             增肌一个时间(时、分等)

CurDate()             返回当前日期

CurTime()             返回当前时间

Date()                返回日期时间的日期部分

DateDiff()            计算两个日期之差

Date_Add()            高度灵活的日期运算函数

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

Day()                 返回一个日期天数部分

DayOfWeek()           对于一个日期,返回对应的星期几

Hour()                返回一个时间的小时部分

Minute()              返回一个时间分钟部分

Month()               返回一个日期月份部分

Now()                 返回当前日期和时间

Second()              返回一个时间秒部分

Time()                返回一个日期和时间的时间部分

Year()                返回一个日期的年份部分

【注】如果想要的仅是日期,则使用Date()是一个良好的习惯,即使你知道相应的列只包含日期也是如此。

 

实例:如果需要检索出2018年1月下的所有订单,如何实现?

法一:SELECT cust_id, order_num FROM orders WHERE Date(order_date)BETWEEN ‘2018-01-01’and ‘2018-01-31’;

法二(不需要考虑每个月有几天,甚至不用考虑二月是否是闰年的):SELECT cust_id, order_numFROM orders WHERE Year(order_date) = 2018 AND Month(order_date) = 9;

 

常用数值处理函数

这些函数一般用于代数、三角或者集合运算。

Abs()           返回一个数的绝对值

Cos()           返回一个角度的余弦

Exp()           返回一个数的指数值

Mod()       返回除操作的余数

Pi()            返回圆周率

Rand()      返回一个随机数

Sin()           返回一个角度的正弦

Sqrt()          返回一个数的平方

Tan()           返回一个角度的正切

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值