个人工作SQL整理(MYSQL)

查看运行事务进程

-- 查询运行事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
-- 查询运行进程
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST P ;
-- 查询运行进程
SHOW PROCESSLIST;
-- 杀死某个进程(一般锁表后使用)
kill 303218; -- kill 进程id

清表语句

1. 清除表数据还要删除表结构
drop table 表名;
-- 或者
drop table if exists 表名;
2. 用于清空表中的数据,但不会删除表结构。
-- 会将表中的所有数据一次性删除,而不是逐条删除,故效率1远远大于DELETE;
-- 自增列会被置为初始值;
-- 删除数据后不会写服务器log。
truncate table 表名;
3. 有条件删除,删除部分数据
delete from 表名 where 条件;

统计数量

假设表中id为主键,erpcode有为空的值存在。
name语句1、2、3统计的是表中数量,语句4统计的是erpcode不为空的数量,所以非特殊情况查询总数使用count(主键)、count(*)或者count(1)。

1. select count(*) from RDS_EQP_NERESOURCE_DF;
2. select count(id) from RDS_EQP_NERESOURCE_DF;
3. select count(1) from RDS_EQP_NERESOURCE_DF;
4. select count(erpcode) from RDS_EQP_NERESOURCE_DF;

执行效率:通常情况下count(主键) > count(1) > count(*)
若表中只有一列,那 count(*) > count(1)

字段

– 添加字段

ALTER TABLE 表名 ADD COLUMN 字段名 VARCHAR(8) DEFAULT NULL COMMENT '资产所属单位';

– 修改字段

ALTER TABLE 表名 MODIFY COLUMN 字段名 TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '备注1';

索引

– 查询索引

show keys from 表名;

– 删除索引

ALTER TABLE 表名 DROP INDEX 索引名;

– 添加索引

CREATE UNIQUE INDEX 索引名 ON 表名(列名) USING BTREE;           -- 唯一索引
CREATE INDEX 索引名 ON 表名(列名) USING BTREE;                     -- 普索引
CREATE INDEX 索引名 ON 表名(列名1,列名2,列名3) USING BTREE;        -- 组合索引

– 查询SQL执行计划的信息(是否走索引)
在select语句之前增加EXPLAIN关键字,执行后MySQL就会返回执行计划的信息。

查询A表未在B表关联的数据

-- 利用外连接特性,查询A表设备类型未能映射或为空
SELECT A.* FROM A LEFT JOIN B ON A.DEVICE_TYPE = B.MAP_TYPE_ID WHERE B.MAP_TYPE_ID IS NULL;

常用脚本整理

  1. 重新建表脚本,举个栗子
DROP PROCEDURE IF EXISTS SCHEMA_CHAGE;
DELIMITER //-- 单    号: -- 功    能: 删除表XX并重新创建(无需备份数据)-- 作    者: -- 脚本类型: -- 时    间: -- 重要说明:
CREATE PROCEDURE SCHEMA_CHAGE()
BEGIN DECLARE V_COMPID VARCHAR(50); DECLARE V_CSZ VARCHAR(10);DECLARE V_SYEAR INT(10); DECLARE V_EYEAR INT(10); DECLARE V_NYEAR INT(10); DECLARE V_COUNT INT(10); IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=database() AND TABLE_NAME='表名') THENDROP TABLE 表名;CREATE TABLE 表名(ACCO_ID VARCHAR(36)  NOT NULL   COMMENT '主键编号',COMP_ID VARCHAR(200)  NULL    COMMENT '单位ID',EDIT_RELATION VARCHAR(200)  NULL    COMMENT '编报关系名称',BUDGET_START_YEAR INT(10)  NULL    COMMENT '预算开始年度',BUDGET_END_YEAR INT(10)  NULL    COMMENT '预算结束年度',ENABL_STA VARCHAR(20)  NULL    COMMENT '启用状态',IS_DISTRI INT(2)  NULL    COMMENT '是否下发',CRE_TIME DATETIME  NULL   COMMENT '创建时间',LAST_UP_TIME DATETIME   NULL   COMMENT '最后更新时间',FOUNDER VARCHAR(36)  NULL    COMMENT '创建人名称',LS_MODIFIER VARCHAR(36)  NULL    COMMENT '最后修改人') COMMENT='下达上报关系主表';END IF;COMMIT;
END //
DELIMITER ;
CALL SCHEMA_CHAGE();
  1. 修复表缺失字段脚本,举个栗子:
DROP PROCEDURE IF EXISTS SCHEMA_CHAGE;
DELIMITER // -- 单    号: -- RTC单号: -- 功    能: prj_inv_bud_edit_link添加缺失字段-- 作    者:  -- 脚本类型: -- 时    间: 2022-7-14 16:58:13-- 脚本路径:
CREATE PROCEDURE SCHEMA_CHAGE()
BEGIN DECLARE V_COMPID VARCHAR(50);DECLARE V_CSZ VARCHAR(10);DECLARE V_SYEAR INT(10); DECLARE V_EYEAR INT(10); DECLARE V_NYEAR INT(10); DECLARE V_COUNT INT(10);IF NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS  WHERE TABLE_SCHEMA=database() AND TABLE_NAME='表名' AND COLUMN_NAME='字段名') THENSET @V_SQL='ALTER TABLE 表名 ADD COLUMN 字段名 INT(2) DEFAULT 0 COMMENT ''是否下发''';PREPARE V_SQL FROM @V_SQL;EXECUTE V_SQL;DEALLOCATE PREPARE V_SQL;END IF;IF NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS  WHERE TABLE_SCHEMA=database() AND TABLE_NAME='表名' AND COLUMN_NAME='字段名') THENSET @V_SQL='ALTER TABLE 表名 ADD COLUMN 字段名 DATETIME COMMENT ''下发时间''';PREPARE V_SQL FROM @V_SQL;EXECUTE V_SQL;DEALLOCATE PREPARE V_SQL;END IF;COMMIT;
END //
DELIMITER ;
CALL SCHEMA_CHAGE();
  1. 添加索引脚本,举个栗子:
DROP PROCEDURE IF EXISTS SCHEMA_CHAGE;
DELIMITER // -- 元数据申请编号: -- RTC单号: -- 功     能: 设备层历年成本池添加索引-- 作     者: -- 脚本类型: -- 生成时间: 2023-05-29 14:06:11 -- 脚本路径:
CREATE PROCEDURE SCHEMA_CHAGE()
BEGIN DECLARE V_COMPID VARCHAR(50);DECLARE V_CSZ VARCHAR(10);DECLARE V_SYEAR INT(10); DECLARE V_EYEAR INT(10); DECLARE V_NYEAR INT(10); DECLARE V_COUNT INT(10);-- 判断索引是否存在,不存在则创建IF NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.statistics WHERE TABLE_SCHEMA=database() AND TABLE_NAME='表名' AND index_name='索引名') THENCREATE INDEX IND_EFCA_EFTOTALCPOOL_CYEARFOCUSON ON T_EFCA_EFTOTALCOSTPOOL(CYEAR, FOCUSON_DIREC) USING BTREE;END IF;COMMIT;
END //
DELIMITER ;
CALL SCHEMA_CHAGE();
  1. 行列转换
SELECT
(CASE WHEN E.VOLT_LVL_NO='37' THEN '1000kV'WHEN E.VOLT_LVL_NO='36' THEN '750kV'WHEN E.VOLT_LVL_NO='35' THEN '500kV'WHEN E.VOLT_LVL_NO='34' THEN '330kV'WHEN E.VOLT_LVL_NO='33' THEN '220kV'WHEN E.VOLT_LVL_NO='32' THEN '110kV'WHEN E.VOLT_LVL_NO IN ('30','31') THEN '66kV(72.5kV)'WHEN E.VOLT_LVL_NO='25' THEN '35kV'WHEN E.VOLT_LVL_NO='91' THEN '±1100kV'WHEN E.VOLT_LVL_NO='85' THEN '±800kV'WHEN E.VOLT_LVL_NO='84' THEN '±660kV'WHEN E.VOLT_LVL_NO='70' THEN '±600kV'WHEN E.VOLT_LVL_NO='93' THEN '±550kV'WHEN E.VOLT_LVL_NO='83' THEN '±500kV'WHEN E.VOLT_LVL_NO='82' THEN '±400kV'WHEN E.VOLT_LVL_NO='88' THEN '±320kV'WHEN E.VOLT_LVL_NO IN ('51','52','53','54','55','56','60','70','71','72','73','76','77','78','79','80','81','87','90','94','95') THEN '±320kV以下' END) AS VOLT_LVL_NO,SUM(IF(E.AVGYEAR = 1, ROUND(E.ZCYZ, 2), 0)) AS age_1,SUM(IF(E.AVGYEAR = 2, ROUND(E.ZCYZ, 2), 0)) AS age_2,SUM(IF(E.AVGYEAR = 3, ROUND(E.ZCYZ, 2), 0)) AS age_3,SUM(IF(E.AVGYEAR = 4, ROUND(E.ZCYZ, 2), 0)) AS age_4,SUM(IF(E.AVGYEAR = 5, ROUND(E.ZCYZ, 2), 0)) AS age_5,SUM(IF(E.AVGYEAR = 6, ROUND(E.ZCYZ, 2), 0)) AS age_6,SUM(IF(E.AVGYEAR = 7, ROUND(E.ZCYZ, 2), 0)) AS age_7,SUM(IF(E.AVGYEAR = 8, ROUND(E.ZCYZ, 2), 0)) AS age_8,SUM(IF(E.AVGYEAR = 9, ROUND(E.ZCYZ, 2), 0)) AS age_9,SUM(IF(E.AVGYEAR > 10, ROUND(E.ZCYZ, 2), 0)) AS age_10
FROM(SELECT A.VOLT_LVL AS VOLT_LVL_NO,(TIMESTAMPDIFF(YEAR, A.ASST_CAPITAL_DT, '2022-12-31' ) + 1) AVGYEAR,(IFNULL(B.accu_acquire_prod_cost, 0) + IFNULL(B.year_output_val_busi, 0)) ZCYZFROM 表1 A
LEFT JOIN 表2 B ON A.MAIN_ASST_NO = B.ASST_NOWHERE A.ASST_ST='ZZZY' -- 资产使用状态:在用AND A.FIX_ASSET_TYP='110000001' -- 资产细类代码AND SUBSTR(B.deprec_tm, 1, 4) = 2022 -- 年份
) E
GROUP BY E.VOLT_LVL_NO;

个人工作SQL整理(大佬勿进)相关推荐

  1. 震惊!史上最菜的Oracle 11g教程(大佬勿进)

    文章目录 一.Oracle起步篇 1.1 Oracle简介 1.2 Oracle安装与配置 1.3 基本的SQLPus命令 1.4 SQL简介和数据表分析 二.基础查询 2.1 SQL简单查询 2.2 ...

  2. 小白自学python——初识python(大佬勿进,都是基础知识)

    python的诞生 python 是由 Guido van Rossum (以下简称吉多)在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的.决定要设计python起源于由吉多参与设 ...

  3. 大佬勿进,小白请进!【智能五子棋】997行代码带你带你畅游棋码

    智能五子棋 好久没有写技术博客啦,先附图一张以表喜悦

  4. 工作经常使用的SQL整理,实战篇(一)

    工作经常使用的SQL整理,实战篇(一) 原文:工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇,地址一览: 工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实 ...

  5. WEB安全基础简单总结(有些无序,大佬勿喷)

    WEB安全基础简单总结(有些无序,大佬勿喷) 文章目录 一.admin的url-utf8编码 二.协议变换 三.修改或添加HTTP请求头 四.nginx的配置文件所在位置 五.源码泄露 六.文件包含 ...

  6. 运维工程师工作内容整理

    运维工程师工作内容整理 稳定 安全 大性能 自动化 素养 团队沟通 其他 总结两句话: 1.保障业务长期稳定运行(如网站服务器.游戏服务器等). 2.保障数据安全可靠(如用户名密码.游戏数据.博客文章 ...

  7. 【快速入门ORM框架之Dapper】大牛勿进系列

    [快速入门ORM框架之Dapper]大牛勿进系列 原文:[快速入门ORM框架之Dapper]大牛勿进系列 前言:dapper是什么?Dapper是.NET下一个micro的ORM,它和Entity F ...

  8. 【java毕业设计】基于java+Eclipse +SQL Server的工厂进销存管理系统设计与实现(毕业论文+程序源码)——工厂进销存管理系统

    基于java+Eclipse +SQL Server的工厂进销存管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Eclipse +SQL Server的工厂进销存管理系统 ...

  9. sql和python还有c语言_Python语言之原生sql整理

    本文主要向大家介绍了Python语言之原生sql整理,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. mysql -uroot -p #登录mysql命令 password: #输 ...

最新文章

  1. java平均差_如何做好描述统计分析
  2. maya的颤动怎么做_必看!新手学习MAYA的几个建议
  3. Fedora16 下更改多系统、多内核的默认启动项
  4. python递归函数的使用方法_让你Python到很爽的加速递归函数的装饰器
  5. 7z001怎么解压在安卓手机上面_安卓zip文件压缩RAR解压手机下载-安卓zip文件压缩RAR解压v1.0最新版下载...
  6. 第一次使用博客,略激动。
  7. 阶段3 1.Mybatis_09.Mybatis的多表操作_8 mybatis多对多操作-查询角色获取角色下所属用户信息...
  8. tomcat 7服务器跨域问题解决
  9. 数字电路基础知识——锁存器与触发器在Verilog中使用问题
  10. windows11,安装maven。
  11. 爬虫项目报错Traceback (most recent call last): File D:/studay/python/one/day01/07_post请求.py, line 38,
  12. 百家讲坛_我读经典17_《易经》与人生-曾仕强(转)
  13. Android之雪花飘落效果
  14. Windows 美化
  15. Ceph-CephFS部署
  16. 如果客户机同时得到多台dhcp服务器的ip地址_秘技,同时为三个女神装系统的方法...
  17. 使用VB.net将PNG图片转成icon类型图标文件
  18. Android开发谈谈羊了个羊游戏爆火背后......
  19. AMQP-0-9-1中文规范
  20. Gprinter热敏打印机光栅位图点阵数据解析工具

热门文章

  1. 【通信协议】1-Wire 单总线
  2. nginx入门-个人总结
  3. 航空航天与国防行业乘客体验—了解如何交付个性化并实现盈利 | 达索系统百世慧®
  4. 20210630个人复盘
  5. 子类内部调用父类成员函数,及子类对象在外部调用父类成员函数问题(C++)
  6. Mysql优化(一)—Sql语句
  7. 点到超平面的距离公式
  8. Ubuntu下如何下载linux内核源码
  9. border-radius 构建规则讲解 及 50% 和 100% 的异同
  10. 汽车企业数字化转型成熟度评估模型研究