澳门游艺场9159-9159金沙游戏场

1.字符串函数,虽然每种数据库都支持SQL

作者: 澳门游艺场  发布:2020-02-01

在MySQL中,函数不仅可以出现在select语句及其子句中,而且还可以出现在update、delete语句中。

Mysql中的常用函数:,Mysql常用函数:

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的类型查看 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类型

     

: Mysql中的常用函数:1.字符串函数:(1).合并字符串concat():// concat('M','y',"SQL",'5.5');== MySQL5.5//当传入的参数有一...

常用的函数有:

  1. 字符串函数;主要用于处理字符串。

  2. 数值函数;主要用于处理数字。

  3. 日期和时间函数;主要用于处理日期和事件。

  4. 系统信息函数;获取系统信息。

1. 使用字符串函数:

虽然每种数据库都支持SQL,但是每种数据库拥有各自所支持的函数。

1.1 合并字符串函数concat() 和 concat_ws():

在MySQL中可以通过函数concat()和concat_ws()将传入的参数连接成为一个字符串。

语法定义为:

concat(s1, s2,...sn)//该函数会将传入的参数连接起来返回合并的字符串类型的数据。如果其中一个参数为null,则返回值为null.

示例:

mysql select concat('my','s','ql');+-----------------------+| concat('my','s','ql') |+-----------------------+| mysql |+-----------------------+1 row in set (0.00 sec)mysql select concat('my','s','ql',null);+----------------------------+| concat('my','s','ql',null) |+----------------------------+| NULL |+----------------------------+1 row in set (0.00 sec)mysql select concat(curdate(), 12.2);+-------------------------+| concat(curdate(), 12.2) |+-------------------------+| 2016-08-2512.2 |+-------------------------+1 row in set (0.00 sec)//说明:将当前时间和数值12.2合并。即concat()函数不仅可以接受字符串参数,而且还可以接受其他类型参数。

concat_ws()的定义:

concat_ws(sep,s1,s2,...sn)//该函数与concat()相比,多了一个表示分隔符的seq参数,不仅将传入的其他参数连接起来,而且还会通过分隔符将各个字符串分割开来。//分隔符可以是一个字符串,也可以是其他参数。如果分割符为null,则返回结果为null。函数会忽略任何分割符后的参数null.

示例:

mysql select concat_ws('-','020','87658907');+---------------------------------+| concat_ws('-','020','87658907') |+---------------------------------+| 020-87658907 |+---------------------------------+1 row in set (0.00 sec)mysql select concat_ws(null,'020','87658907');+----------------------------------+| concat_ws(null,'020','87658907') |+----------------------------------+| NULL |+----------------------------------+1 row in set (0.00 sec)//当分隔符为null时,则返回结果为nullmysql select concat_ws('-','020',null,'87658907');+--------------------------------------+| concat_ws('-','020',null,'87658907') |+--------------------------------------+| 020-87658907 |+--------------------------------------+1 row in set (0.00 sec)//不是第一个参数的null将被忽略

1.2 比较字符串大小函数strcmp():

strcmp()定义为:

strcmp(str1,str2);//如果参数str1大于str2,返回1;如果str1小于str2,则返回-1;如果str1等于str2,则返回0;

示例:

mysql select strcmp('abc','abd'),strcmp('abc','abc'),strcmp('abc','abb');+---------------------+---------------------+---------------------+| strcmp('abc','abd') | strcmp('abc','abc') | strcmp('abc','abb') |+---------------------+---------------------+---------------------+| -1 | 0 | 1 |+---------------------+---------------------+---------------------+1 row in set (0.00 sec)

1.3 获取字符串长度函数length()和字符数函数char_length():

length()的定义如下:

length(str)

char_length(str)的定义如下:

char_length(str)

示例:

mysql select length('mysql'),length('汉字'),char_length('mysql'),char_length('汉字');+-----------------+----------------+----------------------+---------------------+| length('mysql') | length('汉字') | char_length('mysql') | char_length('汉字') |+-----------------+----------------+----------------------+---------------------+| 5 | 4 | 5 | 4 |+-----------------+----------------+----------------------+---------------------+1 row in set, 2 warnings (0.00 sec)//字符串‘MySQL'共有5个字符,但是占6个字节空间。这是因为每个字符串都是以结束。两个函数都是获取字符串的字符数而不是所占空间大小。

1.4 字母的大小写转换upper()和lower():

字母大小转换函数:upper(s); ucase(s);字母小写转换函数:lower(s); lcase(s);

示例:

mysql select upper('mysql'),ucase('mYsql'),lower('MYSQL'),lcase('MYsql');+----------------+----------------+----------------+----------------+| upper('mysql') | ucase('mYsql') | lower('MYSQL') | lcase('MYsql') |+----------------+----------------+----------------+----------------+| MYSQL | MYSQL | mysql | mysql |+----------------+----------------+----------------+----------------+1 row in set (0.00 sec)

1.5 查找字符串:

mysql中提供了丰富的函数去查找字符串的位置。分别有find_in_set()函数、field()函数、locate()函数、position()函数和instr()函数。同时还提供了查找指定位置的字符串的函数elt()。

1.5.1 返回字符串位置的find_in_set()函数:

函数定义为:

find_in_set(str1,str2) //会返回在字符串str2中与str1相匹配的字符串的位置,参数str2字符串中将包含若干个用逗号隔开的字符串。

示例:

mysql select find_in_set('mysql','oracle,mysql,db2');+-----------------------------------------+| find_in_set('mysql','oracle,mysql,db2') |+-----------------------------------------+| 2 |+-----------------------------------------+1 row in set (0.00 sec)

1.5.2 返回指定字符串位置的field()函数:

函数定义为:

filed(str,str1,str2...)//返回第一个与字符串str匹配的字符串的位置。

示例:

mysql select field('mysql','oracle','db2','redis','mysql');+-----------------------------------------------+| field('mysql','oracle','db2','redis','mysql') |+-----------------------------------------------+| 4 |+-----------------------------------------------+1 row in set (0.00 sec)

1.5.3 返回子字符串相匹配的开始位置:

mysql中有三个函数可以获取子字符串相匹配的开始位置,分别是locate()、position()、instr()函数。

locate(str1,str) //返回参数str中字符串str1的开始位置

position(str1 in str) 和 instr(str,str1)

示例:

mysql select locate('sql','mysql'),position('sql' in 'mysql'),instr('mysql','sql');+-----------------------+----------------------------+----------------------+| locate('sql','mysql') | position('sql' in 'mysql') | instr('mysql','sql') |+-----------------------+----------------------------+----------------------+| 3 | 3 | 3 |+-----------------------+----------------------------+----------------------+1 row in set (0.00 sec)

1.5.4 返回指定位置的字符串的elt()函数:

函数语法为:

elt(n,str1,str2...);

示例:

mysql select elt(1,'mysql','db2','oracle');+-------------------------------+| elt(1,'mysql','db2','oracle') |+-------------------------------+| mysql |+-------------------------------+1 row in set (0.00 sec)

1.5.5 选择字符串的make_set()函数:

函数定义为:

make_set(num,str1,str2...strn)

示例:

mysql select bin(5),make_set(5,'mysql','db2','oracle','redus');+--------+--------------------------------------------+| bin(5) | make_set(5,'mysql','db2','oracle','redus') |+--------+--------------------------------------------+| 101 | mysql,oracle |+--------+--------------------------------------------+1 row in set (0.00 sec)//make_set()首先会将数值num转换成二进制数,然后按照二进制从参数str1,str2,...,strn中选取相应的字符串。再通过二进制从右到左的顺序读取该值,如果值为1选择该字符串,否则将不选择该字符串。

1.6 从现有字符串中截取子字符串:

截取子字符串的函数有:left(),right(),substring(),mid();

1.6.1 从左边或右边截取子字符串:

函数定义为:

left(str,num)//返回字符串str中包含前num个字母的字符串。right(str,num)//返回字符串str中包含后num个字母的字符串。

9159金沙游戏场 ,示例:

mysql select left('mysql',2),right('mysql',3);+-----------------+------------------+| left('mysql',2) | right('mysql',3) |+-----------------+------------------+| my | sql |+-----------------+------------------+1 row in set (0.00 sec)

1.6.2 截取指定位置和长度的字符串:

可以通过substring()和mid()函数截取指定位置和长度的字符串。

函数语法为:

substring(str,num,len) //返回字符串str中的第num个位置开始长度为len的子字符串。mid(str,num,len)

示例:

mysql select substring('zhaojd',2,3),mid('zhaojd',2,4);+-------------------------+-------------------+| substring('zhaojd',2,3) | mid('zhaojd',2,4) |+-------------------------+-------------------+| hao | haoj |+-------------------------+-------------------+1 row in set (0.00 sec)

1.7 去除字符串的首尾空格:

去除字符串首尾空格的函数有:ltrim()、rtrim()、trim()

1.7.1 去除字符串开始处的空格:

函数定义如下:

ltrim(str) //返回去掉开始处空格的字符串

示例:

mysql select length(concat('-',' mysql ','-')),length(concat('-',ltrim(' mysql '),'-'));+-----------------------------------+------------------------------------------+| length(concat('-',' mysql ','-')) | length(concat('-',ltrim(' mysql '),'-')) |+-----------------------------------+------------------------------------------+| 9 | 8 |+-----------------------------------+------------------------------------------+1 row in set (0.00 sec)

1.7.2 去除字符串结束处的空格:

rtrim(str) //返回去掉结束处空格的字符串。

澳门游艺场9159 ,示例:

mysql select length(concat('-',' mysql ','-')) ,length(concat('-',rtrim(' mysql '),'-'));+-----------------------------------+------------------------------------------+| length(concat('-',' mysql ','-')) | length(concat('-',rtrim(' mysql '),'-')) |+-----------------------------------+------------------------------------------+| 9 | 8 |+-----------------------------------+------------------------------------------+1 row in set (0.00 sec)

1.7.3 去除字符串首尾空格:

trim(str) //返回去掉首尾空格的字符串

示例:

mysql select concat(' mysql ') origi,length(concat(' mysql ')) orilen, concat(trim(' mysql ')) after, length(concat(trim(' mysql '))) afterlen;+---------+--------+-------+----------+| origi | orilen | after | afterlen |+---------+--------+-------+----------+| mysql | 7 | mysql | 5 |+---------+--------+-------+----------+1 row in set (0.00 sec)

1.8 替换字符串:

实现替换字符串的功能,分别为insert()和replace()

本文由澳门游艺场9159发布于澳门游艺场,转载请注明出处:1.字符串函数,虽然每种数据库都支持SQL

关键词: