mysql常见函数总结

一、mysql函数是工作中极其常用的知识,但很多时候会经常忘记,故在在此做一个总结
1、对时间的操作的函数


//获取当前的时间 前一天
select date_sub(CURRENT_DATE,interval 1 day)
//获取当前的时间 后一天
select date_sub(CURRENT_DATE,interval -1 day)
//获取当前的时间 前一个月
select date_sub(CURRENT_DATE,interval 1 month)
//获取当前的时间 前一个年
select date_sub(CURRENT_DATE,interval 1 year)
select now(),CURRENT_DATE,CURRENT_TIME from dual

//通过对 now() 的一些处理 获取不同时间格式的时间
select date_format(now(),'%Y/%m/%d');
select time_format(now(),'%H-%i-%S');
//对时间戳转化为字符串
from_unixtime(time/1000,'%Y-%m-%d %H:%i:%s')
//将字符串转化为时间
SELECT STR_TO_DATE('2019-09-01', '%Y-%m-%d') VAULE

//对当前时间减少固定时间
//当前时间前5分钟
select now() -interval 5 MINUTE
//当前时间后5分钟
select now() +interval 5 MINUTE
//当前时间前5小时
select now() -interval 5 HOUR

//将时间戳转化为字符串
select from_unixtime(dt/1000,'%Y-%m-%d')
//获取当前时间前5天的时间的时间戳
select unix_timestamp(now() - interval 5 day)

2、对字符串操作的函数

//locate(s1,s2) 表示是s1在s2的位置(可以通过判断s1是否在存在s2)
select locate('df','sdfhf') 

//lower(s) 对s字符串转化为小写
select LOWER('GFJ')

//upper(s) 对s字符串转化为大写
select upper('Gsdf')

//left(s,2) 返回字符串的前两位
select left('Gsdf',2)

//lpad(s,len,s1) 在字符串 s 的左边 处填充字符串 s1, 使字符串长度达到 len
select lpad('34',4,'0')

//rpads,len,s1) 在字符串 s 的右边边 处填充字符串 s1, 使字符串长度达到 len
select rpad('34',4,'0')

//substr(s,start,len) 将s字符串 从第 start个字符开始,截图len长度为len的字符【同substring(s,start,len)】
select substr('abcdef',2,3)
select substring('abcdef',2,3)

//SUBSTRING_INDEX(s, 's1', n)  截取 s字符串出现s1第 n个字符的字符串(从头部到n个字符的字符串)
select SUBSTRING_INDEX('abcdef', 'c', 1)

//SUBSTRING_INDEX(s, 's1', n)  截取 s字符串出现s1第 n个字符的字符串(从尾部到n个字符的字符串)
select SUBSTRING_INDEX('abcdef', 'c', -1)

3、常用的其他函数

//convert('234.32',decimal()) 转化为保留两位小数的数字
select CONVERT('34.54534',decimal(5,2))

//SQL_CALC_FOUND_ROWS  ,FOUND_ROWS() 共同使用
(用于使用类似count)
select SQL_CALC_FOUND_ROWS * from sys_user
SELECT FOUND_ROWS();

//case when用法
 select case '1'
            when '1' then '男'
            when '2' then '女'
            else '其他' end

4、索引常用语句

//查看表所有的索引
show index from user_table;
// 添加索引
alter table user_table  add index id_name_index(uuid,name);
alter table  user_table  ADD UNIQUE (column)
alter table  user_table  ADD PRIMARY KEY (columnt)

//删除索引
drop index id_name_index on user_table;

5、sql进程操作(删除死锁)

//查看所有进程
show processlist;
//当前运行的所有事务  (trx_mysql_thread_id)
select * from information_schema.innodb_trx;  
//当前出现的锁  (lock_id)
select * from information_schema.innodb_locks;  
//死锁删除进程  id(show processlist 出现id列名)
kill  id;

6、对表操作的常见语句

//在name后面添加password1这一列
alert table user_table add column password1 varchar(255) after name;
//删除列
alter table user_table drop column password1;
//修改列的类型
alter table user_table modify password1 varchar(125);

你可能感兴趣的:(mysql)