当前位置:网站首页>MySQL高级指令
MySQL高级指令
2022-08-10 21:11:00 【InfoQ】
高级指令
索引
- 索引类型
-- 查询索引
mysql> SHOW INDEX FROM student;
-- 创建索引
mysql> CREATE [UNIQUE|FULLTEXT] INDEX idx_student_age
-> [USING BTREE] -- 指定索引类型,默认 B+ 树
-> ON student(age); -- 指定索引属性
mysql> ALTER TABLE student ADD INDEX [idx_student_age](id,age);
mysql> ALTER TABLE student ADD UNIQUE [uniq_student_age](age);
mysql> ALTER TABLE student ADD FULLTEXE [ft_student_age](age);
-- 删除索引
mysql> DROP INDEX idx_student_age ON student;
mysql> ALTER TABLE student DROP INDEX idx_student_age; Copy to clipboardErrorCopied
视图
视图算法
更新选项
-- 创建视图
mysql> CREATE VIEW view_student
-> AS (SELECT * FROM student);
mysql> CREATE ALGORITHM = MERGE
-> VIEW view_student
-> AS (SELECT * FROM student)
-> WITH LOCAL CHECK OPTION;
-- 查看结构
mysql> SHOW CREATE VIEW view_student;
-- 删除视图
mysql> DROP VIEW [IF EXISTS] view_student;
-- 修改视图结构(慎用)
mysql> ALTER VIEW view_student
-> AS (SELECT * FROM student);Copy to clipboardErrorCopied
事务
开启事务后,所有输入的 SQL 语句将被认作一个不可分割的整体,在提交时统一执行。
如果在输入过程中出现问题,可以手动进行回滚。在输入过程中可以设置保存点。
-- 事务开启
mysql> START TRANSACTION;
mysql> BEGIN;
-- 事务提交
mysql> COMMIT;
-- 事务回滚
mysql> ROLLBACK;
-- 保存点
mysql> SAVEPOINT mypoint; -- 设置保存点
mysql> ROLLBACK TO SAVEPOINT mypoint; -- 回滚到保存点
mysql> RELEASE SAVEPOINT mypoint; -- 删除保存点Copy to clipboardErrorCopied
InnoDB 存储引擎支持关闭自动提交,强制开启事务:任何操作都必须要 COMMIT 提交后才能持久化数据,否则对其他客户端不可见。
mysql> SET AUTOCOMMIT = 0|1; -- 0 表示关闭自动提交,1 表示开启自动提交。Copy to clipboardErrorCopied
锁定
MySQL 可以手动对表/行锁定,防止其它客户端进行不正当地读取和写入。
-- 锁定
mysql> LOCK TABLES student [AS alias];
-- 解锁
mysql> UNLOCK TABLES;Copy to clipboardErrorCopied
触发器
触发程序是与表有关的数据库对象,监听记录的增加、修改、删除。当出现特定事件时,将激活该对象执行 SQL 语句。
- MySQL 数据库只支持行级触发器:如果一条 INSERT 语句插入 N 行数据,语句级触发器只执行一次,行级触发器要执行 N 次。
- 在触发器中,可以使用
OLD 和 NEW 表示该行的新旧数据。删除操作只有 OLD,增加操作只有 NEW 。
-- 查看触发器
mysql> SHOW TRIGGERS;
-- 创建触发器
mysql> CREATE TRIGGER my_trigger
-> BEFORE INSERT -- 触发时间 BEFORE/AFTER 触发条件 INSERT/UPDATE/DELETE
-> ON student -- 监听表必须是永久性表
-> FOR EACH ROW -- 行级触发器
-> BEGIN
-> INSERT INTO student_logs(id,op,op_time,op_id) VALUES(null,'insert',now(),new.id)
-> END;
-- 删除触发器
mysql> DROP TRIGGER [schema_name.]trigger_name;
边栏推荐
- 图数据库(Neo4j)入门
- Floating window in Auto.js
- 2022.8.8好题选讲(数论场)
- Application of Spatial 3D Model Reconstruction Based on Pix4Dmapper - Spatial Analysis and Site Selection
- 关于 DataFrame: 处理时间
- 地理探测器Geodetector软件的下载、应用与结果解读
- 变量和它的特性——《mysql 从入门到内卷再到入土》
- 找的笔试题的复盘(一)
- Common functions of Auto.js to find pictures and colors
- 【PCBA方案设计】蓝牙跳绳方案
猜你喜欢
随机推荐
2021 CybricsCTF
apr_thread使用内存之谜
直播课堂系统09--腾讯云点播管理模块(一)
【PCBA scheme design】Bluetooth skipping scheme
TCL:事务的特点,语法,测试例——《mysql 从入门到内卷再到入土》
数据标注太昂贵?这个方法可以用有限的数据训练模型实现基于文本的ReID!
[Golang]如何优雅管理系统中的几十个UDF(API)
Bedtime story | made a Bitmap and AST length system configuration
How to submit a PR?【OpenHarmony Growth Plan】【OpenHarmony Open Source Community】
ENVI最小距离、最大似然、支持向量机遥感影像分类
2021DASCTF实战精英夏令营暨DASCTF July X CBCTF 4th
睡前故事|用Bitmap与AST做一个配置化时长系统
[Golang]从0到1写一个web服务(上)
Common functions of Auto.js to find pictures and colors
变量和它的特性——《mysql 从入门到内卷再到入土》
HGAME 2022 Week2 writeup by pankas
地理探测器Geodetector软件的下载、应用与结果解读
labelme-屏蔽拖拽的事件
深度学习之 12 循环神经网络RNN2
用示波器揭示以太网传输机制









