概览

如何使CockroachDB简单易用是我们最重视的事情,所以我们选择实现SQL。然而尽管有SQL标准,但没有一个数据库实现了全部的SQL标准,也没有一个标准实现了所有的特性。

要了解我们支持哪些标准SQL功能(以及标准的常见扩展),请看下表.

特性

行值

Component Supported Type Details
Identifiers 标准 Identifiers documentation
INT 标准 INT documentation
FLOAT, REAL 标准 FLOAT documentation
BOOLEAN 标准 BOOL documentation
DECIMAL, NUMERIC 标准 DECIMAL documentation
NULL 标准 NULL-handling documentation
BYTES CockroachDB 扩展 BYTES documentation
Automatic key generation 通用扩展 Automatic key generation FAQ
STRING, CHARACTER 标准 STRING documentation
COLLATE 标准 COLLATE documentation
AUTO INCREMENT Alternative 通用扩展 Automatic key generation FAQ
Key-value pairs Alternative Extension Key-Value FAQ
New in v1.1: ARRAY 标准 ARRAY documentation
New in v1.1: UUID PostgreSQL扩展 UUID documentation
New in v2.0: JSON 通用扩展 JSONB documentation
New in v2.0: TIME 标准 TIME documentation
XML 标准 XML数据可以被存储为BYTES,不过我们不提供XML转换功能。
UNSIGNED INT 通用扩展 UNSIGNED INT 会导致许多问题,所以我们不打算支持它
SET, ENUM MySQL, PostgreSQL 扩展 仅允许行包含已定义的术语集中的值
INET PostgreSQL扩展 INET documentation

约束

Component Supported Type Details
Not Null 标准 Not Null documentation
Unique 标准 Unique documentation
Primary Key 标准 Primary Key documentation
Check 标准 Check documentation
Foreign Key 标准 Foreign Key documentation
Default Value 标准 Default Value documentation

事务

Component Supported Type Details
Transactions (ACID semantics) 标准 Transactions documentation
BEGIN 标准 BEGIN documentation
COMMIT 标准 COMMIT documentation
ROLLBACK 标准 ROLLBACK documentation
SAVEPOINT CockroachDB 扩展 虽然SAVEPOINT是SQL标准的一部分, 但我们只支持 our extension of it

索引

Component Supported Type Details
Indexes 通用扩展 Indexes documentation
Multi-column indexes 通用扩展 我们不限制索引能包含的列数
Covering indexes 通用扩展 Storing Columns documentation
New in v2.0: Inverted indexes 通用扩展 Inverted Indexes documentation
Multiple indexes per query Planned 通用扩展 在单个查询中使用多个索引来过滤表格的值
Full-text indexes Planned 通用扩展 GitHub issue tracking full-text index support
Prefix/Expression Indexes Potential 通用扩展 在进行索引之前,将表达式(例如LOWER())应用于值
Geospatial indexes Potential 通用扩展 提高计算地理空间数据的查询性能
Hash indexes 通用扩展 提高查找单个精确值的查询性能
Partial indexes 通用扩展 仅从索引列索引特定行

Schema 变更

Component Supported Type Details
ALTER TABLE 标准 ALTER TABLE documentation
Database renames 标准 RENAME DATABASE documentation
Table renames 标准 RENAME TABLE documentation
Column renames 标准 RENAME COLUMN documentation
Adding columns 标准 ADD COLUMN documentation
Removing columns 标准 DROP COLUMN documentation
Adding constraints 标准 ADD CONSTRAINT documentation
Removing constraints 标准 DROP CONSTRAINT documentation
Index renames 标准 RENAME INDEX documentation
Adding indexes 标准 CREATE INDEX documentation
Removing indexes 标准 DROP INDEX documentation

语句

Component Supported Type Details
Common statements 标准 SQL Statements documentation
UPSERT PostgreSQL, MSSQL 扩展 UPSERT documentation
EXPLAIN 通用扩展 EXPLAIN documentation
SELECT INTO Alternative 通用扩展 您可以使用CREATE TABLE复制类似的功能,然后INSERT INTO ... SELECT ...

条款

Component Supported Type Details
Common clauses 标准 SQL Grammar documentation
LIMIT 通用扩展 限制语句返回结果的行数
LIMIT with OFFSET 通用扩展 跳过一些行,然后限制返回结果的大小
RETURNING 通用扩展 返回行操作语句的结果.

Table 表达式

Component Supported Type Details
Table and View references 标准 Table expressions documentation
AS in table expressions 标准 Aliased table expressions documentation
JOIN (INNER, LEFT, RIGHT, FULL, CROSS) Functional 标准 Join expressions documentation
Sub-queries as table expressions Partial 标准 非关联子查询支持;关联子查询不支持
Table generator functions Partial PostgreSQL扩展 Table generator functions documentation
WITH ORDINALITY CockroachDB 扩展 Ordinality annotation documentation

Scalar 表达式 和 Boolean 公式

Component Supported Type Details
Common functions 标准 Functions calls and SQL special forms documentation
Common operators 标准 Operators documentation
IF/CASE/NULLIF 标准 Conditional expressions documentation
COALESCE/IFNULL 标准 Conditional expressions documentation
AND/OR/NOT 标准 Logical operators documentation
LIKE/ILIKE 标准 String pattern matching documentation
SIMILAR TO 标准 SQL regexp pattern matching documentation
Matching using POSIX regular expressions 通用扩展 POSIX regexp pattern matching documentation
EXISTS Partial 标准 非关联子查询支持;关联子查询不支持,目前仅支持用于小型数据集
Scalar subqueries Partial 标准 非关联子查询支持;关联子查询不支持,目前仅支持用于小型数据集
Bitwise arithmetic 通用扩展 Operators documentation
Array constructors and subscripting Partial PostgreSQL扩展 数组表达式文档: Constructor syntax and Subscripting
COLLATE 标准 Collation expressions documentation
Column ordinal references CockroachDB 扩展 Column references documentation
Type annotations CockroachDB 扩展 Type annotations documentation

权限

Component Supported Type Details
Users 标准 GRANT documentation
Privileges 标准 Privileges documentation
### 其他
Component Supported Type Details
----------- ----------- ------ ---------
Column families CockroachDB 扩展 Column Families documentation
Interleaved tables CockroachDB 扩展 Interleaved Tables documentation
Parallel Statement Execution CockroachDB 扩展 Parallel Statement Execution documentation
Information Schema 标准 Information Schema documentation
Views 标准 Views documentation
Window functions 标准 Window Functions documentation
Common Table Expressions Partial 通用扩展 Common Table Expressions documentation
Stored Procedures Planned 通用扩展 明确执行一个procedure
Cursors 标准 遍历表格的行
Triggers 标准 每当发生指定事件时执行一组命令
New in v2.0: Sequences 通用扩展 CREATE SEQUENCE documentation