MySQL 单行函数

一.函数的理解

1.什么是函数?

  • 函数的作用: 函数可以把我们经常使用的代码封装起来,需要的时候直接调用即可.这样我们既提高了代码的执行效率,又提高了代码的可维护性

    • 在SQL中,我们也可以使用函数对检索出来的数据进行函数操作,使用这些函数,可极大程度的提高用户对数据库的管理效率

  • 从函数的定义角度分为:

    • 内置函数: 系统内置的通用函数

    • 自定义函数: 用户根据自己的需求所编写的函数

2.不同DBMS的差异

DBMS之间的差异性很大,远大于同一个语言,不同版本之间的差异.大部分DBMS会有自己的特定函数,因此采用SQL函数的代码可移植性很差

  • 如大部分DBMS使用"||"或(+)做拼接,而MySQL使用concat()函数做拼接

3.MySQL内置函数

  • 从实现的功能上可分为: 数值函数,字符串函数,日期和时间函数,流程控制函数,加密与解密函数,获取Mysql信息函数,聚合函数

    • 这里我们通常将函数分为单行函数和聚合函数

      • 单行函数

        • 操作数据对象

        • 按照参数返回一个结果

        • 只对一行数据进行操作

        • 每行返回一个结果

        • 可以嵌套

        • 参数可以是一列或一个值

二.数值函数

1.基本函数

  • ABS(x) 返回函数的绝对值

  • SIGN(x) 返回数值x的符号.整数返回1,负数返回-1,0返回0

  • PI() 返回圆周率的值

  • CEIL(x),CEILING(x) 返回大于或等于某个值的最小值

  • FLOOR(x) 返回小于或等于某个值的最小值

  • LEAST(e1,e2) 返回列表中的最小值

  • GREATEST(e1,e2) 返回列表中的最大周

  • MOD(x,y) 返回x除以y的余数

  • RAND() 返回0~1之间的一个随机小数

  • RAND(x) 返回0~1之前的一个随机小数,x作为种子值,当两个函数的种子值相同时,返回同一个小数

  • ROUND(x) 返回一个对x的值进行四舍五入后,最接近x的整数

  • ROUND(x,y) 返回一个对x的值进行四舍五入后,最接近x的整数,结果保留y位小数

  • TRUNCATE(x,y) 返回数字x截断y位小数后的结果

  • SQRT(x) 返回x的平方根,负数返回NULL

    -- 基本函数
    SELECT ABS(-14),SIGN(12),PI(),CEIL(12.14),FLOOR(12.14)
    FROM DUAL;
    ​
    SELECT LEAST(12,15),GREATEST(12,15),MOD(45,8),RAND(),RAND(2),RAND(2)
    FROM DUAL;
    ​
    SELECT ROUND(15.1678),ROUND(13.4915,3),TRUNCATE(18.15642,2),SQRT(4)
    FROM DUAL;

2.角度,弧度互换函数

  • RADIANS(x) 将角度转换为弧度

  • DEGREES(x) 将弧度转换为角度

    -- 角度,弧度函数
    SELECT RADIANS(90),RADIANS(1.2346),RADIANS(DEGREES(1.46761))
    FROM DUAL;

3.三角函数

  • SIN(x) 返回x的正弦值,其中x的参数为弧度

  • ASIN(x) 返回x的反正弦值.获取正弦为x的值,不在-1~1之间的返回NULL

  • COS(x) 返回x的余弦值,其中x的参数为弧度

  • ACOS(x) 返回x的反余弦值,即获取余弦为x的值.不在-1~1之间的返回NULL

  • TAN(x) 返回x的正切值,其中参数x为弧度值

  • ATAN(x) 返回x的反正切值,即返回正切值为x的值

  • ATAN2(m,n) 返回两个参数的反正切函数

  • COT(x) 返回x的余切值,其中x为弧度值

    -- 三角函数
    SELECT SIN(RADIANS(30)),DEGREES(ASIN(1)),TAN(RADIANS(45)),COS(DEGREES(1.1245))
    FROM DUAL;

4.指数和对数

  • POW(x,y),POWER(x,y) 返回x的y次方

  • EXP(x) 返回e的x次方

  • LN(x),LOG(x) 返回以e为底x的对数.若x<=0,则返回NULL

  • LOG10(x) 返回以10为底x的对数

  • LOG2(x) 返回以2为底x的对数

    -- 指数和对数函数
    SELECT POW(2,5),LN(EXP(2)),LOG(10),LOG10(10),LOG2(4)
    FROM DUAL;

5.进制间转换

  • BIN(x) 返回x二进制的二进制代码

  • HEX(x) 返回x的十六进制代码

  • OCT(x) 返回x的八进制代码

  • CONV(x,f1,f2) 返回x的f1进制数变为f2进制数

    -- 进制间转换函数
    SELECT BIN(10),HEX(10),OCT(10),CONV(10,2,8)
    FROM DUAL;

三.字符串函数

  • ASCII(s) 返回字符串s中的第一个字符的ASCII码值

  • CHAR_LENGTH(s) 返回字符串s的字符串

  • LENGTH(s) 返回字符串的字节数

  • CONCAT(s1,s2) 将s1,s2拼接为一个字符串

  • INSERT(str,index,len,replaceStr) 将字符串str从第index个位置开始,len个字符长的字符串替换为replaceStr

  • REPLACE(str,a,b) 用字符串b替换str中的字符串a

  • UPPER(s)或UCASE(s) 将字符串s中小写字母转为大写

  • LOWER(s)或LCASE(s) 将字符串s中大写字母转为小写

    -- 字符串函数
    SELECT ASCII('gaiogn'),CHAR_LENGTH('agoine'),LENGTH('giughie'),CONCAT('fai','giiwh'),INSERT('sjgesg',3,2,'aa'),REPLACE('gdlgnrkl','g','s')
    FROM DUAL;

四.日期和时间函数

获取日期,时间

  • CURDATE(): 返回当前时间,只包含年月日

  • CURTIME(): 返回当前时间,只包含时分秒

  • NOW(): 返回当前日期和时间

  • UTC_DATE(): 返回世界标准日期

  • UTC_TIME(): 返回时间标准时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会写代码的菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值