企业真实案例:从MySQL 5.7迁移到MySQL 8.0
背景 公司当前使用MySQL 5.7数据库,并计划升级到MySQL 8.0以利用其新特性和性能改进。整个过程需要确保数据的完整性和业务的连续性。 步骤 1. 准备工作 确保两台服务器上MySQL 5.7和MySQL 8.0都已安装并运行正常。 确保有足够的存储空间来处理迁移过程中产生的备份和日志文件。 2. 备份数据 在MySQL 5.7服务器上备…
实验:SQL综合练习2
实验一:通过存储过程创建300w条数据 创建表 假设表的名称为test_table,且表结构如下: CREATE TABLE test_table ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT, email VARCHAR(100) ); 编写存储过程 编写一个存储过程…
mysql存储过程
一、介绍 存储过程包含了一系列可执行的SQL语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆SQL。 使用存储过程的优点: 用于替代程序写的SQL语句,实现程序与SQL解耦 基于网络传输,传别名的数据量小,而直接传SQL数据量大 使用存储过程的缺点: 程序员扩展功能不方便 补充:程序与数据库结合使用的三种方式 方式一: MyS…
mysql流程控制
一、条件语句 以下是一个示例的 SQL 条件语句,它使用了 IF、ELSEIF 和 ELSE 结构: delimiter // CREATE PROCEDURE proc_if () BEGIN DECLARE i INT DEFAULT 0; IF i = 1 THEN SELECT 1; ELSEIF i = 2 THEN SELECT 2; …
mysql函数
MySQL 内置函数 MySQL中提供了许多内置函数,以下是一些常用的函数及其示例: 一、数学函数 ROUND(x, y) 返回参数x的四舍五入的有y位小数的值。 SELECT ROUND(123.456, 2); -- 结果:123.46 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。…
mysql触发器
触发器概念 使用触发器可以定制用户对表进行【增、删、改】操作时前后的行为,注意:没有查询。 触发器相关命令 一 创建触发器 # 插入前 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROW BEGIN ... END # 插入后 CREATE TRIGGER t…
mysql视图
一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显的效率问题,并且视图是存放在数…
SQL多表查询
单表查询内容参考:https://www.yuque.com/u39220520/rtqkia/rbmtd38g1hg1logf 链表查询 一、准备工作 建表 CREATE TABLE department ( id INT, name VARCHAR(20) ); CREATE TABLE employee ( id INT PRIMARY KE…