MySQL- 常用的MySQL函数,指令等

MySQL查看版本:

status;

或者

 select version(); //select @@version

MySQL昨天, 一周前 ,一月前 ,一年前的数据 这里主要用到了  DATE_SUB(date,INTERVAL expr unit)

select DATE_SUB(NOW(),INTERVAL 1 DAY);
select DATE_SUB(NOW(),INTERVAL 1 WEEK);
select DATE_SUB(NOW(),INTERVAL 1 MONTH);
select DATE_SUB(NOW(),INTERVAL 1 YEAR);

MySQL增加日期  DATE_ADD(date,INTERVAL expr unit)

select DATE_ADD(date,INTERVAL expr unit)

MySQL格式化日期  DATE_FORMAT(date,format)

SELECT DATE_FORMAT(NOW(),'%Y-%m');
SELECT DATE_FORMAT(NOW(),'%Y')
%S, %s 两位数字形式的秒( 00,01, ..., 59)
%I, %i 两位数字形式的分( 00,01, ..., 59)
%H 两位数字形式的小时,24 小时(00,01, ..., 23)
%h 两位数字形式的小时,12 小时(01,02, ..., 12)
%k 数字形式的小时,24 小时(0,1, ..., 23)
%l 数字形式的小时,12 小时(1, 2, ..., 12)
%T 24 小时的时间形式(hh:mm:ss)
%r 12 小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM)
%p AM或PM
%W 一周中每一天的名称(Sunday, Monday, ..., Saturday)
%a 一周中每一天名称的缩写(Sun, Mon, ..., Sat)
%d 两位数字表示月中的天数(00, 01,..., 31)
%e 数字形式表示月中的天数(1, 2, ..., 31)
%D 英文后缀表示月中的天数(1st, 2nd, 3rd,...)
%w 以数字形式表示周中的天数( 0 = Sunday, 1=Monday, ..., 6=Saturday)
%j 以三位数字表示年中的天数( 001, 002, ..., 366)
%U 周(0, 1, 52),其中Sunday 为周中的第一天
%u 周(0, 1, 52),其中Monday 为周中的第一天
%M 月名(January, February, ..., December)
%b 缩写的月名( January, February,...., December)
%m 两位数字表示的月份(01, 02, ..., 12)
%c 数字表示的月份(1, 2, ...., 12)
%Y 四位数字表示的年份
%y 两位数字表示的年份
%% 直接值“%”

MySQL类型转换 CAST 和 CONVERT

MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值

select CAST(expr AS type)
select CONVERT(expr,type)

类型必须是以下类型:

可用的类型:    
  二进制,同带binary前缀的效果 : BINARY    
  字符型,可带参数 : CHAR()     
  日期 : DATE     
  时间: TIME     
  日期时间型 : DATETIME     
  浮点数 : DECIMAL      
  整数 : SIGNED     
  无符号整数 : UNSIGNED

 查询重复数据

select  type,raw,auth ,report_type from category_shop_auth GROUP BY raw,auth,report_type HAVING COUNT(1)>1

 将一个表的数据查询出来导入另一个表

insert into  no_error.category_shop_auth(type,raw,auth,report_type) select type,raw,auth,report_type from mapping.category_shop_auth ORDER BY report_type,type

 截取字符串

1、从左开始截取字符串 
left(str, length) 
说明:left(被截取字段,截取长度) 
例:select left(title,10) as tran_date from mytable
2、从右开始截取字符串 
right(str, length) 
说明:right(被截取字段,截取长度) 
例:select right(title,10) as tran_date from mytable
3、截取字符串 
substring(str, 'target') 
substring(str, 'target', length) 
说明:substring(被截取字段,从第几位开始截取) 
substring(被截取字段,从第几位开始截取,截取长度) 
例:select substring(str,10) from mytable
select substring(str,8,10) from mytable
(注:如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度) 

 

 

 

年月转日期

需要用concat做字符串拼接,不然纯数字会最加减的

select STR_TO_DATE(CONCAT('2018-01','-01'),'%Y-%m-%d') from dual

 MySql查看每个表占用空间大小

以吉比特为单位

use information_schema;
select concat(round(sum(DATA_LENGTH/1024/1024/1024),2),'G') from tables where table_schema='数据库名' AND table_name='表名'

以兆比特为单位

use information_schema;
select concat(round(sum(DATA_LENGTH/1024/1024),2),'M') from tables where table_schema='数据库名' AND table_name='表名'

 查询数据库里面的空表

sUSE information_schema; 

-- Mysql 一个数据库所有有数据的表
SELECT table_schema,table_name,table_rows FROM TABLES WHERE  table_rows != 0 ORDER BY table_rows DESC;
-- Mysql 一个数据库中所有为空的表
SELECT table_schema,table_name,table_rows FROM TABLES WHERE  table_rows = 0 ORDER BY table_name ;

 

posted @ 2018-03-15 01:32  RZ_Lee  阅读(260)  评论(0编辑  收藏  举报