mysql

一篇文章带你深入了解Mysql触发器

目录 1.对SC表进行插入或修改时,如果考试成绩不在0-100范围内时,则撤销插入或修改操作。 2.对SC表进行插入时,如果学生的选课总学分超过30,则报错并撤销插入。 3.对SC表进行修改时...

Mysql提权的多种姿势汇总

目录 一、写入Webshell into outfile 写shell 日志文件写shell 二、UDF提权 三、MOF提权 总结 一、写入Webshell into outfile 写shell 前提条件: 1、知道网站物理路径 2、高权限数据库用户 3、load_file...

浅谈mysql join底层原理

目录 join算法 驱动表和非驱动表的区别 1、Simple Nested-Loop Join,简单嵌套-无索引的情况 2、Index Nested-Loop Join-有索引的情况 3、Block Nested-Loop Join ,join buffer缓冲区 缓冲区大小 数据量大的...

线上MySQL的自增id用尽怎么办

目录 表定义自增值id InnoDB系统自增row_id Xid Innodb trx_id InnoDB数据可见性的核心思想 thread_id 总结 MySQL的自增id都定义了初始值,然后不断加步长。虽然自然数没有上限,但定义了表示这个...

SQL实现LeetCode(175.联合两表)

[LeetCode] 175.Combine Two Tables 联合两表 Table:Person +-------------+---------+ | Column Name | Type | +-------------+---------+ | PersonId | int | | FirstName | varchar | | LastName | varchar | +-------------+---------+ PersonId is t...

SQL之各种join小结详细讲解

SQL Left Join, Right Join, Inner Join, and Natural Join 各种Join小结 在SQL语言中,存在着各种Join,有Left Join, Right Join, Inner Join, and Natural Join等,对于初学者来说肯定一头雾水,都是神马跟神马啊,...

Mysql8.0递归查询的简单用法示例

前言 本文使用Mysql8.0的特新实现递归查询,文中给出了详细的实例代码,下面话不多说了,来一起看看详细的介绍吧 Mysql8.0递归查询用法 表数据如下 +--------+----------+------------+ | cat_id...

SQL实现LeetCode(176.第二高薪水)

[LeetCode] 176.Second Highest Salary 第二高薪水 Write a SQL query to get the second highest salary from theEmployeetable. +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +----+--------+ For examp【本...

MySQL千万级数据表的优化实战记录

前言 这里先说明一下,网上很多人说阿里规定500w数据就要分库分表。实际上,这个500w并不是定义死的,而是与MySQL的配置以及机器的硬件有关。MySQL为了提升性能,会将表的索引装载到...

SQL实现LeetCode(177.第N高薪水)

[LeetCode] 177.Nth Highest Salary 第N高薪水 Write a SQL query to get the n thhighest salary from theEmployeetable. +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +----+--------+ For example, given th...

SQL实现LeetCode(178.分数排行)

[LeetCode] 178.Rank Scores 分数排行 Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ranking. Note that after a tie, the next ranking number should be the next consecutive integer value....

Mysql中where与on的区别及何时使用详析

之前在写连表查询的时候,老是分不清楚where和on的区别,导致有时写的SQL会出现一点小的问题,这里专门写篇文章做下记录,如果你也分不清,那么请参考 二者的区别及什么时候使用...

SQL实现LeetCode(180.连续的数字)

[LeetCode] 180.Consecutive Numbers 连续的数字 Write a SQL query to find all numbers that appear at least three times consecutively. +----+-----+ | Id | Num | +----+-----+ | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 2 | | 5 | 1 | | 6 | 2 | | 7...

一次mysql迁移的方案与踩坑实战记录

目录 背景 方案一:老数据备份 方案二:分表 方案三:迁移至tidb 重点说下同步老数据遇到的坑 最终同步脚本方案 总结 背景 由于历史业务数据采用mysql来存储的,其中有一张操作记录...

MYSQL使用Union将两张表的数据合并显示

使用UNION操作符 union :用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。 使用union操作符会将多张表中相同的数据取值一次,如果想将表...

Mysql纵表转换为横表的方法及优化教程

1、纵表与横表 纵表:表中字段与字段的值采用key—value形式,即表中定义两个字段,其中一个字段里存放的是字段名称,另一个字段中存放的是这个字段名称代表的字段的值。 例如,...

mysql表分区的使用与底层原理详解

目录 什么是分区表 分区表应用场景 分区表的限制 分区类型 分区表的使用 1、范围分区 2、列表分区(list分区) 3、列分区 4、hash分区 5、秘钥分区(key分区) 6、子分区 添加分区 分区...

SQL实现LeetCode(181.员工挣得比经理多)

[LeetCode] 181.Employees Earning More Than Their Managers 员工挣得比经理多 TheEmployeetable holds all employees including their managers. Every employee has an Id, and there is also a column for the manager Id. +----+-------+-------...

SQL实现LeetCode(182.重复的邮箱)

[LeetCode] 182.Duplicate Emails 重复的邮箱 Write a SQL query to find all duplicate emails in a table named Person. +----+---------+ | Id | Email | +----+---------+ | 1 | a@b.com | | 2 | c@d.com | | 3 | a@b.com | +----+---------+ For ex...

SQL实现LeetCode(183.从未下单订购的顾客)

[LeetCode] 183.Customers Who Never Order 从未下单订购的顾客 Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything. Table: Customers. +...

SQL实现LeetCode(184.系里最高薪水)

[LeetCode] 184.Department Highest Salary 系里最高薪水 The Employee table holds all employees. Every employee has an Id, a salary, and there is also a column for the department Id. +----+-------+--------+--------------+ | Id | Name | S...

SQL实现LeetCode(185.系里前三高薪水)

[LeetCode] 185.Department Top Three Salaries 系里前三高薪水 TheEmployeetable holds all employees. Every employee has an Id, and there is also a column for the department Id. +----+-------+--------+--------------+ | Id | Name | Salary...

MySQL配置主从服务器(一主多从)

目录 思路 主机配置 修改conf 重启 检验 从机1配置 从机2配置 配置主从关联 测试数据同步 常见问题 原因 解决方案 本文主要介绍了MySQL配置主从服务器(一主多从),感兴趣的可以了解一...

MySQL Shell import_table数据导入的实现

目录 1. import_table介绍 2. Load Data 与 import table功能示例 2.1 用Load Data方式导入数据 2.2 用import_table方式导入数据 3. import_table特定功能 3.1 多文件导入(模糊匹配) 3.2 并发导入 3.3 导入速率控...

SQL实现LeetCode(196.删除重复邮箱)

[LeetCode] 196.Delete Duplicate Emails 删除重复邮箱 Write a SQL query to delete all duplicate email entries in a table namedPerson, keeping only unique emails based on itssmallestId. +----+------------------+ | Id | Email | +----+----...

SQL实现LeetCode(197.上升温度)

[LeetCode] 197.Rising Temperature 上升温度 Given aWeathertable, write a SQL query to find all dates' Ids with higher temperature compared to its previous (yesterday's) dates. +---------+------------+------------------+ | Id(INT) | Date(...

浅谈MySQL之select优化方案

目录 生活中的例子 慢查询 如何去优化 count limit 最大值最小值minmax 生活中的例子 我们是否看到过在公司中许多查询语句都是select * xxxx 心中的想法肯定是,别人写了select *,那我写吧,...

MySQL如何解决幻读问题

目录 前言 一、什么是幻读? 二、幻读有什么问题? (1)需要单独解决 (2)间隙锁引发的并发度 三、如何解决幻读? 三、总结 前言 我们知道MySQL在可重复读隔离级别下别的事物提交...

Node-Red实现MySQL数据库连接的方法

要想实现Node-red连接数据库(mysql),首先电脑需要在电脑中下载MySQL软件,并安装Navicat便于操作,这里默认已经安装完毕。 Node-Red中控件下载 在Node-Red中需要先下载所需要的mysql控件:...

MySQL为何不建议使用默认值为null列

通常能听到的答案是使用了NULL值的列将会使索引失效,但是如果实际测试过一下,你就知道IS NULL会使用索引.所以上述说法有漏洞. 着急的人拉到最下边看结论 Preface Null is a special constrai...

MySQL之权限以及设计数据库案例讲解

权限及设计数据库 用户管理 使用SQLyog 创建用户,并授予权限演示 基本命令 /* 用户和权限管理 */ ------------------用户信息表:mysql.user -- 刷新权限FLUSH PRIVILEGES -- 增加用户 CREATE USER kuan...

浅析MySQL 主键使用数字还是uuid查询快

在实际开发中mysql的主键不能重复,可能会采用主键自增,为了防止主键重复也可能会采取雪花算法之类的算法保证,这两种主键保存的都是number类型 但是实际开发中可能会生成uuid作为...

MySQL隔离级别和锁机制的深入讲解

目录 简述: 1. 事务的四大特性 2.多事务并发带来的问题 3.事务的隔离级别 4.演示不同隔离级别出现的问题 读未提交 读已提交 可重复读 串行化 5.锁机制 间隙锁 临建锁 排他锁 总结 简述...

一篇文章带你了解SQL之CASE WHEN用法详解

目录 简单CASE WHEN函数: 等同于,使用CASE WHEN条件表达式函数实现: THEN后边的值与ELSE后边的值类型应一致,否则会报错。如下: 总结 简单CASE WHEN函数: CASE SCORE WHEN 'A' THEN '优' ELSE '不...

MySQL DEFINER具体使用详解

目录 前言: 1.DEFINER简单介绍 2.一些注意事项 总结: 前言: 在 MySQL 数据库中,在创建视图及函数的时候,你有注意过 definer 选项吗?在迁移视图或函数后是否有过报错情况,这些其实...

mysql之group by和having用法详解

GROUP BY语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。 select子句中的列名必须为分组列或列函数,列函数对于group by子句定义的每个组返回一...

sqlmap注入图文详解

目录 1.发现此网址可能存在sql注入漏洞,我们进行sql盲注入测试一下是否存在漏洞。 2.现在拿出我们的kali工具,sqlmap进行注入测试。 3.可以看到存在注入漏洞,扫到了5个数据库。要获...

MySQL多表连接查询详解

目录 多表连接查询 内连接 左连接 右连接 子查询 总结 多表连接查询 表与表之间的连接分为内连接和外连接 内连接:仅选出两张表互相匹配的记录 外连接:既包括两张表匹配的记录,...

浅谈MySQL数据查询太多会OOM吗

目录 全表扫描对server层的影响 全表扫描对InnoDB的影响 InnoDB内存管理 小结 我的主机内存只有100G,现在要全表扫描一个200G大表,会不会把DB主机的内存用光? 逻辑备份时,可不就是做整...

MySQL隐式类型转换导致索引失效的解决

目录 问题 复现 隐式转换 总结 参考 问题 在工作中发现,有一个接口只执行一条SQL查询语句,并且SQL明明使用了主键列,但是速度很慢。 在MySQL中EXPLAINN后发现,执行时并没有使用主键...

MYSQL row_number()与over()函数用法详解

语法格式:row_number() over(partition by 分组列 order by排序列 desc) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、 order...

实操MySQL+PostgreSQL批量插入更新insertOrUpdate

目录 一、百度百科 1、MySQL 2、PostgreSQL 3、PostgreSQL相对于MySQL的优势 二、postgres中insertOrUpdate代码实例 1、创建user表 2、简单的方式实现 3、利用unnest函数实现 4、如果数据已存在,就就什...

mysql中TIMESTAMPDIFF案例详解

1. Syntax TIMESTAMPDIFF(unit,begin,end); 根据单位返回时间差,对于传入的begin和end不需要相同的数据结构,可以存在一个为Date一个DateTime 2. Unit 支持的单位有 MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH Q...

mysql IS NULL使用索引案例讲解

简介 mysql的sql查询语句中使用is null、is not null、!=对索引并没有任何影响,并不会因为where条件中使用了is null、is not null、!=这些判断条件导致索引失效而全表扫描。 mysql官方文档也已经...

mysql回表致索引失效案例讲解

简介 mysql的innodb引擎查询记录时在无法使用索引覆盖的场景下,需要做回表操作获取记录的所需字段。 mysql执行sql前会执行sql优化、索引选择等操作,mysql会预估各个索引所需要的查询...

SQL insert into语句写法讲解

方式1、 INSERT INTO t1(field1,field2) VALUE(v001,v002); 明确只插入一条Value 方式2、 INSERT INTO t1(field1,field2) VALUES(v101,v102),(v201,v202),(v301,v302),(v401,v402); 在插入批量数据时 方式2 优于 方式1. 【特注】...

MySql分页时使用limit+order by会出现数据重复问题解

目录 摘要 问题描述 分析问题 解决问题 摘要 能把复杂的知识讲的简单很重要 在学习的过程中我们看过很多资料、视频、文档等,因为现在资料视频都较多所以往往一个知识点会有多种...

MySQL之information_schema数据库详细讲解

1. 概述 information_schema 数据库跟 performance_schema 一样,都是 MySQL 自带的信息数据库。其中 performance_schema 用于性能分析,而 information_schema 用于存储数据库元数据(关于数据的数据),例如...

docker 部署mysql详细过程(docker部署常见应用)

之前给大家介绍过:docker(部署常见应用):docker部署nginx docker部署mysql:5.7.26 # 下载镜像docker pull mysql:5.7.26# 查看镜像docker images|grep mysql# 启动容器镜像,建议在/usr/local/workspace/mysql 下执行...

Linux下MySQL多实例部署及安装指南

什么是MySQL多实例 简单地说,Mysql多实例就是在一台服务器上同时开启多个不同的服务端口(3306、3307),同时运行多个Mysql服务进程,这些服务进程通过不同的socket监听不同的服务端口...