第四章 MySQL函数(2010-8-17 23:02)
课程目录
MySQL运算符
MySQL流程控制函数
MySQL字符串函数
MySQL数字函数
MySQL日期时间函数
MySQL转换函数
MySQL其他函数
1、运算符
1)算术运算符
=,!= (<>),>,>=,<,<=
null
is null,is not null,isnull(查询结果)
between min and max
in
2)逻辑运算符
在mysql中,返回值由 1(true)、0(false)和null实现
not或! 逻辑非
and或&& 逻辑与
or 或|| 逻辑或
xor 逻辑异或
ifnull(exprl,value)
如果exprl为非null的,ifnull返回value,否则返回exprl。
ifnull()返回一个数字或字符串值,这取决于它被使用的语境。
3) case.. when..
case value when [条件] then result [when [条件] then result.. ] [else result] end
当第一个为真值的条件,返回该条件的结果。如果没有匹配的结果值,
那么else后的结果将被返回。如果没有else部分,那么null被返回。
4)if(expr1,expr2,expr3)
如果exprl为真(expr1<>0以及expr1<>null),那么if()返回expr2,否则返回expr3。
if()返回一个数字或字符串,这取决于它被使用的语境。
mysql->select if(1>2,3,4);
->4;
5)nullif(expr1,expr2)
如果expr1=expr2为真,返回null,否则返回expr1。
它等同于case when expr1=expr2 then null else expr1 end;
mysql->select nullif(1,1);
->null;
6)括号
()括号,使用它来强制一个表达式的计算顺序。
2、字符串函数
1)返回字符串str最左边的那个字符串的ASCII码值。
ascii(x);
mysql->select ASCII('2');
->50
mysql->sleect ASCII(2);
->50
2)十进制转换成二进制
bin(x);
mysql->select bin(12);
->'1100'
3)十进制转换成八进制
oct(x)
mysql->select oct(12);
->'14'
4)十进制转换成十六进制
hex(x)
mysql->select hex(255);
->'ff'
5)char()
以整数类型解释参数,返回这个整数所代表的ascii码值给出的字符组成的字符串。
null值将被忽略;
mysql->select char(77,121,83,81,'76');
->'ff'
5)char_length(str)
返回字符串str的字符个数。
mysql->select char_length('text');
->4
6)length(str)
返回字符串的字节数。
mysql->select length('王超');
->4
7)concat(str1,str2,..)
将参数连接成字符串返回。如果有任何一个参数为null,返回值也为null。
可以有超过2个的参数。数字参数将被转换为相等价的字符串形式。
mysql->select concat('my','s','ql');
->mysql
mysql->select concat('my',null,'sql');
->null
mysql->select concat(14.3,5);
->14.35
8)locate(子串substr,母串str)
返回子串substr在字符串str中第一次出现的位置。如果子串substr在str中不存在,返回值为0;
mysql->select locate('bar','foobar');
->4
9)instr(str,substr)
返回子串substr在字符串str中第一次出现的位置。这与有两个参数形式的locate()相似,
只是参数的位置被颠倒了;
mysql->select instr('foobar','bar');
->4
10)lpad(str,len,padstr)
用字符串padstr对str进行左边填补直至它的长度达到len个长度,然后返回str。
如果str的长度长于len,那么它将被截除到len个字符。
mysql->select lpad('hi',6,'ba');
->'babahi'
11)rpad(str,len,padstr)
用字符串padstr对str进行右边填补直至它的长度达到len个长度,然后返回str。
如果str的长度长于len,那么它将被截除到len个字符。
mysql->select lpad('hi',6,'ba');
->'hibaba'
12)left(str,len)
返回字符串str中最左边的len个字符;
mysql->select left('wabcwang',2);
->'wa'
13)right(str,len)
返回字符串str中最左边的len个字符;
mysql->select right('wabcwang',2);
->'ng'
14)substring(str,pos,len)
从字符串str的pos位置起返回len个字符的子串。
mysql->select substring('wabcwang',2,4);
->'abcw'
mid(str,pos,len)=substring(str,pos,len)
15)ltrim(str) rtrim(str)
ltrim(str)返回移除了领头的空格字符后的str;
rtrim(str)返回移除了尾部的空格字符后的str;
mysql->select ltrim(' wabcwang');
->'wabcwang'
16)trim([[both|leading|trailing][remstr]from]str)
移除字符串str中所有的remstr前缀或后缀,然后将其返回。
没有任何both、leading或trailing修饰符被给出,both被假定。
如果remstr没有被指定,空格将被移除。
mysql->select trim(' wabcwang ');
->'wabcwang'
mysql->select trim(leading '@' from '@@wabcwang@@');
->'wabcwang@@'
mysql->select trim(both '@' from '@@wabcwang@@');
->'wabcwang'
17)space(n)
返回有n个空格字符组成的字符串
18)repeat()
repeat(str,count)
返回一个由重复了count次的字符串str组成的字符串。如果count<=0,
返回一个空字符串。如果str或是count是null,返回值也为null。
mysql->select repeat('wabc',3)
->'wabcwabcwabc'
19)replace(str,from_str,to_str)
在字符串str中所有出现的字符串from_str均被to_str替换,
然后返回这个字符串。
mysql->select replace('www.mysql.com','com','com.cn');
->'www.mysql.com.cn'
20)reverse(str)
以颠倒的字符顺序返回字符串str;
mysql->select reverse('abc');
->'cba'
21)lcase(str) lower(str)
依照当前字符集设置映射,将字符串str中的所有字符串改变为小写,然后返回该值。
22)ucase(str) upper(str)
依照当前字符集设置映射,将字符串str中的所有字符串改变为大写,然后返回该值。
23)load_file(file_name)
读入文件,并将文件内容作为一个字符串返回。这个文件必须在服务器上,
必须指定文件完整的路径名,并且你必须有file权限。文件必须完全可读,
并且小于max_allowed_packet。如果该文件不存在,或因为上面的任一原因不能被读出,
函数返回null。
3、算术运算
常用的算术操作符均是可用的。加减乘除
注意被零除返回null。
如果一个参数是一个无符号的整数,另一个参数也是一个整数,结果也将是一个
无符号整数。
1) abs(x)
绝对值
2) div()取商
mysql->select 5 div 2;
->2;
3) %或是mod 取模
mysql->select 5 mod 2;
->1;
mod(n,m)
取模返回n被m除后的余数。
4) floor(x)
返回不大于x的最大整数
mysql->select floor(2.1);
->2;
mysql->select floor(-2.1);
->-3;
5) ceiling(x)
返回大于x的最小整数
mysql->select ceiling(1.23);
->2
mysql->sleect ceiling(-1.23);
->-1
6) round(x)
将参数x四舍五入到最近的整数,然后返回
round(x,d)
将一个数字四舍五入到d个小数后返回
mysql->select round(1.2333,3);
->1.233
7) exp(x)
返回值e的x次方
8) ln(x)
log(x)
返回x的自然对数
9) log(b,x)
返回x任意底b的对数;
10) sqrt(x)
返回x的非负平方根
11) pi()
返回pi值-圆周率。缺省显示五位小数,但是在mysql内部,为pi使用全部的双精度
mysql->select pi()+0.000000000000000;
->3.141592653589793116
12) sin/cos/tan(x)
返回x的正弦/余弦/正切
13) acos/asin/atan(x)
返回x的反余弦/反正弦/反正切
14)rand()
rand(n)
返回一个范围在0到1.0之间的随机浮点值。
如果一个整数参数n被指定,它被当做种子值使用(用于产生一个可重复的数值)
4、时间函数
1) now()
sysdate()
current_timestamp
以“yyyy-mm-dd hh:mm:ss” 或是yyyymmddhhmmmss格式返回当前的日期时间值,
返回的格式取决于该函数是用于字符串还是数字语境中。
2) curdate()
current_date
以“yyyy-mm-dd” 或yyyymmdd格式返回当前的日期值
返回的格式取决于该函数是用于字符串还是数字语境中。
3) curtime()
current_time
以“hh:mm:ss”或hhmmss格式返回当前的时间值
返回的格式取决于该函数是用于字符串还是数字语境中。
5、转换函数
1) 隐式转换
2)显示转换
cast(expression as type)
convert(expression ,type)
6、其它函数
1) database()
返回当前数据库名
2) user()
system_user()
session_user()
返回当前mysql用户名
3) password(str)
old_password(str)
从纯文本口令str计算一个口令字符串。这个函数对存储到
授权表user的password列中的mysql口令进行加密
----------------------------------------------------------------------------------
MySQL学习笔记(四)
最新推荐文章于 2022-11-16 22:29:29 发布