常用mysql脚本_Mysql中常用脚本收藏夹

1.mysql查询表大小行数:

①.查询表rows

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

useinformation_schema;select table_name,table_rows from tables where TABLE_SCHEMA = 'koaladb' order bytable_rowsdesc;

View Code

②.查询表所站空间

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

selecttable_schemaas '数据库',

table_nameas '表名',

table_rowsas '记录数',truncate(data_length/1024/1024, 2) as '数据容量(MB)',truncate(index_length/1024/1024, 2) as '索引容量(MB)'

frominformation_schema.tableswhere table_schema='mysql' --数据库

order by data_length desc, index_length desc;

View Code

2.MySQL中数据库复制另外一个数据库表(结构+数据)操作

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

--my_colo.new_t_patient 当前数据库需要新创建的表--koaladb.t_patient 被复制的数据库的表(结构+数据)--夸库操作:

create table my_colo.new_t_patient likekoaladb.t_patient;--insert intomy_colo.new_t_patientselect *

fromkoaladb.t_patient;--单库操作:

create table koaladb.new_t_patient likekoaladb.t_patient;--insert intokoaladb.new_t_patientselect *

from koaladb.t_patient;

View Code

3.mysql中dump数据库:结构+数据(只包含一条insert语句)

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysqldump --no-create-db --single-transaction -R --quick --default-character-set=utf8 --hex-blob -uroot -p123456 -hlocalhost --set-gtid-purged=OFF koaladb > d:\tt.sql

View Code

--mysql执行sql脚本还原数据库:先创建要还原的数据库

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

# 【Mysql的bin目录】\mysql –u用户名 –p密码 –D数据库

C:\MySQL\bin\mysql –uroot –p123456-Dtest

View Code

4.CONCAT()函数

①.拼接删除数据库脚本

useinformation_schema;select concat('drop database', SCHEMA_NAME, ';')from information_schema.schemata where SCHEMA_NAME regexp '.*_201812.*' limit 1000;

②拼接数据库下所有表的select语句

useinformation_schema;SELECT (concat('select * from',table_name,';'))table_name,table_rows from tables where TABLE_SCHEMA = 'MyDatabase' ORDER BY table_rows desc;

5.根据所有分院查询各院的患者数量:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

select distinct s.建档门诊,COUNT(s.病人编号) as病人总数量from dbo.病人基本信息 ASswhere dbo.病人基本信息 is not null

group bys.建档门诊

whith rollup--生成一个空的统计分组

View Code

6.统计平时产品上线量

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

SELECT s.ServiceRepresentativeName as 实施, s.ServiceStatusName as 状态,count(*) as总量fromv_receipts SWHERE s.ServiceStatusName='已上线'

GROUP BYs.ServiceRepresentativeNamewith rollup

View Code

7.Mysql中临时表的使用

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

--创建临时表Tmp_table并将t_patient表的查询结果存入临时表

CREATE TEMPORARY TABLE Tmp_table SELECT * FROM t_patient WHERE IsDelete=0 LIMIT 100;--查询临时表

SELECT * FROMTmp_table;--清空t_patient表

TRUNCATE TABLEt_patient;--将临时表Tmp_table的数据从新插入到t_patient

INSERT INTO t_patient SELECT * FROMTmp_table;--删除临时表

DROP TABLE Tmp_table;

View Code

8.MySql中UPDATE与DELETE中使用子查询

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

--1.更新Followuple表下满足子查询的条件所有数据

UPDATE Followuple a,(SELECT Id FROM Followuple WHERE OfficeId=20 AND CreatorName='系统' AND Content IS NULL AND IsInactive=0) b set IsInactive =1 WHERE a.Id=b.Id--2.b.Price*b.Number结果赋值给a.Amount, a.Id=c.Id

UPDATE Order a,Order b,(SELECT Id FROM Order WHERE OrderId IN (SELECT Id FROM ProcurementOrder where OrderNo IN('621C66446555638411'))) c SET a.Amount=b.Price*b.Number WHERE b.Id=a.Id AND a.Id=c.Id;update patient a inner joinbu_mobile bon a.PrivateId =b.PrivateCodeset a.Mobile = b.Mobile,a.PhoneNumber =b.PhoneNumberwhere a.isinactive=0 and a.Mobile="";--3.删除Id>5的数据

DELETE FROM patinet WHERE Id IN(SELECT n.Id FROM (SELECT Id FROM patinet WHERE Id>5) AS n)

View Code

9. CEILING():向上取整函数

--四舍五入:

SELECT ROUND()--向上取整:

SELECT CEILING()--向下取整:

SELECT FLOOR()

①.需求:将Point字段的值除以100并向上取整(即:原积分为101-199,变动后的积分为:2)

5c203023e39656d2f794e075e4234329.png

②.处理语句:

UPDATE patinet a,(select Id,(CEILING((patinet.Point)/100.0))Point FROM patinet) b SET a.Point=b.Point WHERE a.Id=b.Id

4008dc89da0ebf6c952b51892d8b9dc8.png

10.MySQL中以时间为单位取数据相关

①查询当天的所有数据

--获取当天时间段的数据

SELECT * FROM `aresglobal`.`backgroundtask` AS s WHERE to_days(s.`SubmitTime`) =to_days(now());

②查询某天每个小时的统计数据

--获取某天每个小时的统计数据

SELECT HOUR(s.`SubmitTime`) as Hour,count(*) as Count FROM `aresglobal`.`backgroundtask`ASsWHEREs.`SubmitTime`BETWEEN '2019-12-29 00:00:00'

AND '2019-12-29 23:00:00'

GROUP BY HOUR(s.`SubmitTime`) ORDER BY Hour(s.`SubmitTime`);

③查询昨天的数据

--获取昨天的数据

SELECT * FROM `aresglobal`.`backgroundtask` AS S WHERE TO_DAYS(NOW()) - TO_DAYS( S.`SubmitTime`)=1;

④查询最近2天的数据

--获取最近2天的数据

SELECT * FROM `aresglobal`.`backgroundtask` AS S WHERE TO_DAYS(NOW()) - TO_DAYS( S.`SubmitTime`)<=1;

⑤查询最近7天的数据

--获取最近7天的数据

SELECT * FROM `aresglobal`.`backgroundtask` AS S where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(S.`SubmitTime`)

⑥查询本月的数据

--获取最近一个月的数据

SELECT * FROM `aresglobal`.`backgroundtask` AS S WHERE DATE_FORMAT( S.`SubmitTime`, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' );

⑦查询上个月数据

--1.获取上月数据

SELECT COUNT(*) FROM `aresglobal`.`backgroundtask` AS S WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( S.`SubmitTime`, '%Y%m' ) ) =1 ORDER BY s.`SubmitTime` ASC;--2.获取上月数据

select s.`SubmitTime` from `aresglobal`.`backgroundtask` AS s where date_format(s.`SubmitTime`, '%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m');

⑧查询本季度数据

--获取本季度数据

select S.`SubmitTime` from `aresglobal`.`backgroundtask`AS S where QUARTER(S.`SubmitTime`)=QUARTER(now()) ORDER BY S.`SubmitTime` ASC;

⑨查询上季度数据

--获取上季度数据

select S.`SubmitTime`,COUNT(*) from `aresglobal`.`backgroundtask`AS S where QUARTER(S.`SubmitTime`)=QUARTER(DATE_SUB(now(), INTERVAL 1 QUARTER)) ORDER BY S.`SubmitTime` ASC;

⑩查询本年的数据

--查询本年所以数据

SELECT s.`SubmitTime` , COUNT(*) FROM `aresglobal`.`backgroundtask` AS s WHERE YEAR(s.`SubmitTime`) = YEAR (NOW()) ;

(11)查询上年的数据

--查询上年的数据

SELECT s.`SubmitTime` , COUNT(*) FROM `aresglobal`.`backgroundtask` AS s WHERE YEAR(s.`SubmitTime`) = YEAR (DATE_SUB( NOW(),INTERVAL 1 YEAR )) ;

(12)查询本周数据

--查询本周的数据(周日-周六)

SELECT S.`SubmitTime` FROM `aresglobal`.`backgroundtask` AS s WHERE YEARWEEK(DATE_FORMAT(S.`SubmitTime`,'%Y-%m-%d')) = YEARWEEK(NOW());

(13)查询上周数据

--查询上周数据

SELECT S.`SubmitTime` FROM `aresglobal`.`backgroundtask` AS s WHERE YEARWEEK(date_format(S.`SubmitTime`, '%Y-%m-%d')) = YEARWEEK(now())-1;

(14)查询距当前6个月的数据

--查询距离当前现在6个月的数据

select s.`SubmitTime` ,COUNT(*) from `aresglobal`.`backgroundtask` AS s where s.`SubmitTime` between date_sub(now(),interval 6 month) and now();

(15)mysql的日期输出格式

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

%a 缩写星期名

%b 缩写月名

%c 月,数值

%D 带有英文前缀的月中的天

%d 月的天,数值(00-31)

%e 月的天,数值(0-31)

%f 微秒

%H 小时 (00-23)

%h 小时 (01-12)

%I 小时 (01-12)

%i 分钟,数值(00-59)

%j 年的天 (001-366)

%k 小时 (0-23)

%l 小时 (1-12)

%M 月名

%m 月,数值(00-12)

%p AM 或 PM

%r 时间,12-小时(hh:mm:ss AM 或 PM)

%S 秒(00-59)

%s 秒(00-59)

%T 时间, 24-小时 (hh:mm:ss)

%U 周 (00-53) 星期日是一周的第一天

%u 周 (00-53) 星期一是一周的第一天

%V 周 (01-53) 星期日是一周的第一天,与 %X 使用

%v 周 (01-53) 星期一是一周的第一天,与 %x 使用

%W 星期名

%w 周的天 (0=星期日, 6=星期六)

%X 年,其中的星期日是周的第一天,4 位,与 %V 使用

%x 年,其中的星期一是周的第一天,4 位,与 %v 使用

%Y 年,4 位

%y 年,2 位

View Code

11.GROUP_CONCAT()函数

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

CREATE TABLE IF NOT EXISTS`product` (

`Id`int(20) NOT NULL,

`ChargerOrderId`bigint(20) DEFAULT NULL,

`CreationTime`datetime(6) DEFAULT NULL,

`Name`varchar(255) DEFAULT NULL,PRIMARY KEY(`Id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;BEGIN;INSERT INTO product(`Id`,`ChargerOrderId`,`CreationTime`,`Name`) VALUES(1,5,NOW(),'hhuia'),(2,5,NOW(),'hhuias'),(3,1,NOW(),'hhuiaa'),(4,1,NOW(),'hhuiab'),(5,2,NOW(),'hhuiac'),(6,3,NOW(),'hhuiad'),(7,4,NOW(),'hhuiae'),(8,4,NOW(),'hhuiaf'),(9,5,NOW(),'hhuiag');COMMIT;--1.以ChargerOrderId分组,把name字段的值打印在一行,逗号分隔(默认)

SELECT a.ChargerOrderId,GROUP_CONCAT(a.`Name`) FROM product AS a GROUP BYa.ChargerOrderId;--2.以ChargerOrderId分组,把name字段的值打印在一行,分号分隔

SELECT a.ChargerOrderId,GROUP_CONCAT(a.`Name` SEPARATOR ';') FROM product AS a GROUP BYa.ChargerOrderId;--3.去重

SELECT a.ChargerOrderId,GROUP_CONCAT(DISTINCT a.`Name`) FROM product AS a GROUP BYa.ChargerOrderId;--4.以ChargerOrderId分组,把name字段的值打印在一行,默认逗号分割,以name排倒序

SELECT a.ChargerOrderId,GROUP_CONCAT(a.`Name` ORDER BY a.`Name` DESC) FROM product AS a GROUP BY a.ChargerOrderId;

View Code

12.SUBSTR() 与SUBSTRING

-- substring 函数用来截取按指定字元输出

-- MySQL: SUBSTR( ), SUBSTRING( )

-- Oracle: SUBSTR( )

-- SQL Server: SUBSTRING( )

--样例数据:

--原数据

SELECT goods_Name FROM Goods WHERE goods_Id=1;

d368768b5b8917a887ebf85395a922b1.png

--SUBSTR() AND SUBSTRING()

SELECT SUBSTR(goods_Name,3) FROM Goods WHERE goods_Id=1;SELECT SUBSTRING(goods_Name,3) FROM Goods WHERE goods_Id=1;

6bab9edf7438ddb57d61e8b94c815bd5.png

68657d9924c065d46f15ce7feca47c51.png

13.REVERSE()函数

--reverse()函数:倒序输出对应str数据

SELECT REVERSE('ABCD');

24ed147ae2eba7cd25ff69202ba3fcdb.png

--配合SUBSTRING()函数使用

SELECT REVERSE(SUBSTRING(goods_Name,3)) AS REVERSE_LOG FROM Goods WHERE goods_Id=1;

afbdd0fceac9ed67e32c23c77f847009.png

14.查看或修改MySql事务隔离级别

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

/*mysql事务隔离级别

1.读未提交(read-uncommitted)

2.不可重复读(read-committed)

3.可重复读(repeatable-read)

4.串行化(serializable)*/

--查看当前数据库的支持的事务隔离形式,默认隔离级别为REPEATABLE-READ

SELECT @@tx_isolation;--修改隔离级别

SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;--参考文献:https://www.cnblogs.com/huanongying/p/7021555.html

View Code

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值