字符串函数

image.png

字符串函数-charset

select charset(列名) from 表名;

返回字符串集

字符串函数-concat

select concat(列名1,字符串,列名2...) from 表名;

连接字符串,将多个列和字符拼接成一列

字符串函数-instr

select instr(列名/string ,substring) from 表名;

返回substring在列名/string中出现的位置,没有则返回0

字符串函数- ucase

select ucase(列名) from 表名;

转成大写

字符串函数-lcase

select lcase(列名) from 表名;

转成小写

字符串函数 left/right

select left(string , length) from 表名

从string的左/右中取length个长度的字符显示

字符串函数- length

select length(列名) from 表名;

返回字符串长度

字符串函数-replace

select replace(列名,search_str,replace_str) from 表名;

在列名中用replace_str替换search_str

字符串函数-strcmp

select strcmp(列名1/string1,列名2/string2) from 表名;

比较两个字付串的大小,大于1,小于-1,等于0

字符串函数-substring

select substring(str,position,length) from 表名

从str的position[1开始计算]开始,取length个字符

字符串函数-ltrim/rtrim/trim

select ltrim/rtrim/trim(列名) from 表名;

去除左/右/左右两端的空格

数学函数

image.png

数学函数bs

select abs(列名) from 表名;

返回列数值的绝对值

数学函数-bin

select bin(列名) from 表名;

返回列数值的十进制;

数学函数-ceiling\floor

select seiling\floor(列名) from 表名;

返回向上\向下取整;

数学函数-conv

select conv(列名,原进制,现进制) from 表名;

返回列的现进制

数学函数-format

select format(列名,number) from 表名;

返回列数值四舍五入后的number位小数位数

数学函数-least

select least(列名1,列名2...) from 表名;

返回列中每行的最小值;

数学函数-mod

select mod(列名,number) from 表名;

返回列名数值对number求余后的值;

数学函数-rand

select rand([seed]) from dual;

返回随机数/有seed(数值)则返回固定随机数

日期函数

image.png

日期函数-current_date

select current_data() from dual;

返回当前的日期

日期函数-current_time

select current_time() from dual;

返回当前的时间

日期函数-current_timestamp

select current_timestamp() from dual;

返回当前的时间戳(年月日 时分秒)

日期函数-now

select now() from dual;

返回当前时间(年月日 时分秒)

函数-date

select date(列名(时间类型)) from 表名;

放回列的日期

日期函数-date_add

select * from 表名 where date_add(列名,interval 数值minute) >= now();

返回列时间加上数值后大于当前时间的行

日期函数-date_sub

select * from 表名 where date_add(now(),interval 数值 year/month/day) <= 列名;

日期函数-datediff/timediff

select datediff(列名1,列名2) from 表名;

返回两列差(天数差)/(时间差)

日期函数-year/month/day

select year/month/day(列名) from 表名;

返回列名时间的(年/月/日)

日期函数-unix_timestamp

select unix_timestamp() from dual;

返回从1970-01-01 00:00:00 到现在的秒数

日期函数-from_unixtime

select from_unixtime(时间戳,格式) from dual;

返回格式的时间戳

加密/系统函数

系统函数-user

select user() from dual;

返回用户@IP地址

系统函数-database

select datebase();

返回当前使用的数据库名称

加密函数-md5

select md5(str) from dual;

为字符串算出一个MD5 32位的字符串,(用户密码)加密

加密函数-password

select password(str) from dual;

为str密码加密(数据库的密码就是这种加密)

流程控制函数

image.png

流程控制函数-if

select if( 判断,结果1,结果2) from 表名;

判断为真返回结果1,为假返回结果2

流程控制函数-ifnull

select ifnull(列名,结果) from 表名

如果列值为空返回结果,不为空返回列的值

流程控制函数-case

mysql> select ename,job from emp;
+--------+-----------+
| ename  | job       |
+--------+-----------+
| SMITH  | CLERK     |
| ALLEN  | SALESMAN  |
| WARD   | SALESMAN  |
| JONES  | MANAGER   |
| MARTIN | SALESMAN  |
| BLAKE  | MANAGER   |
| CLARK  | MANAGER   |
| SCOTT  | ANALYST   |
| KING   | PRESIDENT |
| TURNER | SALESMAN  |
| JAMES  | CLERK     |
| FORD   | ANALYST   |
| MILLER | CLERK     |
+--------+-----------+
13 rows in set (0.07 sec)
mysql> select ename,(select case 
    ->          when job = 'CLERK' then '职员'
    ->          when job = 'MANAGE' then '经理'
    ->          when job = 'SALESMAN' then '销售人员'
    ->          else job end) as new_job from emp;
+--------+-----------+
| ename  | new_job   |
+--------+-----------+
| SMITH  | 职员      |
| ALLEN  | 销售人员  |
| WARD   | 销售人员  |
| JONES  | MANAGER   |
| MARTIN | 销售人员  |
| BLAKE  | MANAGER   |
| CLARK  | MANAGER   |
| SCOTT  | ANALYST   |
| KING   | PRESIDENT |
| TURNER | 销售人员  |
| JAMES  | 职员      |
| FORD   | ANALYST   |
| MILLER | 职员      |
+--------+-----------+
13 rows in set (0.07 sec)

参考视频:
韩顺平讲MySQL