- 博客(690)
- 收藏
- 关注
原创 (93)课115:查看触发器SHOW TRIGGERS;删除触发器DROP TRIGGER【数据库名.】trigger_name;举例:修改表后的修改日志表同步,修改表前的校验
(190)(191)
2025-06-15 23:51:42
38
原创 (92)课114创建触发器:CREATE TRIGGER 触发器名 BEFORE/AFTER INSERT/UPDATE/DELETE ON 表名 FOR EACH ROW BEGIN 语句;end;
(189)(190)
2025-06-15 23:27:17
44
原创 (90)课112函数的定义与调用:CREATE FUNCTION 函数名([参数列表])RETURNS type【DETERMINISTIC等】BEGIN..RETURN 值;end;select函名
(187)(188)(189)
2025-06-15 22:36:30
48
原创 (88)课109 mysqL里的异常处理,即条件处理程序:DECLARE handler_action HANDLER FOR condition_value【,其他错误码】statement;
(182)(183)
2025-06-15 09:11:30
44
原创 (87)课108保存结果集:声明游标DECLARE 游标名 CURSOR FOR 查询语句;打开游标OPEN 游标名;推进游标FETCH 游标名 INTO 变量【,变量】;关闭游标CLOSE 游标名;
(180)(181)
2025-06-15 08:14:33
85
原创 (86)课105--107循环控制:WHILE 条件 DO 语句;END WHILE;或 REPEAT SQL逻辑... UNTIL 条件 END REPEAT;或LOOP、LEAVE、ITERATE
(177)(178)
2025-06-15 06:59:08
58
原创 (85)课104过程里的 case选择控制:case 值 when 值 then 语句;else 语句;end case;或case when 条件 then 语句;else 语句;end case;
(175)(176)
2025-06-15 05:11:19
42
原创 (84)课103带输入输出参数的过程定义:CREATE PROCEDURE 过程名称(【IN / OUT / INOUT 参数名 参数类型】) BEGIN SQL语句 END;INOUT 类型更方便
(174)(175)
2025-06-15 03:53:38
39
原创 (83)课102:过程里的条件判断 IF 条件1 THEN .. ELSEIF 条件2 THEN .. ELSE .. END IF;
(173)(174)
2025-06-14 15:48:59
62
原创 (82)课101:局部变量的赋值 SET 变量名 := 值;或 SELECT 字段名 INTO 局部变量名 FROM 表名;读取局部变量 select 变量名;
(172)(173)
2025-06-14 15:47:35
40
原创 (81)课101:全局变量适用于所有会话,自定义变量适于本次会话,局部变量只用于本函数过程内。声明局部变量 DECLARE 局部变量名 变量类型【DEFAULT 默认值】;
(172)(173)
2025-06-14 15:17:59
65
原创 (80)课100用户自定义变量:SET @var_name := 值【依次类推】;通过查询赋值SELECT 字段名 INTO @var_name FROM 表名;读取SELECT @var_name;
(171)(172)
2025-06-14 15:06:23
65
原创 (79)课98--99:删除过程DROP PROCEDURE【IF EXISTS】过程名;查看/设置系统变量SHOW(set)【SESSION | GLOBAL】VARIABLES(变量名 = 值);
(169)(170)
2025-06-14 12:32:00
40
原创 (78)课98:查看库里已有的函数过程 show procedure status【where db = ‘库名‘】;查看过程定义 SHOW CREATE PROCEDURE 过程名;等等相关
(168)(169)
2025-06-14 11:35:37
379
原创 (77)课96--98:过程是没有返回值的函数,重用了代码。创建过程 CREATE PROCEDURE 过程名(【参数列表】)BEGIN SQL语句 END;调用过程 CALL 过程名(【参数】);
(166)(167)
2025-06-14 08:35:40
64
原创 (76)课94--95:视图主要是用于查询而非数据更新,基于视图的更新是有限制的。聚合排序去重,union连接后得到的视图,均不能被修改。视图的好处:简单安全数据独立。
(164)(165)
2025-06-14 07:45:25
42
原创 (75)课92--93视图约束 with cascaded(local) check option:不带with则无约束。带with默认级联约束。对顶层视图的修改绕不开视图链上底层视图上的约束。
(162)(163)
2025-06-14 05:02:30
81
原创 (74)课91:修改视图定义 ALTER VIEW 视图名[(列名列表)] AS SELECT语句【WITH [ CASCADED | LOCAL ] CHECK OPTION】
(161)(162)
2025-06-14 04:14:32
44
原创 (73)课91:查看视图的结构SHOW CREATE VIEW 视图名;删除视图DROP VIEW【IF EXISTS】视图名 [,视图名];
(160)(161)
2025-06-14 03:36:20
46
原创 72课91创建与修改视图:CREATE【OR REPLACE】VIEW 视图名称[(列名列表)] AS SELECT语句【WITH [ CASCADED | LOCAL ] CHECK OPTION】
(159)(160)
2025-06-14 02:55:00
104
原创 (71)课90 update 优化:引擎 INNODB支持事务外键行级锁,但要求有合适的列索引,不用遍历整张表,才用行级锁即可。否则行级锁会升级为表锁,极大限制并发效率。行级锁时针对索引加的锁。
(158)(159)
2025-06-13 14:11:19
109
原创 (70)课89:count(列名)不会统计值为 NULL的列。查询效率:count(字段) < count(主键 id) < count(1) ≈ count(*),所以尽量使用 count(*)。
(157)(158)
2025-06-13 13:32:41
108
原创 (69)课88 limit 分页优化:大数据量时进行分页查询,越往后,分页查询效率越低。优化思路: 一般分页查询时,通过创建 覆盖索引 能够比较好地提高性能,可以通过覆盖索引加子查询形式进行优化。
(156)(157)
2025-06-13 12:48:37
101
原创 (68)课87 group by 优化:在分组操作时,也可以通过索引来提高效率。 分组操作时,索引的使用同排序操作也是满足最左前缀法则的。
(155)(156)
2025-06-13 12:00:29
75
原创 (67)课86: order by优化总结,查看控制排序缓冲区大小的变量 show variables like ‘sort_buffer_size‘。
(154)(155)
2025-06-13 11:48:23
249
原创 (66)课86 order by优化:Using index / filesort。创建逆序(联合)索引 create index 索引名 on 表名(age asc , phone desc);
(153)(154)
2025-06-13 09:45:04
96
原创 (64)课83--85主键优化:在 InnoDB引擎中,表数据是按主键顺序存放的,应按主键的顺序插入;乱序插入的页分裂与删除时的页合并会耗时。MERGE_THRESHOLD合并页的阈值(1到50默认)
(149)(150)
2025-06-13 05:52:54
61
原创 63课82:load data local infile ‘D:\x.t‘ into table 表 fields terminated by ‘,‘ lines terminated by ‘\n‘
(148)(149)
2025-06-13 05:48:17
69
原创 (62)课82:高效填表之 set global local_infile = 1; 设置全局参数 local_infile 为1,开启从本地加载文件导入数据的开关
(149)(150)
2025-06-13 05:35:01
57
原创 (61)课81--82:总结索引设计的 7 个原则。高效插入数据之以此方式登录,才可以用 load 命令读入文件来填充表:mysql –-local-infile -u root -p root
(147)(148)
2025-06-13 03:38:12
111
原创 (60)课80:在业务场景中,如果存在多个查询条件,考虑针对于查询字段建立索引时,建议建立联合索引(并考虑强制使用 force index 关键字),而非单列索引。
(146)(147)
2025-06-13 03:04:57
74
原创 (59)课79前缀索引:若文本列里的字符串很长,就不适宜直接为其建立索引,可只为列文本的前几个字符建立索引 create index 索引名 on 表名( column(n) );及其查询流程
(145)(146)(147)
2025-06-13 00:28:49
88
原创 (58)课78:尽量使用覆盖索引(查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到),减少 select * 的使用。恰当的使用联合索引,可避免回表查询
(144)(145)
2025-06-12 22:46:50
91
原创 (57)课77用 sqL 提示来指导语句优化:explain select * from 表名 use(ignore、force) index(索引名) where 条件
(143)(144)
2025-06-12 11:48:29
91
原创 (56)课76列索引失效的情况汇总(下):where条件里使用了 or 连接,则 or 两边的列里都有索引,才不会使列索引失效;若查找时命中率太高则全表扫描会优于使用索引。
(142)(143)
2025-06-12 11:05:00
76
原创 (55)课76列索引失效的情况汇总(上):在索引列上进行了函数运算,索引失效;对字符串型的索引列,比较时未提供带引号的参数;模糊查询 LIKE 时,在索引列的头部使用了通配符%或_;还有见下篇
(142)(143)(144)
2025-06-12 10:07:33
69
原创 (54)课75:联合索引遇到了范围查询(>,<),则范围列右侧的列索引会失效;改为(>=、<=),就可避免范围失效。故开发中对于范围查询应尽可能使用 >= 而非 >。
(141)(142)
2025-06-12 09:18:00
97
QT6 阅读与注释主窗体 QMainWindow,包括了对码头组件 QDockwidget的成员函数
2025-05-27
QT6 阅读与注释 QActionGroup,并给出源代码;其是容器,以容纳菜单栏与工具栏里的按钮,组成按钮组
2025-05-19
QT6 阅读与注释 QAbstractScrollArea,其是文本框 QPlainTextEdit、QTextEdit的父类
2025-05-15
QT6 阅读 QMap<key,T>以及源代码:a i 增改,value()查询,删 remove(),这些已足够
2025-05-12
QT6 阅读与注释 LCD显示类 QLCDNumber ,该类继承于容器框架 QFrame
2025-05-10
QT6 阅读与注释计时器类 QElapsedTimer ,该类没有继承于 QObject
2025-05-10
QT6 阅读与注释日期时间类型的界面输入控件 QDateTimeEdit、QTimeEdit、QDateEdit
2025-05-09
QT6 阅读与注释日期类型 QDate、时间类型 QTime、日期时间类型 QDateTime
2025-05-08
QT6 阅读与注释进度条 QProgressBar 的源码,其是界面输出类,是 QWidget 的子类
2025-05-06
QT6 阅读与注释表盘 QDial 的源码,其是基类QAbstractSlider 的子类
2025-05-05
QT6 阅读与注释滑动条 QSlider 的源码,其是基类QAbstractSlider 的子类
2025-05-05
QT6 阅读与注释滚动条 QScrollBar 的源码,其是基类QAbstractSlider 的子类
2025-05-05
QT6 阅读与注释 QString 这个类,包含了 QString 类、与 QLatin1String 类的完整源码
2025-04-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人