自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tony.Dong的专栏

大家好!我是只谈技术不剪发的Tony老师,一个专注于数据库领域的分享者。

原创 一次搞定各种数据库 SQL 执行计划:MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite

执行计划(execution plan,也叫查询计划或者解释计划)是数据库执行 SQL 语句的具体步骤,例如通过索引还是全表扫描访问表中的数据,连接查询的实现方式和连接的顺序等。如果 SQL 语句性能不够理想,我们首先应该查看它的执行计划。本文主要介绍如何在各种数据库中获取和理解执行计划,并给出进...

2019-12-19 14:01:32 13387 11

原创 五个简单的 SQL 查询性能测试题,只有 40% 及格率。你敢来挑战吗?

五个简单的 SQL 查询性能测试题,只有 40% 及格率。你敢来挑战吗?

2019-11-18 16:40:54 8590 32

原创 听说你在学习 MySQL,送你一份 MySQL 必备资源汇总

听说你在学习 MySQL,送你一份 MySQL 必备资源汇总。

2019-11-07 13:52:27 16182 14

原创 MySQL 8.0 新特性之检查约束(CHECK)
原力计划

介绍 MySQL 8.0 增加的新功能:检查约束(CHECK ),定义列级检查约束和表级检查约束,检查约束的 enforced 选项,检查约束的使用限制。

2020-06-05 14:52:42 31 0

原创 《MySQL 入门教程》第 07 篇 简单查询
原力计划

本篇介绍如何使用 SELECT 语句查询 MySQL 中的表,包括查询指定字段和全部字段、快速查询信息、使用别名和代码注释。

2020-06-04 15:08:02 47 0

原创 《PostgreSQL 开发指南》第 28 篇 PHP 访问 PostgreSQL
原力计划

介绍如何利用 PHP 数据对象(PDO)接口连接和操作 PostgreSQL 数据库,包括创建和删除表、执行数据的增删改查操作、事务的管理以及调用存储过程和函数。

2020-06-03 22:35:45 64 0

原创 Windows 10 键盘快捷方式速查表
原力计划

Windows 10 中的键盘快捷方式速查表。键盘快捷方式就是某个按键或按键组合,它们可以用于替代鼠标执行的操作,而且更加快速便捷。

2020-06-02 17:46:50 60 0

原创 SQLite 3.32 新特性分析
原力计划

SQLite 于 2020 年 5 月 22 日发布了 3.32.0 版本,带来了以下新的功能和增强:包括 approximate ANALYZE、SQL 函数 iif()、UINT 排序序列、默认主机参数限制从 999 增加到 32766、命令行工具增强等。

2020-06-01 17:33:28 81 0

原创 PostgreSQL 中的系统字段:tableoid、xmin、xmax、cmin、cmax、ctid
原力计划

PostgreSQL 中的每个表都包含了 6 个隐藏的系统字段:tableoid、xmin、xmax、cmin、cmax、ctid,这些字段可以用于获取关于数据行的一些内部信息。

2020-05-28 17:50:12 77 0

原创 MySQL 8.0 新特性之窗口函数
原力计划

介绍 MySQL 8.0 中的一个新特性:窗口函数。窗口函数(Window Function)针对查询中的每一行数据,基于和它相关的一组数据计算出一个结果。

2020-05-27 22:28:21 83 0

原创 SQL 窗口函数速查表
原力计划

SQL 窗口函数(分析函数)的速查表,包括窗口函数的语法、窗口函数列表(RANK、DENSE_RANK、ROW_NUMBER、LEAD、LAG、FIRST_VALUE、LAST_VALUE等)以及相关示例,内容适用于 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQ...

2020-05-26 21:59:14 79 0

原创 《PostgreSQL 开发指南》第 27 篇 触发器
原力计划

PostgreSQL 触发器(trigger)是一种特殊的函数,当某个数据变更事件(INSERT、UPDATE、DELETE 或者 TRUNCATE)或者数据库事件(DDL 语句)发生时自动执行,而不是由用户或者应用程序进行调用。 基于某个表或者视图数据变更的触发器被称为数据变更触发器(DML 触...

2020-05-25 17:55:33 127 2

原创 PostgreSQL 13 新特性
原力计划

PostgreSQL 全球开发组于 2020-05-21 宣布了 PostgreSQL 13 的第一个 beta 版本,目前已经提供了下载。虽然细节可能会有所改变,但是该版本包含了 PostgreSQL 13 最终正式版中的所有新特性的预览,让我们赶紧一睹为快吧!

2020-05-24 22:56:51 211 0

原创 MySQL 服务器中的 6 种日志类型
原力计划

MySQL 提供了一套完整的服务器日志体系,包含了多种日志类型,可以帮助我们查找、解决系统问题和优化数据库的性能。例如:错误日志、通用查询日志、慢查询日志、二进制日志、中继日志以及 DDL 日志。

2020-05-22 17:51:20 151 0

原创 PostgreSQL 性能优化之服务器参数配置
原力计划

介绍如何通过 PostgreSQL 服务器的参数优化数据库的性能,包括查看参数设置的 SHOW 命令、pg_settings 视图、以及设置参数的各种方式。同时介绍了 max_connections、shared_buffers、wal_buffers、effective_cache_size、w...

2020-05-19 22:04:38 263 0

原创 《PostgreSQL 开发指南》第 26 篇 存储过程
原力计划

介绍如何使用 PL/pgSQL 创建存储过程和函数,包括代码的块结构、变量声明与赋值、条件语句和循环控制结构、游标的使用、错误处理等。

2020-05-18 22:09:53 793 1

原创 阿里Mycat 和京东ShardingSphere:分布式数据库中间件哪家强?
原力计划

比较两个非常流行的开源分布式数据库中间件:Mycat 和 ShardingSphere(包括 Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar 3 款产品)。另外还有一个增强版的Mycat:DBLE(专注于 MySQL) 。

2020-05-14 17:32:28 1631 0

原创 MySQL 常用脚本之查看视图、存储过程/函数、触发器、计划任务等信息
原力计划

MySQL 常用的查询脚本,包括查看视图 information_schema.views、存储过程/函数 information_schema.routines、触发器 information_schema.triggers、计划任务/事件 information_schema.events 以...

2020-05-12 12:39:07 197 0

原创 MySQL 常用脚本之查看数据库、表结构、约束、索引等信息
原力计划

各种 MySQL 常用脚本,查看 MySQL 数据库模式 show databases 以及数据表的结构 show tables,包括字段定义、主键、外键、唯一等约束和索引信息,如何查看表和索引占用的磁盘空间等。

2020-05-11 18:07:22 297 0

原创 MySQL 查看和终止正在运行的连接线程
原力计划

当我们连接 MySQL 服务器遇到“too many connections”这种连接数过多的错误时,可以使用 show processlist 命令、通过 information_schema.processlist 或者 performance_schema.threads 表、利用 mysq...

2020-05-11 12:52:30 209 0

原创 《PostgreSQL 开发指南》第 25 篇 视图
原力计划

本篇介绍 PostgreSQL 中视图(View)的概念和作用,如何创建、修改、删除视图,以及可更新视图的使用与控制。

2020-05-06 20:55:51 379 0

原创 实战 SQL:银行等金融机构可疑支付交易的监测
原力计划

SQL 窗口函数(Window fuction)或者分析函数提供了强大的数据分析功能,我们介绍了一些聚合窗口函数的实际案例。SUM 函数常常用于计算历史累计值,COUNT 函数可以用于计算数据累计出现的次数,AVG 函数可以用于计算移动平均值。

2020-05-04 08:14:48 9232 13

原创 Oracle 数据库归档模式和非归档模式的区别以及设置
原力计划

介绍如何为 Oracle 单实例和 RAC 集群环境设置数据库的归档模式和非归档模式。非归档模式只能进行冷备,只能还原到备份点,之后的数据无法恢复;一般在开发或者测试环境使用;归档模式可以执行热备,同时支持增量备份,可以执行时间点恢复;归档日志文件需要占用额外的磁盘空间。

2020-04-29 14:29:58 312 0

原创 utPLSQL:一个 Oracle PL/SQL 单元测试框架
原力计划

utPLSQL 是一个 Oracle PL/SQL 和 SQL 单元测试框架,遵循类似于 JUnit 和 RSpec 的行业标准和现代化单元测试框架的最佳模式。

2020-04-28 18:35:59 407 0

原创 《PostgreSQL 开发指南》第 24 篇 索引与优化
原力计划

本篇介绍 PostgreSQL 中的索引概念,包括 B-树索引、哈希索引等类型,唯一索引、多列索引、函数索引、部分索引以及覆盖索引等方式。如何利用索引优化数据库的查询性能,以及创建索引、查看索引、维护索引等操作。

2020-04-27 20:21:53 337 0

原创 图解 MySQL、Oracle、SQL Server 等数据库连接查询(JOIN)的三种实现算法
原力计划

我们讨论了 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite 实现连接查询的三种算法:嵌套循环连接 Nested Loop Join、哈希连接 Hash Join 以及排序合并连接 Sort Merge Join。了解这些算法的原理和优缺点可以帮助我们优化连...

2020-04-26 21:09:16 519 0

原创 《PostgreSQL 开发指南》第 23 篇 事务与并发控制
原力计划

本篇介绍 PostgreSQL 中的数据库事务概念和 ACID 属性,并发事务可能带来的问题以及 4 种隔离级别,演示了如何使用事务控制语句(TCL)对事务进行处理,包括 BEGIN、COMMIT、ROLLBACK 以及 SAVEPOINT 语句。

2020-04-23 21:09:14 622 0

原创 某电商销售数据分析 SQL 面试题解析
原力计划

本文基于某电商销售数据分析 SQL 面试题,解析并给出了 MySQL 中的解决方法。依次使用了 GROUP BY 分组加聚合函数、HAVING 过滤和DISTINCT 去重、ORDER BY 排序加上 LIMIT 子句实现 Top-N 排行榜,以及窗口函数。

2020-04-22 21:56:53 3723 5

原创 【SQL 模式匹配】如何验证电子邮箱的合法性?
原力计划

介绍如何在 MySQL、Oracle、SQL Server 等数据库中使用 LIKE 运算符以及正则表达式实现字符串的模式匹配,完成电子邮箱合法性验证、敏感词的检测、身份证校验、IP 地址验证等功能。

2020-04-20 21:37:31 1183 1

原创 【SQL 知识点】没有表也能查询?是的,无表查询了解一下

介绍 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite 数据库中快速查询系统信息的方法,包括没有 FROM 子句的 SELECT 语句、VALUES 查询语句等。

2020-04-16 09:16:32 612 1

原创 《PostgreSQL 开发指南》第 22 篇 DML 语句
原力计划

介绍如何在 PostgreSQL 中对表的数据进行修改操作,包括插入数据的 INSERT 语句、更新数据的 UPDATE 语句、删除数据的 DELETE 语句,以及合并数据的 INSERT ON CONFLICT 语句。

2020-04-15 09:20:13 592 1

原创 【总结】数据库自增字段的 3 种实现方式
原力计划

介绍在 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite 等主流数据库中实现自增字段的几种方法,包括标识列(IDENTITY)、AUTO_INCREMENT、SERIAL、AUTOINCREMENT 以及序列(SEQUENCE)等。

2020-04-13 21:35:16 1461 0

原创 SQL 面试题:WHERE 和 HAVING、ON 有什么区别?
原力计划

SQL 中WHERE和HAVING的区别在于:WHERE子句在GROUP BY分组和聚合函数之前对数据行进行过滤;HAVING子句对GROUP BY分组和聚合函数之后的数据行进行过滤。 SQL 中WHERE和ON的区别在于:对于内连接查询,WHERE和ON中的过滤条件等效;对于外连接查询,ON中的...

2020-04-09 07:42:16 4561 10

原创 《PostgreSQL 开发指南》第 21 篇 窗口函数
原力计划

PostgreSQL 窗口函数(分析函数)基于和当前数据行相关的一组数据计算出一个结果。窗口函数使用 OVER 子句进行定义,包括 PARTITION BY、ORDER BY 以及 frame_clarse 三个选项。常见的窗口函数可以分为以下几类:聚合窗口函数、排名窗口函数以及取值窗口函数。

2020-04-07 20:53:08 488 0

原创 实战 SQL:销售数据的小计/合计/总计以及数据透视表
原力计划

介绍如何在 SQL 中利用聚合函数、GROUP BY 子句的 ROLLUP、CUBE 和 GROUPING SETS 选项以及 CASE 表达式实现类似 Excel 数据透视表的功能,通过展开、折叠、筛选、行列转换等操作得到不同层次和视角的数据小计/合计/总计。本文涉及的数据库包括 Oracle、...

2020-04-02 18:19:18 1971 1

原创 《MySQL 性能优化》之数据库事务与隔离级别
原力计划

在数据库中,事务是指一组相关的 SQL 语句操作,它们在业务逻辑上是一个原子单元。数据库事务具有 ACID 属性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)以及持久性(Durability)。 MySQL 中的 InnoDB 存储引擎具有事务安全性,实现...

2020-03-31 17:35:29 1575 0

原创 实战 SQL:微信、微博等社交网络中的友好、粉丝关系分析
原力计划

介绍如何将微信、微博这类图结构的社交网络数据使用邻接列表进行描述,并且最终存储为结构化的关系表。利用 SQL 语句中的 JOIN 连接查询、通用表表达式的递归查询等功能对其进行分析,发行其中隐藏的社交关系。 这些方法适用于 MySQL、Oracle、SQL Server、PostgreSQL 以及...

2020-03-28 13:09:07 9513 23

原创 《PostgreSQL 开发指南》第 20 篇 通用表表达式
原力计划

通用表表达式(Common Table Expression)是一个临时的查询结果或者临时表,可以在其他SELECT、INSERT、UPDATE以及DELETE语句中使用。 使用 CTE 可以提高复杂查询的可读性,递归 CTE 可以遍历各种层次数据。CTE 和 DML 语句一起使用可以在一个语句中...

2020-03-26 15:26:34 1373 0

原创 趣味 SQL:使用蒙特卡洛方法计算圆周率 Pi 的值
原力计划

介绍如何在 SQL 中利用蒙特卡洛方法(Monte Carlo method)模拟计算圆周率 Pi 的值,并给出了 MySQL、Oracle、SQL Sever、PostgreSQL 以及 SQLite 中的语法实现。

2020-03-23 16:38:28 2465 1

原创 《PostgreSQL 开发指南》第 19 篇 集合操作
原力计划

介绍 PostgreSQL 中的集合操作符,UNION 用于将两个查询结果合并成一个结果集,返回出现在第一个查询或者出现在第二个查询中的数据 ;INTERSECT 用于返回两个查询结果中的共同部分,即同时出现在第一个查询结果和第二个查询结果中的数据; EXCEPT 用于返回出现在第一个查询结果中,...

2020-03-20 17:32:22 1279 0

提示
确定要删除当前文章?
取消 删除