Mysql中的常用函数:

1.字符串函数:

(1).合并字符串

concat():// concat(‘M‘,‘y‘,"SQL",‘5.5‘);== MySQL5.5//当传入的参数有一个值为NULL,返回的结果值为NULL

concat_ws();// 指定分隔符插入到字符串中:concat_ws(":",‘2017‘,‘09‘);==2017:09,但如果分隔符是NULL的话,结果就为NULL,参数是NULL,不影响结果

(2).比较字符串大小的函数:

select strcmp(字符串1,字符串2);大于返回1,小于返回-1,等于返回0

(3).获取字符串长度的函数:

length(); // 计算空格,指的是传入参数的长度(字节长度),一个汉字是两个字节.

char_length();// 传入参数的字符数(字符长度)

(4).字母大小写转换函数:

UPPER();或者是UCASE()转化为大写

LOWER();

(5).查找字符串:

select FIND_IN_SET(查找字符串,目标字符串集合);// 返回字符串位置的函数,目标字符串是以逗号分割的字符串集合,下标从1开始

select FIELD(查找字符串,目标字符串1,目标字符串2,...........);// 返回字符串位置的函数

LOCATE(str1,str);// 返回str中字符串str1的开始位置

POSITION(str1 IN str);// 返回str中字符串str1的开始位置

INSTR(str,str1); // 返回str中字符串str1的开始位置

ELT(n,str1,str2......,strn);// 返回第n个字符串

MAKE_SET(num,str1,str2,...strn) ;// 先将数值num转化为二进制,然后按照二进制数从参数str1,str2,....,strn中选取相应的字符串

例子:select BIN(5) as 二进制数,MAKE_SET(5,‘MYSQL‘,‘ORACLE‘,‘SQL SERVER‘,‘POSTGRESQL‘) as 选取后的字符串;// 结果为MYSQL,SQL SERVER

(6).截取字符串函数:

LEFT(str,num);// 从左边截取,字符串是str,长度是num

RIGHT(str,num);// 从右边截取,字符串是str,长度是num

SUBSTRING(str,num,len);// 字符串是str,从num位置开始,长度是len,包含num位置

MID(str,num,len);// 字符串是str,从num位置开始,长度是len,包含num位置

(7),去除字符串的首尾空格:

LTRIM(str);// 去除字符串开始处空格

RTRIM(str);// 去除字符串结束处空格

TRIM(str);// 去除字符串首尾空格

(8).替换字符串函数:

INSERT(str,pos,len,newstr);// str是原字符串,pos是需要替换的开始位置,len是替换的长度(根据需要来定),newstr是替换的新字符串

REPLACE(str,substr,newstr);// str是原字符串,substr是需要替换的字符串,newstr是替换substr的字符串,替换所有匹配的字符串

注意:比较以下两个结果:

select replace("THIS IS TEST STRING","IS","IS NOT");// THIS NOT IS NOT TEST STRING,不区分单词,切记

select replace("THIS IS TEST STRING"," IS "," IS NOT ");//THIS IS NOT TEST STRING

2.数值函数:

(1).获取随机数:

RAND(); // 返回的数完全随机

RAND(x); // x表示数字,返回的随机数值是相同的(确定的)

(2).获取整数的函数:

CEIL(x);// 上取整

FLOOR(x);// 下取整

(3).截取数值函数:

TRUNCATE(x,y);// x表示要截取的数值,y表示小数点后几位,也就是保留几位小数,是直接舍去,而不是四舍五入.

(4).四舍五入函数:

ROUND(x);

ROUND(x,y);// 返回数值x保留到小数点后y位

3.日期函数:

(1).获取当前日期和时间函数:

now();// 当前日期和时间

locatime();// 当前日期和时间

current_timestamp();// 当前日期和时间

SYSDTAE();// 当前日期和时间

(2).当前日期:

curdate();// 当前日期

current_date();// 当前日期

(3).当前时间:

curtime();

current_time();

(4).各种方式显示日期和时间:

unix_timestamp(日期类型的字符串);// 将日期类型的字符串转化为整形(秒数),UNIX格式

from_unixtime("整形");// 将整形字符串转化为日期,普通格式

UTC_DATE();// utc日期,只有日期

UTC_TIME();// utc时间 ,只有时间

(5).获取日期和时间各部分值:

SELECT NOW() 当前日期和时间,

YEAR(NOW()) 年,

QUARTER(NOW()) 季度,

MONTH(NOW()) 月,

WEEK(NOW())星期,

DAYOFMONTH(NOW()) 天,

HOUR(NOW()) 小时,

MINUTE(NOW()) 分,

SECOND(NOW()) 秒;

(6).月(参数都是日期类型的字符串):

MONTH(date);

MONTHNAME(date);

(7).星期:

week(date);// 年中第几个星期

weekofyear(date);// 年中第几个星期

dayname(date);// 星期,英文显示

dayofweek(date);// 星期(不理解,用下面的)

weekday(date);// 星期,数字表示

(8).天

dayofyear(date);// 年中的第几天

dayofmonth(date);// 月中的第几天

(9).EXTRACT函数

EXTRACT(YEAR from NOW()); // 年

EXTRACT(month from NOW()); // 月

EXTRACT(day from NOW()); // 日

EXTRACT(hour from NOW()); // 时

EXTRACT(minutefrom NOW()); // 分

EXTRACT(second from NOW()); // 秒

(10).计算日期和时间的函数:

SELECT NOW() 当前日期和时间,

TO_DAYS(NOW()) 相隔天数, // 距离0000年1月1日

FROM_DAYS(TO_DAYS(NOW())) 一段时间后日期和时间,

DATEDIFF(NOW(),‘2000-12-01‘) 相隔天数;

(11).与指定日期和时间操作:

ADDDATE(date,n); // 计算date加上n天后的日期

SUBDATE(date,n); // 计算date减去n天后的日期

ADDDATE(d,INTERVAL expr type);// type的类型查看http://www.w3school.com.cn/sql/func_date_add.asp

SUBDATE(d,INTERVAL expr type);

例子:

select adddate(now(),interval ‘2,3‘ year_month ) ‘2年3个月后的日期‘;

4.系统信息函数

(1).获取MySQL系统信息: 使用\h

SELECT

VERSION() 版本号,

DATABASE() 数据库名,

USER() 用户名;

(2).获取自增长约束的最后ID值

SELECT LAST_INSERT_ID();

(3).其他函数:


IF(value,t f)

如果value是真,返回t,否则返回f

IFNULL(value1,value2)

如果value1不为空返回value1,否则返回value2

CASE WHEN [value1] THEN[result1]…ELSE[default]

END


如果value1是真,返回result1,否则返回default

CASE [expr]WHEN[value1] THEN[result1]…ELSE[default]

END


如果expr等于value1,返回result1,否则返回default

函      数

作                用

PASSWORD(str)

实现对字符串str进行加密

FORMAT(x,n)

实现将数字x进行格式化,保留n位小数

INET_ATON(ip)

实现将IP地址转换成数字

INET_NTOA(x)

实现将数字转换成IP

GET_LOCT(name,time)

创建一个持续时间为time的名为name的锁

RELEASE_LOCT(name)

为名为name的锁进行解锁

BENCHMARK(count,expr)

实现将表达式重复执行count次

CONVERT(s USING cs)

实现将字符串s的字符集变成cs

CONVERT(x,type)

实现将x变成type类型
时间: 2024-08-28 13:20:57

Mysql中的常用函数:的相关文章

mysql存储过程及常用函数

原文:mysql存储过程及常用函数 一.函数 1.数学函数 CEIL()进一取整 SELECT CEIL(1.2);2 FLOOR()舍一取整 SELECT FLOOR(1.9);9 MOD取余数(取模) SELECT MOD(3,8);3--3对8取模 POWER()幂运算 SELECT POWER(3,2);9 ROUND()四舍五入 SELECT ROUND(123.456,2);123.46 TRUNCTATE数字截取 SELECT TRUNCATE(123.456,2);123.45

Mysql中使用find_in_set函数查找字符串

mysql有个表的字段的存储是以逗号分隔的,如domain字段login.s01.yy.com,s01.yy.com,s02.yy.com.现在要查找s01.yy.com这个.我们用like查找好像不是非常准确.那就试试mysql中的find_in_set函数吧. SELECT find_in_set('a','a,b,c,d') as test

socket编程之三:socket网络编程中的常用函数

这节本来打算先给出常用函数介绍,再给两个代码实例,写着写着发现越来越长,决定把代码放在下一节. 本节内容持续更新...... 1 socket()函数 原型: int socket(int domain, int type, int protocol); 描述: 类似打开一个文件,返回一个socket描述符,唯一标识一个socket,后面相应的操作都是这用这个socket描述符. 参数: domain:协议族,常用的协议族有AF_INET.AF_INET6.AF_LOCAL.AF_ROUTE等:

头文件algorithm中的常用函数

头文件algorithm中的常用函数 一.非修改性序列操作(12个) 循环         对序列中的每个元素执行某操作         for_each() 查找         在序列中找出某个值的第一次出现的位置         find() 在序列中找出符合某谓词的第一个元素     find_if() 在序列中找出一子序列的最后一次出现的位置         find_end() 在序列中找出第一次出现指定值集中之值的位置     find_first_of() 在序列中找出相邻的一对

Mysql中使用聚合函数对null值的处理

平时因为对于数据库研习的不深,所以在面试的时候问了一些平常遇到过的问题居然没法很肯定地回答出来,实在让自己很恼怒! 这次让我记忆深刻的一个问题是: 在mysql中使用聚合函数的时候比如avg(t),t是表中一个类型int型的字段,可为null,有三行数据,三行中的数据分别为:10,null,20,请问最后的结果是什么? 我的回答是15,在面试结束之后我尝试了一下结果没错,不过我对于聚集函数对null的处理貌似错了,我认为是聚合函数会将null值看作0,找了一番,博客中都认为是忽略null值,因为

MySQL 中的 FOUND_ROWS() 函数

移植sql server 的存储过程到mysql中,遇到了sql server中的: IF @@ROWCOUNT < 1 对应到mysql中可以使用 FOUND_ROWS() 函数来替换. 1. found_rows() 函数的文档: http://dev.mysql.com/doc/refman/5.6/en/information-functions.html#function_found-rows 1)found_rows() 的第一种使用情况(带有SQL_CALC_FOUND_ROWS,

numpy函数库中一些常用函数的记录

numpy函数库中一些常用函数的记录 最近才开始接触python,python中为我们提供了大量的库,不太熟悉,因此在<机器学习实战>的学习中,对遇到的一些函数的用法进行记录. (1)mat( ) numpy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素.虽然他们看起来很相似,但是在这两个数据类型上执行相同的数学运算可以得到不同的结果,其中numpy函数库中matrix与MATLAB中matrices等价. 调用mat( )函数可以将数组转

Mysql中关于 group_concat函数详解

group_concat()主要功能:能将相同的行组合起来 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码   select * from aa; +------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200 ||3 | 500 |+------+---

SQLServer 中实现类似MySQL中的group_concat函数的功能

SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起. 后在网上查找,找到了可以实现此功能的方法,特此记录下. SELECT a, stuff((SELECT ',' + b FROM #tb WHERE a = t.a FOR xml path('')), 1, 1, '' )AS b from  # tb AS t GROUP BY a; 先对a列进行分组,对分组中的b以Xml形式输出,再使用stuff将开关多出的,删掉. 具体实现参考:http:/