博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql 函数
阅读量:5269 次
发布时间:2019-06-14

本文共 3136 字,大约阅读时间需要 10 分钟。

内置函数

一、数学函数    ROUND(x,y)        返回参数x的四舍五入的有y位小数的值            RAND()        返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。二、聚合函数(常用于GROUP BY从句的SELECT查询中)    AVG(col)返回指定列的平均值    COUNT(col)返回指定列中非NULL值的个数    MIN(col)返回指定列的最小值    MAX(col)返回指定列的最大值    SUM(col)返回指定列的所有值之和    GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果    三、字符串函数    CHAR_LENGTH(str)        返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。    CONCAT(str1,str2,...)        字符串拼接        如有任何一个参数为NULL ,则返回值为 NULL。    CONCAT_WS(separator,str1,str2,...)        字符串拼接(自定义连接符)        CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。    CONV(N,from_base,to_base)        进制转换        例如:            SELECT CONV('a',16,2); 表示将 a 由16进制转换为2进制字符串表示    FORMAT(X,D)        将数字X 的格式写为'#,###,###.##',以四舍五入的方式保留小数点后 D 位, 并将结果以字符串的形式返回。若  D 为 0, 则返回结果不带有小数点,或不含小数部分。INSERT(str,pos,len,newstr)        在str的指定位置插入字符串            pos:要替换位置其实位置            len:替换的长度            newstr:新字符串        特别的:            如果pos超过原字符串长度,则返回原字符串            如果len超过原字符串长度,则由新字符串完全替换    INSTR(str,substr)        返回字符串 str 中子字符串的第一个出现位置。    LEFT(str,len)        返回字符串str 从开始的len位置的子序列字符。    LOWER(str)        变小写    UPPER(str)        变大写       REVERSE(str)        返回字符串 str ,顺序和字符顺序相反。            SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)        不带有len 参数的格式从字符串str返回一个子字符串,起始于位置 pos。带有len参数的格式从字符串str返回一个长度同len字符相同的子字符串,起始于位置 pos。 使用 FROM的格式为标准 SQL 语法。也可能对pos使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的pos 字符,而不是字符串的开头位置。在以下格式的函数中可以对pos 使用一个负值。四、日期和时间函数    CURDATE()或CURRENT_DATE() 返回当前的日期    CURTIME()或CURRENT_TIME() 返回当前的时间    DAYOFWEEK(date)   返回date所代表的一星期中的第几天(1~7)    DAYOFMONTH(date)  返回date是一个月的第几天(1~31)    DAYOFYEAR(date)   返回date是一年的第几天(1~366)    DAYNAME(date)   返回date的星期名,如:SELECT DAYNAME(CURRENT_DATE);    FROM_UNIXTIME(ts,fmt)  根据指定的fmt格式,格式化UNIX时间戳ts    HOUR(time)   返回time的小时值(0~23)    MINUTE(time)   返回time的分钟值(0~59)    MONTH(date)   返回date的月份值(1~12)    MONTHNAME(date)   返回date的月份名,如:SELECT MONTHNAME(CURRENT_DATE);    NOW()    返回当前的日期和时间    QUARTER(date)   返回date在一年中的季度(1~4),如SELECT QUARTER(CURRENT_DATE);    WEEK(date)   返回日期date为一年中第几周(0~53)    YEAR(date)   返回日期date的年份(1000~9999)        重点:    DATE_FORMAT(date,format) 根据format字符串格式化date值五、加密函数    MD5()            计算字符串str的MD5校验和    PASSWORD(str)           返回字符串str的加密版本,这个加密过程是不可逆转的,和UNIX密码加密过程使用不同的算法。六、控制流函数                CASE WHEN[test1] THEN [result1]...ELSE [default] END        如果testN是真,则返回resultN,否则返回default    CASE [test] WHEN[val1] THEN [result]...ELSE [default]END          如果test和valN相等,则返回resultN,否则返回default    IF(test,t,f)           如果test是真,返回t;否则返回f    IFNULL(arg1,arg2)         如果arg1不是空,返回arg1,否则返回arg2    NULLIF(arg1,arg2)         如果arg1=arg2返回NULL;否则返回arg1
View Code

自定义函数

CREATE FUNCTION f_name(paramters)returns dataTypereturn value;

说明: paramters 只能是in 输入参数 参数名 类型 必须有返回值 不能呢加begin 和end returns 后面是返回值的类型 这里不加分号 return 后面是要返回的值

create function addfuntion(a int,b int)returns int return a + b;#执行函数select addfuntion(1,1);

注意:

函数只能返回一个值 函数一般不涉及数据的增删改查 就是一个通用的功能 调用自定义的函数 与调用系统的一致 不需要call 使用select 可获得返回值 函数中不能使用sql语句 就像在java中不能识别sql语句一样

 

转载于:https://www.cnblogs.com/msj513/p/10022317.html

你可能感兴趣的文章
mysql-5.7 innodb 的并行任务调度详解
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Linux中防火墙centos
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
centos下同时启动多个tomcat
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
Leetcode Balanced Binary Tree
查看>>
go:channel(未完)
查看>>
[JS]递归对象或数组
查看>>
多线程《三》进程与线程的区别
查看>>
linux sed命令
查看>>
html标签的嵌套规则
查看>>
湖南多校对抗赛(2015.03.28) H SG Value
查看>>
hdu1255扫描线计算覆盖两次面积
查看>>
hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
查看>>
bzoj3224 splay板子
查看>>
程序存储问题
查看>>