
Mysql开发
文章平均质量分 71
MySQL开发学习blog
只是甲
10年及以上金融信贷、通信行业数据库运维管理、数据仓库及大数据相关工作经验,持有Oracle OCP和Linux RHCE认证证书。
展开
-
MySQL处理Json数据
mysql 处理json数据原创 2022-11-08 16:51:37 · 4672 阅读 · 1 评论 -
MySQL测试数据准备
一. 7亿数据的测试表MySQL 测试数据准备:-- 建表语句CREATE TABLE fact_sale ( id bigint(8) NOT NULL AUTO_INCREMENT, sale_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, prod_name varchar(50) DEFAULT NULL, sale_nums int(11) DEFAULT NULL,原创 2021-11-23 15:23:24 · 1256 阅读 · 0 评论 -
MySQL 之SELECT ... INTO OUTFILE与LOAD DATA语句
文章目录一. SELECT ... INTO OUTFILE语句简介1.1 SELECT ... INTO OUTFILE的使用场景1.2 SELECT ... INTO OUTFILE官方文档介绍1.3 SELECT ... INTO OUTFILE语法1.4 SELECT ... INTO OUTFILE的配置二.LOAD DATA语句简介2.1 load data语句概述2.2 load data 语法2.2.1 Non-LOCAL Versus LOCAL Operation2.2.2 Input原创 2021-05-28 14:11:42 · 10532 阅读 · 3 评论 -
MySQL INSERT ... ON DUPLICATE KEY UPDATE
备注:测试数据库版本为MySQL 8.0真实环境中会有一种应用场景,如存在更新,不存在则更新,Oracle中有merge语句,可以实现此功能。MySQL中可以用INSERT … ON DUPLICATE KEY UPDATE来实现。文章目录一.从一个简单的例子看INSERT ... ON DUPLICATE KEY UPDATE二.模拟一个同事存在insert+update的例子一.从一个简单的例子看INSERT … ON DUPLICATE KEY UPDATE代码:create table原创 2021-05-25 16:40:16 · 8491 阅读 · 2 评论 -
堪比培训机构的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 · 32588 阅读 · 15 评论 -
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 · 1174 阅读 · 0 评论 -
MySQL 8.0 事务简介
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL 事务文章目录一.事务的定义二.事务的属性三.事务的隔离级别四.MySQL的事务4.1 自动提交4.2 事务的隔离级别4.3 MySQL开启和关闭事务4.4 MySQL 事务的savepoint一.事务的定义数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过原创 2020-07-30 14:40:14 · 1332 阅读 · 0 评论 -
MySQL ON UPDATE CURRENT_TIMESTAMP
备注:测试数据库版本为MySQL 8.0数据仓库及大数据平台,会从MySQL来同步数据一般情况下分为全量同步和增量同步,增量同步一般会有一个最后修改时间的时间戳。但是开发的同事有时候会忘了维护这个字段,或者是手工update的时候,没有维护这个字段。导致数据同步的时候,会存在数据不同步的问题。MySQL提供了一个 ON UPDATE CURRENT_TIMESTAMP 可以有效的解决这个问题-- 建表create table t4(id int,last_update TIMESTAMP DE原创 2020-07-29 10:27:57 · 3460 阅读 · 0 评论 -
MySQL开发不可错过的博客
这个blog我们来聊聊MySQL的开发很多同学熟悉的MySQL sql的基本知识,sql的增删改查、表连接、分组聚合、常用函数等之后,就开始是想要进阶了。最近抽时间整理了一下MySQL sql进阶以及MySQL存储过程编程的blog,由于个人能力有限,如有错误的地方,欢迎指正。如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本一.MySQL 行转列MySQL行转列MySQL行转列是MySQL岗位笔试的一个入门级别的考试题目,做一些日常的统计分析报表的时候经常会原创 2020-06-12 10:17:29 · 1471 阅读 · 0 评论 -
MySQL 8.0 视图简介
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL视图。文章目录一.视图语法二.视图案例1.视图能够简化用户内的操作2.视图使用户能以多种角度看待同一数据3.视图对重构数据库提供了一定程度的逻辑独立性4.视图能够对机容密数据提供安全保护前言:视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定原创 2020-06-12 09:00:19 · 1755 阅读 · 0 评论 -
MySQL事件简介
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL事件。MySQL的事件功能同Oracle里面的JOB,作为定时任务使用。文章目录一.语法相关二.开启和关闭事件调度三.案例一.语法相关创建事件语法:CREATE [DEFINER = user] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [EN原创 2020-06-11 09:50:05 · 803 阅读 · 0 评论 -
MySQL 8.0 触发器简介
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL触发器。触发器是在表中数据发生更改时自动触发执行的,特殊的存储过程。存储过程是手工进行调用的,触发器是自动的。当然,对于频繁更新或数据量比较大的表,慎用触发器,在一定程度上,会影响性能。一.语法相关触发器语法:CREATE [DEFINER = user] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH原创 2020-06-10 09:14:26 · 3424 阅读 · 9 评论 -
MySQL函数编程简介
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL函数,函数功能与存储过程大体类似,但是函数需要有一个返回值,可以被sql调用,复杂的sql查询可以通过自己定义的函数解决。如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本一.语法相关语法:CREATE [DEFINER = user] FUNCTION sp_name ([func_parameter[,...]]) RETURNS type [charac原创 2020-06-08 10:49:28 · 1033 阅读 · 0 评论 -
MySQL存储过程编程简介
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL存储过程,MySQL的存储过程比较其它如Oracle、SqlServer、PostgreSQL会弱很多,但是也能实现一些单纯sql语句不能实现,或者是实现起来比较复杂业务场景,有总比没有强,而且Oracle公司在加强对MySQL各方面的提升,也许后面MySQL的存储过程会有很大的提升。一.语法相关语法:CREATE [DEFINER = user] PROCEDURE sp_name ([proc_paramet原创 2020-06-07 10:22:49 · 1149 阅读 · 0 评论 -
MySQL游标简介
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL游标,MySQ存储过程和函数与游标结合使用,可以实现复杂的业务逻辑,当然MySQL游标整体性能还有待提高。语法:-- 声明游标DECLARE cursor_name CURSOR FOR select_statement-- 打开游标OPEN cursor_name-- 获取游标FETCH [[NEXT] FROM] cursor_name INTO var_name [, var_name] ...-- 关闭游标C原创 2020-06-06 20:46:37 · 787 阅读 · 0 评论 -
MySQL流程控制语句简介
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL流程控制语句,流程控制语句在存储过程、函数、触发器和事件里面可以被使用到。文章目录一.CASE语句二.IF语句三.ITERATE语句四.LEAVE语句五.LOOP语句六.REPEAT语句七.WHILE语句一.CASE语句CASE语句用于条件判断CASE语句与CASE函数使用上有差异:1.CASE函数是在SQL里使用,而CASE语句在存储过程及函数里使用2.CASE语句不能用esle null子句,用else begin e原创 2020-06-05 09:58:56 · 1497 阅读 · 0 评论 -
MySQL高级窗口函数简介
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL高级窗口函数窗口函数在复杂查询以及数据仓库中应用得比较频繁与sql打交道比较多的技术人员都需要掌握文章目录一.row_number、rank、dense_rank二.lag、lead三.first_value、last_value、nth_value四.percent_rank、CUME_DIST五.ntile如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本函数名函数用途原创 2020-06-04 09:12:44 · 1852 阅读 · 3 评论 -
MySQL正则表达式简介
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL的正则表达式函数名函数用途REGEXP_INSTR()指定位置开始是否符合正则表达式REGEXP_LIKE()判断字符串是否符合正则表达式,同义词RLIKE REGEXPREGEXP_REPLACE()替换满足正则表达式的字符REGEXP_SUBSTR()返回符合正则的字符串文章目录一.REGEXP_INSTR()二.REGEXP_LIKE()三.regexp_replace()四原创 2020-06-03 09:40:53 · 2539 阅读 · 0 评论 -
MySQL with语句小结
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL的with语句对于逻辑复杂的sql,with可以大大减少临时表的数量,提升代码的可读性、可维护性MySQL 8.0终于开始支持with语句了,对于复杂查询,可以不用写那么多的临时表了。如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本语句结构:with subquery_name1 as (subquery_body1), subquery_name2 as (subque原创 2020-06-02 16:22:06 · 50246 阅读 · 6 评论 -
MySQL分组语句
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊Mysql的分组语句文章目录一.group by 语句二.rollup语句三.grouping语句测试数据:CREATE TABLE testa (area VARCHAR(20), month VARCHAR(20),amount int);insert into testa values ('上海', '1月', 199); insert into testa values ('上海', '2月', 199); ins原创 2020-06-01 10:03:10 · 2977 阅读 · 0 评论 -
MySQL常用字符函数小结
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊常见的字符函数文章目录一.大小写函数二.空格函数三.连接函数四.字符长度函数五.字符截取函数六.字符串填充函数七.其它常用字符函数函数名函数用途UPPER()返回大写的字符LOWER()返回小写的字符LTRIM()左边去掉空格TRIM()去掉空格RTRIM()右边去掉空格SPACE()返回指定长度的空格CONCAT()连接字符串CONCAT_WS()指定分隔符连接原创 2020-05-31 22:14:03 · 735 阅读 · 0 评论 -
MySQL常用日期时间函数拓展
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊常见的日期时间函数文章目录一.时间格式函数二.时间截取函数三.时期时间运算四.字符串转为日期时间类型五.其它从Oracle转到Mysql,对于日期时间函数,真的有点不适应,这个blog,我按照Oracle的使用习惯,把最常用的日期时间函数进行整理一.时间格式函数DATE_FORMAT()-- 按照年月日时分秒形式显示日期时间SELECT DATE_FORMAT('2020-05-22 13:00:00', '%Y-%m-%d %H:原创 2020-05-30 10:24:27 · 771 阅读 · 0 评论 -
MySQL常用日期时间函数小结
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊常见的日期时间函数mysql的日期时间函数比oracle更丰富,内容也更多,从oracle转过来的多少有些不熟悉,需要慢慢的练习文章目录1.ADDDATE2.ADDTIME3.CURDATE()4.CURTIME()5.NOW()6.DATE()7.DATE_FORMAT()8.DATEDIFF()9.dayname()10.DAYOFMONTH()11.DAYOFWEEK()12.DAYOFYEAR()13.EXTRACT()14.FRO原创 2020-05-29 09:36:26 · 748 阅读 · 0 评论 -
MySQL常用数值函数小结
备注:测试数据库版本为MySQL 8.0文章目录一.mod二.ceil三.floor四.round五.truncate六.rand七.greatest八.least这个blog我们来聊聊常见的数值函数函数名函数用途mod取余ceil向上取整floor向下取整round四舍五入truncate截断函数rand随机数greatest求最大值least求最小值一.modmod取余函数语法:MOD(N,M), N % M,原创 2020-05-28 09:21:08 · 787 阅读 · 0 评论 -
MySQL常用流程控制函数小结
备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊常见的流程控制函数如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本流程控制函数函数名函数用途CASEcase语句用于条件判断if()if/else条件判断ifnull()null数据处理nullif()return null if expr1 = expr2#一.CASE语句case语句语法:CASE value WHEN [compare_va原创 2020-05-27 10:09:36 · 979 阅读 · 0 评论 -
MySQL表连接小结
文章目录一.内连接 --求交集二.左连接 --求A的全部三.左连接 --实现A-B的差集四.全连接 -- A union B 求合集五.全连接实现-去交集六.右连接实现-B-A 求差集七.右连接 --求B的全部八.表的笛卡尔积备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊常见的表连接的方法测试数据:create table t1(id int);create table t2(id int);insert into t1 values(1);insert into t1 va原创 2020-05-26 09:47:52 · 871 阅读 · 0 评论 -
MySQL 行转列小结
备注:测试数据库版本为MySQL 8.0需求:求emp表各个岗位的工资之和,如无,用0代替如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数据sql脚本一.CASE语法SELECT deptno, nvl(sum(case when job = 'MANAGER' then sal else 0 end),0) s_MANAGER, nvl(sum(case when job = 'ANALYST' then sal else 0 end),0)原创 2020-05-25 09:05:47 · 1324 阅读 · 0 评论 -
Mysql 版 oracle下scott用户建表语句
概述:Oracle scott用户下四张表,比较便于做实验,验证数据,现修改为Mysql版本1.部门表 --dept2.员工表 --emp3.工资等级表 --salgrade4.奖金表 --bonusdept-- Create tablecreate table DEPT( deptno INT(2) not null, dname VARCHAR(14), loc VARCHAR(13));原创 2020-05-22 18:04:06 · 816 阅读 · 0 评论