关系数据库管理系统通常使用特定的 SQL 变体。例如,SQL Server 使用 Transact-SQL 又名 T-SQL。
我知道 MariaDB 基于 MySQL(RDBMS),而 MySQL 使用的 SQL 变体显然本身也称为 MySQL(根据 this question)。我是否应该假设 MariaDB 也使用 MySQL 语言?
我尝试了几次 Google 搜索,但一无所获。由于 RDBMS 和语言之间的混淆,这很棘手。大多数结果只是将 MariaDB 与 MySQL(RDBMS)进行比较。
最佳答案
MariaDB 确实使用与 MySQL 相同的 SQL 方言。
但是,更高版本的 MariaDB 具有额外的功能,这些功能主要显示为查询语言中的设置和函数。 MariaDB 团队的差异列表在这里:https://mariadb.com/kb/en/library/mariadb-vs-mysql-features/
从我个人的角度来看,主要是在 MariaDB 10.2 及更高版本中。
- SEQUENCE 存储引擎:生成基数序列。 https://mariadb.com/kb/en/library/sequence-storage-engine/这显示为特殊格式的表名称,如
sequence_1_to_42
。
在 MySQL 8 之前,MariaDb 具有 MySQL 所没有的一些功能。这些都在 MySQL 8+ 中
- 窗口函数:排名、分布等 https://mariadb.com/kb/en/library/sequence-storage-engine/
- 公用表表达式 https://mariadb.com/kb/en/recursive-common-table-expressions-overview/
- ... 和
WITH
子句来使用它们。 https://mariadb.com/kb/en/with/ - 对数据进行操作的正则表达式不仅仅是匹配它。 https://mariadb.com/kb/en/library/pcre/
MySQL 版本 8 有更好的版本 REGEXP_REPLACE()和 REXEXP_SUBSTR()比 MariaDb 版本的 the two .
关于mysql - MariaDB 使用哪种 SQL 变体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47103334/