自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 问答 (1)
  • 收藏
  • 关注

原创 堪比培训机构的MySQL系列博客

这个blog,我整理了我之前写的MySQL开发系列和MySQL运维系列,知识丰富程度堪比培训机构个人能力有限,如有错误的地方,欢迎指正。文章目录一.MySQL开发系列1.1 MySQL 行转列1.2 MySQL 常用的函数1.3 MySQL 表连接1.4 MySQL分组语句小结1.5 MySQL with语句1.6 MySQL高级窗口函数1.7 MySQL正则表达式1.8 MySQL编程二.MySQL运维系列2.1 MySQL安装2.2 MySQL体系结构2.3 MYSQL启动和关闭2.4 MySQL配

2020-09-09 12:19:46 32142 15

原创 MySQL 判断字符串是不是数字字符类型

备注:测试数据库版本为MySQL 8.0如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本一.需求需要判断字符串中是否只包含数字和字符,如果包含其他的,不显示数据二.解决方案这类需求,只能考虑使用正则表达式来解决代码create view v asselect ename as data from empwhere deptno = 10union allselect concat(ename,',$',cast(sal as char(4) ),

2020-09-21 10:13:38 1187

原创 MySQL 从字符串中删除不需要的字符

备注:测试数据库版本为MySQL 8.0如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本一.需求将emp表中的元音字母 AEIOU都去除掉二.解决方案通过MySQL的replace函数进行多次替换可以解决这个问题也可以通过MySQL的正则表达式来处理代码:select ename,replace(replace(replace(replace(replace(ename,'A',''),'E',''),'I',''),'O',''),'U','') a

2020-09-18 10:53:00 2514

原创 MySQL 计算字符在字符串中出现的次数

备注:测试数据库版本为MySQL 8.0一.需求计算一个字符或子串在给定的字符串中出现的次数。例如:10,CLARK,MANAGER要计算在这个字符串中有多少个逗号。二.解决方案首先计算原始字符串的长度,然后计算去掉逗号后字符串的长度,这两者的差就是逗号在该字符串中出现的次数。MySQL中使用replace和length函数即可代码:select (length('10,CLARK,MANAGER') - length(replace('10,CLARK,MANAGER

2020-09-17 09:17:19 5332

原创 MySQL 字符串中包含引号

备注:测试数据库版本为MySQL 8.0一.需求sql中引号是个特殊的存在,经常需要进行输出例如,我想输出"I’m a boy" 这个里面就有一个单引号二.解决方案测试记录mysql> select 'I''am a boy';+------------+| I'am a boy |+------------+| I'am a boy |+------------+1 row in set (0.00 sec)mysql> select '''' ;+---+|

2020-09-16 09:20:34 1455

原创 MySQL 遍历字符

备注:测试数据库版本为MySQL 8.0如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本一.需求遍历一个字符,并将其中的每个字符都作为一行返回,但是sql没有循环操作例如:要将表EMP中ENAME值为’KING’的字符串显示为4行,每行中都包含"KING"中的一个字符二.解决方案使用笛卡尔积生成行号,用来在该行中返回字符串中的每个字符。然后使用MySQL内置的字符串分析函数来摘出所要的字符。代码:-- 解决 t10这样一个表来形成笛卡尔积sele

2020-09-16 09:18:46 1235

原创 MySQL 使用sql来生成sql

备注:测试数据库版本为MySQL 8.0一.需求我想查询某个库下所有表的总记录数二.解决方案-- 通过系统表 拼接sqlselect concat('select count(*) from ',table_name,';') tab_count from information_schema.tables where table_schema = 'ZQS';-- 拷贝输出进行执行select count(*) from area_admin_contrast;select coun

2020-09-15 09:08:41 656

原创 MySQL kill使用案例

MySQL数据库版本 8.0.17文章目录前言一.查询表大小二.碎片整理参考文献:前言业务有需求,将一张大表 1000w+数据,需要从Oracle数据库全量同步到MySQL前DBA用python写的脚本,每天全量同步一次,先delete再insert现在表的空间已经差不多2G了,需要进行清理一.查询表大小select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from information_schema.TABLES w

2020-09-15 09:05:33 817

原创 MySQL 优化之压缩

环境:MySQL 8.0一.描述一些不常用的表数据量太大,需要压缩表进行空间清理-- 表结构mysql> show create table t1\G*************************** 1. row *************************** Table: t1Create Table: CREATE TABLE `t1` ( `id` int DEFAULT NULL, `name` varchar(1000) DEFAULT N

2020-09-14 09:13:15 1280

原创 Oracle 11g开机自启动

一些测试机器,频繁重启,需要DBA手工来启数据库设置成开机自启动后,DBA就可以不用管这个一.编辑/etc/oratab文件先查看ORACLE_HOME目录*********>echo $ORACLE_HOME/oracle/ora11g/db修改配置文件vi /etc/orata将orcl:/oracle/ora11g/db:N 修改为 orcl:/oracle/ora11g/db:Y二.添加数据库启动脚本dbstartvi /etc/rc.d/rc.local新增

2020-09-11 14:49:36 889

原创 Oracle-求素数

需求:求200w以内的素数素数是只能被1和自身整除的数,1不是素数一.SQL版先用2w进行测试-- 非1和自身,只要有整除的,通过not exists 剔除 WITH t AS (SELECT rownum+1 rn FROM dual CONNECT BY rownum <= 20000 -1),t1 AS (SELECT rownum+1 rn FROM dual CONNECT BY rownum <= 20000 -1)SELECT count(*) FROM t

2020-09-11 09:21:52 1003

原创 MySQL 通过sql输出99乘法表

备注:测试数据库版本为MySQL 8.0代码-- 用with递归构造1-9的数据with RECURSIVE c(n) as (select 1 n union all select n + 1 from c where n < 9),tmp1 as(SELECT c1.n n1,c2.n n2,CONCAT(c1.n,' * ',c2.n,' = ',c1.n*c2.n) expfrom c c1inner join c c2on c1.n <= c2.n)selec

2020-09-08 11:23:40 1055

原创 MySQL 运维管理工具--pt(Percona-toolkit)

文章目录一.检查和安装与Perl相关的模块二.下载和安装percona toolkit的包2.1 下载和安装percona toolkit的包2.2 安装percona-toolkit工具包2.3 percona-toolkit工具介绍2.3.1 pt-archiver(归档表)2.3.2 pt-online-schema-change(在线修改表结构)2.3.3 pt-table-checksum2.3.4 pt-table-sync2.3.5 pt-deadlock-logger(死锁检测)2.3.6

2020-09-08 09:27:38 1233 1

原创 MySQL 元数据查询

备注:测试数据库版本为MySQL 8.01.查看某个数据库下的表名select table_namefrom information_schema.tableswhere table_schema = 'ZQS';测试记录mysql> select table_name -> from information_schema.tables -> where table_schema = 'ZQS';+---------------------+| TABLE

2020-09-07 09:00:20 1220

原创 MySQL数据恢复工具之MyFlash

文章目录概述一.MyFlash安装1.1 在线安装1.2 离线安装二.MyFlash参数2.1 参数介绍2.2 语法举例三.MyFlash测试案例3.1 数据准备3.2 测试恢复DML3.3 测试DDL恢复参考:概述MyFlash是美团开发的一个回滚DML操作的工具,该工具是开源的,github地址为:https://github.com/Meituan-Dianping/MyFlash。通过该工具,可以实现MySQL数据库的闪回。优点1.如果binlog日志保留,可以闪回到任意时间2.可以针对实

2020-09-07 08:55:55 1650 3

原创 MySQL 用其它表的值更新数据

备注:测试数据库版本为MySQL 8.0如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本测试数据准备:mysql> create table new_sal(deptno int,sal int) character set utf8mb4;Query OK, 0 rows affected (0.02 sec)mysql> insert into new_sal values (10,4000);Query OK, 1 row affecte

2020-09-04 09:35:53 1014

原创 MySQL 数据恢复工具之binlog2sql

文章目录概述一.安装pip和binlog2sql1.1 安装步骤1.2 安装python31.3 安装新版本openssl1.4 pip安装报错11.5 pip安装报错21.6 pip安装binlog2sql报错二.binlog2sql参数相关2.1 binlog2sql参数2.2 mysql server相关参数2.3 用来闪回数据的user需要的最小权限集合三.binlog2sql使用案例3.1 数据准备3.2 使用binlog2sql找到恢复sql参考文献:概述github连接:https://g

2020-09-04 09:33:01 1060

原创 MySQL阻止对某几列插入

备注:测试数据库版本为MySQL 8.0如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本问题:防止用户或是错误的软件应用程序对某几列插入数据。例如,只允许某个程序向EMP表中插入EMPNO、ENAME和JOB列。解决方案:在表中创建一个视图,该视图将只显示允许用户进行操作的列,强制所有的插入操作都通过该视图进行。例如,创建一个只显示表EMP中特定3列的视图:create view new_emps asselect empno,ename,jobf

2020-09-03 09:20:55 817

原创 MySQL 工具之mysqldumper介绍

文章目录概述一.mysqldumper安装二.参数介绍2.1 mydumper参数详解2.2 myloader参数详解三.使用案例3.1 测试数据准备3.2 备份test库下的t1和t2两张表3.3 恢复数据四.mydumper正则拓展参考文献:概述mysqldump无法并行,这点与Oracle的expdp相比,存在一定的劣势,但是开源的mysqldumper是一个很好的补充。mydumper(http://www.mysqldumper.org/)是一个在GNU GPLv3许可下发布的高性能MySQ

2020-09-03 09:17:01 5045

原创 MySQL检测两个表中是否有相同数据

备注:测试数据库版本为MySQL 8.0如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本问题:要知道两个表或视图中是否有相同的数据(基数和值)。考虑这个视图create view vasselect * from emp where deptno != 10union allselect * from emp where ename = 'WARD';select * from v;mysql> create view v -&gt

2020-09-02 09:29:53 3813

原创 MySQL MGR 联机配置

文章目录一.配置组复制模式1.1 单主模式1.2 多主模式1.3 联机配置组复制模式1.3.1 单主模式下修改主服务器1.3.2 单主修改为多主1.3.3 多主修改为单主1.4 配置并发写实例数1.5 设置组的通信协议版本二.保证数据一致性2.1 组复制数据一致性简介2.1.1 只读保护2.1.2 主库故障转移2.2 一致性级别介绍2.2.1 EVENTUAL(缺省值)2.2.2 BEFORE_ON_PRIMARY_FAILOVER2.2.3 BEFORE(读时同步)2.2.4 AFTER(写时同步)2.2

2020-09-02 09:26:02 875

原创 MySQL根据数据项的键排序

备注:测试数据库版本为MySQL 8.0如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本问题:要根据某些条件逻辑来排序。例如,如果JOB是“SALESMAN”,要根据COMM来排序。否则,根据SAL排序。解决方案:在ORDER BY 子句中使用CASE表达式:select ename,sal,job,comm from emporder by case when job = 'SALESMAN' then comm else sal end;m

2020-09-01 11:42:42 502

原创 MySQL MHA高可用实战

文章目录一.MHA简介二.MHA搭建2.1 基本环境2.2 配置主从2.3 安装Perl等依赖模块2.4 配置SSH登录无密码验证2.5 安装MHA Node2.6 安装MHA Manager2.7 配置MHA2.8 创建相关脚本2.8.1 创建定期清理relay脚本2.8.2 创建自动failover脚本2.8.3 创建手动failover脚本三.检查MHA配置3.1 检查SSH配置3.2 检查整个复制环境状况3.3 检查MHA Manager的状态3.4 查看启动日志四.功能测试4.1 初始绑定VIP4

2020-09-01 08:41:35 910

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除