-
使用 MySQL 日志(第 2 部分):二进制日志
2018 年 12 月 4 日 ,由 Robert Gravelle 撰写 日志是关于记录数据库中发生的事情。就像有些人可能会保留个人日志来记下他们日常生活中发生的事情一样,数据库日志会跟踪登录和事务等事情。更重要的是,有效的日志应包括有关访问控制和输入验证失败的条目。难怪默认情况下 MySQL 唯一启用的日志是错误日志(至少在 Windows 上)。 上周的文章 简介了 MySQL...
https://www.navicat.com.cn/company/aboutus/blog/288-使用-mysql-日志(第-2-部分):二进制日志.html -
MySQL 8 组件架构和错误日志
2018 年 4 月 24 日, 由 Robert Gravelle 撰写 MySQL 服务器版本 8 的众多重大变化之一包括一个新的基于组件的基础架构。这将使架构更加模块化,同时允许用户添加单个组件来扩展服务器功能。 每个组件都提供服务器以及其他组件可用的服务。事实上,服务器本身现在被认为是一个组件,与其他组件一样。组件仅通过它们提供的服务相互交互。
https://www.navicat.com.cn/company/aboutus/blog/320-mysql-8-组件架构和错误日志.html -
启动和停止 MySQL 8 事件(第 4 部分)
2018 年 7 月 17 日 ,由 Robert Gravelle 撰写 从版本 5.1.6 开始,MySQL 支持事件。它们采用自然语言调度语法,因此你可以说:“我希望 MySQL 服务器每天上午 11:30 运行此 SQL 语句,直到今年年底”。为了帮助你编写事件语句,MySQL 提供了有关 CREATE EVENT 语法的出色 文档 。尽管如此,牢牢掌握事件调度仍然需要经过一些试验和错误。
https://www.navicat.com.cn/company/aboutus/blog/332-启动和停止-mysql-8-事件(第-4-部分).html -
如何判断何时该在 Oracle 中重新生成索引
How to Tell when it's Time to Rebuild Indexes in Oracle 2020 年 1 月 15 日,由 Robert Gravelle 撰写 每隔一段时间,我们就需要在Oracle中重新生成索引,因为随着时间的推移,索引变得支离破碎。 这会导致它们的性能以及扩展的数据库查询性能下降。 因此,不时地重新生成索引会非常有益。 话虽如此,索引不应该经常重新生成,因为这是一项资源密集型任务。...
https://www.navicat.com.cn/company/aboutus/blog/356-如何判断何时该在-oracle-中重新生成索引.html -
按组列出的前 N 个查询
2020 年 5 月 14 日,由 Robert Gravelle 撰写 前N个查询是按降序获取按值排序的前几条记录的查询。 通常,这些是使用TOP或LIMIT子句完成的。 问题是,前N个结果集被限制为表中的最高值,而没有任何分组。 GROUP BY子句可以帮助您解决此问题,但仅限于每个组的单项最高结果。 如果您想要每个类别的前5名,GROUP BY本身将无济于事。 这并不意味着它无法完成。 实际上,在今天的博客中,我们将确切学习如何按组构造前N个查询。
https://www.navicat.com.cn/company/aboutus/blog/366-按组列出的前-n-个查询.html -
MySQL 默认值:好还是坏? - 第2部分:何时使用它们
doesn't have a default value”错误。希望您也意识到,防止发生错误信息本身并不是提供默认值的有效理由。提供默认列值的原因很多,有些很好,有些则不怎么好。我们在第1部分探讨了MySQL严格SQL模式的影响,以及如何使用NavicatNavicat for MySQL 15对其进行查看和设置。在今天的后续文章中,我们将探讨何时使用默认值以及如何选用恰當的默认值。
https://www.navicat.com.cn/company/aboutus/blog/369-mysql-默认值:好还是坏?-第2部分:何时使用它们.html -
重要的 SQL Server 函数 - 数字函数
2021 年 5 月 11 日,由 Robert Gravelle 撰写 第 2 部分:数字函数 像大多数现代关系数据库产品一样,SQL Server 加载了内置函数集合。尽管某些函数在整体上非常相似,但确切的名称和签名可能有所不同。因此,我们最好复习常见 SQL 函数的 SQL Server 特定实现。在本系列的第 1 部分中,我们探讨了字符串函数。在今天的文章中,我们将继续讨论数字函数,这对生成统计信息和计算值非常有用!
https://www.navicat.com.cn/company/aboutus/blog/408-重要的-sql-server-函数-数字函数.html -
重要的 SQL Server 函数 - 其他函数
2021 年 5 月 24 日,由 Robert Gravelle 撰写 第 4 部分:其他函数 最后一类重要的 SQL Server 函数包括那些处理 NULL、转换和控制流的函数。这些函数绝不是剩菜,是你可能会遇到的最有用的函数之一! COALESCE 每当你选择值不是强制性的列时,你肯定会遇到 NULL 值。这是有道理的,因为 NULL 值表示没有值或缺少的信息。麻烦的是,如果将 NULL 值包括在计算以及可能对列数据执行的其他操作中,则可能会造成严重破坏。
https://www.navicat.com.cn/company/aboutus/blog/410-重要的-sql-server-函数-其他函数.html -
重要的 SQL Server 函数 - 日期函数
2021 年 5 月 14 日,由 Robert Gravelle 撰写 第 3 部分:日期函数 在 IT 行业工作了 20 年之后,我可以确定日期和时间非常难处理。幸运的是,现代关系数据库(例如 SQL Server)为此提供了许多非常有用的函数。在今天的文章中,我们将探索一些最常用的函数。
https://www.navicat.com.cn/company/aboutus/blog/409-重要的-sql-server-函数-日期函数.html -
MySQL 中的浮点数舍入错误
2021 年 9 月 3 日,由 Robert Gravelle 撰写 尽管 MySQL DECIMAL 和 NUMERIC 数据类型都是固定点值,但它们仍然容易出现舍入错误。 原因是,无论一个类型可以容纳多少位数(DECIMAL 的最大位数是 65!),该数字仍然是固定的。此外,DECIMAL 列可以被分配精度或小数位数,这可能会对允许的位数产生截断的潜在影响。
https://www.navicat.com.cn/company/aboutus/blog/457-mysql-中的浮点数舍入错误.html -
SQL 语句中 WHERE 1=1 的作用
2021 年 11 月 8 日,由 Robert Gravelle 撰写 你是否曾在 SELECT 查询中看到过 WHERE 1=1 条件。我在许多不同的查询和许多 SQL 引擎中都有看过。这条件显然意味着 WHERE TRUE,所以它只是返回与没有 WHERE 子句时相同的查询结果。此外,由于查询优化器几乎肯定会删除它,因此对查询执行时间没有影响。那么,WHERE 1=1 的作用是什么?这就是我们今天要在这里回答的问题!
https://www.navicat.com.cn/company/aboutus/blog/464-sql-语句中-where-1-1-的作用.html -
在 MySQL 中处理日期和时间 - 第 3 部分
获取当前日期和时间 早在 2021 年 5 月,我们就从如何获取当前日期和时间开始,介绍了 SQL Server 的一些值得注意的日期和时间函数。它为此提供了 GETDATE() 函数。而 MySQL 的等效函数简称为 NOW()。在 Navicat for MySQL 16 中,我们可以在不连接数据库的情况下调用此函数,因为我们没有选择任何表列:
https://www.navicat.com.cn/company/aboutus/blog/483-在-mysql-中处理日期和时间-第-3-部分.html -
在 MySQL 中处理日期和时间 - 第 4 部分
2022 年 3 月 22 日,由 Robert Gravelle 撰寫 创建日期或时间 在这个关于日期和时间的系列中,我们探索了 MySQL 的五种时态数据类型,以及它的许多面向日期或时间的函数中的一些。在本文中,我们将介绍在 MySQL 中创建日期和时间的几种方法。
https://www.navicat.com.cn/company/aboutus/blog/484-在-mysql-中处理日期和时间-第-4-部分.html -
在 MySQL 中处理日期和时间 - 第 5 部分
2022 年 4 月 1 日,由 Robert Gravelle 撰写 按日期查询 在 MySQL 中的日期和时间系列的最后一部分中,我们将通过编写 SELECT 查询来将迄今为止学到的所有知识付诸实践,以获得对数据的与日期相关的细节。
https://www.navicat.com.cn/company/aboutus/blog/487-在-mysql-中处理日期和时间-第-5-部分.html -
一些最常见的 SQL 查询错误 - 第 2 部分
2022 年 4 月 26 日,由 Robert Gravelle 撰写 第 2 部分:非 SARGable 查询条件 像大多数编程人员一样,数据库开发人员或多或少倾向于编写直接翻译给定请求的代码。大多数编程语言(包括 SQL)被设计为更易于人们阅读,这也导致了一个问题。为什么会有问题?所有编程语言都能比其他语言更快地执行某些操作。在关系数据库中,查询优化器用于分析 SQL...
https://www.navicat.com.cn/company/aboutus/blog/489-一些最常见的-sql-查询错误-第-2-部分.html -
一些最常见的 SQL 查询错误 - 第 3 部分
2022 年 5 月 6 日,由 Robert Gravelle 撰写 外部联接(Outer Join)和笛卡尔积(Cartesian Product) 在这个关于“常见的 SQL 查询错误”的系列中,我们一直在探索看似直观的 SQL 查询构造方法如何导致反模式,从而导致错误结果和/或性能降低。上周,我们暂停了这个系列,讨论了 SQL 中的谓词。在本期文竟中,我们将学习它们的位置如何对查询执行产生负面影响,尤其是在外部联接中。
https://www.navicat.com.cn/company/aboutus/blog/490-一些最常见的-sql-查询错误-第-3-部分.html -
一些最常见的 SQL 查询错误 - 第 5 部分
2022 年 5 月 16 日,由 Robert Gravelle 撰写 谓词的求值顺序 就在本系列的第 3 部分之前,我们稍作停顿,讨论了 SQL 中的谓词,因为它们会导致与外部联接相关的错误。在本系列“常见的 SQL 查询错误”的最后一部分中,谓词将再次出现,因为我们将研究谓词的求值顺序如何导致看似结构良好的查询因错误而运行失败。
https://www.navicat.com.cn/company/aboutus/blog/492-一些最常见的-sql-查询错误-第-5-部分.html -
嵌套连接的说明
2022 年 5 月 26 日,由 Robert Gravelle 撰写 就在你以为你知道每种类型的连接时,又有一种出现!也许你听说过嵌套联接,甚至是嵌套循环查询计划,并且想知道它们是什么。好吧,今天的文章将为你解开谜团!
https://www.navicat.com.cn/company/aboutus/blog/494-嵌套连接的说明.html -
从表中选择奇数或偶数行
2022 年 7 月 8 日,由 Robert Gravelle 撰写 从表中仅选择奇数行或偶数行听起来像是你永远不必做的事情,除非你自行这样做。在谷歌快速搜索一下,可以证实这事情是经常有人会做的,但是,很少有数据库从业者知道如何做,他们总是在线数据库社区求助寻找答案。作为本文的读者,你可以省去在数据库论坛中寻找解决方案的麻烦,因为我们今天将在这里直接说明如何能做到。
https://www.navicat.com.cn/company/aboutus/blog/503-从表中选择奇数或偶数行.html -
了解 SQL 外部联接
2022 年 10 月 11 日,由 Robert Gravelle 撰写 外部联接(Outer Join)是所有 SQL 联接类型中最不为人知的。也许是因为与其他联接类型相比,外部联接的需求较少。无论如何,外部联接本身并没有什么奇特的。正如我们将在这篇文章中看到的几个外部联接的示例,应该足以消除你对它们的任何误解和困惑。 本文将首先讲述 Outer Join 语句的语法和用途,然后会有一些示例说明。
https://www.navicat.com.cn/company/aboutus/blog/515-了解-sql-外部联接.html