7 只是甲

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 10w+

MySQL 提取第n个分隔的子串

备注:测试数据库版本为MySQL 8.0一.需求数据准备create view v5 asselect 'mo,larry,curly' as nameunion allselect 'tina,gina,jaunita,regina,leena' as name;mysql> select * from v5;+--------------------------------+| name |+----------------

2020-10-19 13:48:27

MySQL生成连续数字

MySQL 使用过程当中,经常需要有连续数字的表用来处理一些复杂的报表逻辑,这个blog介绍几种生成连续数字的表方法如下,我需要生成一张表 id连续的从 1-50文章目录一.自定义变量的方法二.存储过程的方法三.MySQL 8.0 With递归方法一.自定义变量的方法构造两个临时表 一个5一个10,通过笛卡尔积可以构造50行记录,即可构造50条记录SELECT @xi:=@xi+1 as xc from (SELECT 1 UNION SELECT 2 UNION SELECT 3

2020-10-16 11:27:17

MySQL 提取字符和数字里面的数字

备注:测试数据库版本为MySQL 8.0一.需求测试数据准备:mysql> create table test1(id int,str varchar(100));Query OK, 0 rows affected (0.02 sec)mysql> insert into test1 values (1,'abc123'),(2,'123abc'),(3,'1abc23'),(4,'abc'),(5,'123');Query OK, 5 rows affected (0.01 se

2020-10-14 14:13:58

MySQL按顺序排列字符串

备注:测试数据库版本为MySQL 8.0如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本一.需求对表中的字符串,按字母顺序排列其中的各个字符。例如:±-------+| ename |±-------+| SMITH || ALLEN || WARD || JONES || MARTIN || BLAKE || CLARK || SCOTT || KING || TURNER || ADAMS || JAME

2020-10-13 14:15:46

MySQL 将分隔数据转换为多值IN列表

备注:测试数据库版本为MySQL 8.0如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本一.需求已经有了分隔数据,想要将其转换为where子句IN列表中的项目例如:7654,7689,7782,7788要将该字符串用在WHERE子句中,但是下面的SQL语句是错误的,因为EMPNO是一个数值列:select ename,sal,deptnofrom empwhere empno in (‘7654,7689,7782,7788’)因为EMPNO是一个数

2020-10-12 14:27:52

MySQL 根据表中的行创建一个分隔列表

备注:测试数据库版本为MySQL 8.0如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本一.需求原表数据:±-------±-------+| deptno | ename |±-------±-------+| 20 | SMITH || 30 | ALLEN || 30 | WARD || 20 | JONES || 30 | MARTIN || 30 | BLAKE ||

2020-10-12 09:33:41

MySQL 提取姓名大写首字母缩写

备注:测试数据库版本为MySQL 8.0文章目录一.需求二.解决方案三.使用MySQL函数一.需求将全名转换为大写首字母缩写,比如下面的名字:Stewie Griffin要求返回如下结果S.G二.解决方案需要注意的就是SQL并不像C或Python语言那样灵活,所以,创建一个通用的解决方案来处理所有格式的姓名对于SQL来说不是一件容易的事情。在这里所介绍的解决方案假定名字都是由名和姓,或是由名、中间名(中间名缩写)及姓组成。代码:-- 2个select case when

2020-10-10 14:04:17

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

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

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

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

MySQL 遍历字符

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

2020-09-16 09:18:46

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

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

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

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

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

堪比培训机构的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

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

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

查看更多

勋章 我的勋章
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。