- 博客(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 32502 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 1229
原创 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 2692
原创 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 5470
原创 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 1522
原创 MySQL 遍历字符
备注:测试数据库版本为MySQL 8.0如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本一.需求遍历一个字符,并将其中的每个字符都作为一行返回,但是sql没有循环操作例如:要将表EMP中ENAME值为’KING’的字符串显示为4行,每行中都包含"KING"中的一个字符二.解决方案使用笛卡尔积生成行号,用来在该行中返回字符串中的每个字符。然后使用MySQL内置的字符串分析函数来摘出所要的字符。代码:-- 解决 t10这样一个表来形成笛卡尔积sele
2020-09-16 09:18:46 1265
原创 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 672
原创 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 831
原创 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 1396
原创 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 909
原创 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 1034
原创 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 1111
原创 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 1302 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 1256
原创 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 1906 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 1025
原创 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 1156
原创 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 874
原创 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 5556
原创 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 ->
2020-09-02 09:29:53 3947
原创 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 954
原创 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 507
原创 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 1033
空空如也
flink aggregate方法报错
2021-10-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人