《MySQL 入门教程》第 32 篇 存储过程(二)
本篇详细介绍了 MySQL 存储过程和函数中的编程功能,包括变量、条件控制语句、循环控制语句、错误处理、游标的使用以及访问权限控制。
PostgreSQL 15 JSON 函数增强
PostgreSQL 15 增加了大量符合 SQL/JSON 标准的函数,使得 JSON 数据的处理更加简单。
SQL面试题:什么是索引的最左前缀原则?
索引的最左匹配原则可以帮助我们决定如何创建索引,如何优化SQL查询。
2013-2022数据库排行榜
根据DB-Engines数据库流行度制作的2013-2022排行榜变化情况。
SQL案例分析:SQL子句的逻辑执行顺序
SQL子句的逻辑执行顺序和编写顺序不同,这会涉及到查询语句的语法、语义以及优化。
《MySQL 入门教程》第 31 篇 存储过程(一)
MySQL 存储过程(Stored procedure)和存储函数(Stored function)是一种存储在数据库中的程序,可以包含多个 SQL 语句,提供许多过程语言的功能,例如变量定义、条件语句、循环语句、游标以及异常处理等。
SQL案例分析:覆盖索引不是索引
在某些情况下,查询语句仅仅通过索引访问就可以返回所需的结果,不需要访问表中的数据,此时我们把这个索引称为覆盖索引(Covering Index)。某些数据库中称之为 Index Only Scan。覆盖索引是优化器选择的一种执行计划;或者也可以说,任何索引在某种情况下都可能成为覆盖索引。
《MySQL 入门教程》第 30 篇 数据库索引
数据库索引(Index)就像书籍后面的关键字索引,按照关键字进行排序,并且提供了指向具体内容的页码。索引可以用于提高数据库的查询性能;但是索引需要占用额外的磁盘空间,修改数据时也需要进行索引的维护。
SQL案例分析:执行计划怎么解读?(下)
继续解读MySQL执行计划中,包括Extra字段,访问谓词和过滤谓词的区别,以及如何获取SQL语句实际运行的执行计划。
《MySQL 入门教程》第 29 篇 视图
MySQL 视图就是一个存储在数据库中的查询语句。视图本身不包含数据,因此也被称为虚拟表(Virtual Table)。本文介绍了如何创建视图、查看视图、修改视图以及删除视图。同时还讨论了可更新视图。
SQL案例分析:执行计划怎么解读?(上)
执行计划(execution plan,也叫查询计划或者解释计划)是数据库执行 SQL 语句的具体步骤。如果想要解决慢查询的性能问题,首先应该查看它的执行计划。
SQL案例分析:主键使用自增ID还是UUID?
主键和索引的结构关系重大,分库分表又带来了全局唯一性的问题,所以主键应该使用自增ID还是UUID?
《MySQL 入门教程》第 28 篇 字符集与排序规则
本篇介绍 MySQL 中的字符集(Character Set)和排序规则(Collation)。字符集决定了能够存储哪些字符,排序规则定义了字符集中字符的排序和比较顺序,包括是否区分大小写,是否区分重音等。
SQL案例分析:一条查询语句的执行过程
从客户端建立连接开始,到解析器进行语法、语义分析和权限检查,然后优化器生成执行计划,执行器调用存储引擎获取物理文件中的数据,最后返回客户端。同时数据库为了提高性能,还提供了查询计划缓存和热点数据缓存。
《MySQL 入门教程》第 27 篇 事务控制
本篇介绍MySQL InnoDB存储引擎中的数据库事务概念和ACID属性,并发事务可能带来的脏读、不可重复读、幻读和更新丢失问题以及读未提交、读已提交、可重复读、序列化4种隔离级别,演示了如何使用事务控制语句(TCL)对事务进行处理。
Oracle Database 21c 分析函数增强
本文介绍了 Oracle Database 21c 中分析函数的语法增强,包括 WINDOW 子句、GROUPS 子句以及 EXCLUDE 子句。
《MySQL 入门教程》第 26 篇 DML 语句之合并数据
介绍如何在 MySQL 中实现数据合并操作,包括 INSERT ON DUPLICATE KEY 和 REPLACE 语句。
《MySQL 入门教程》第 25 篇 DML 语句之删除数据
本篇介绍 MySQL 中的数据删除操作,也就是 DELETE 语句。具体内容包括单表删除、DELETE JOIN 实现的跨表删除和多表删除操作、TRUNCATE TABLE 实现快速删除。
《MySQL 入门教程》第 24 篇 DML 语句之更新数据
MySQL 使用 UPDATE 语句更新表中的数据,支持单表更新、UPDATE JOIN 跨表更新以及多表更新。
PostgreSQL 15即将支持SQL标准中的MERGE语句
即将到来的PostgreSQL 15已经确认会增加MERGE语句,MERGE可以在单个语句中实现INSERT、UPDATE以及DELETE操作。在此之前,我们可以使用INSERT ON CONFLICT DO语句代替该功能。