SQL feature support
YugabyteDB supports most standard SQL features.
This page documents a preview version.
v2.23 Preview
Preview includes features under active development and is for development and testing only.
For production, use the latest stable version (v2024.1).
For production, use the latest stable version (v2024.1).
This page highlights the important differences in feature support between YSQL and SQL.
Data types
Data type | Documentation | |
---|---|---|
ARRAY |
Array data types | |
BINARY |
Binary data types | |
BIT ,BYTES |
||
BOOLEAN |
Boolean data types | |
CHAR , VARCHAR , TEXT |
Character data types | |
COLLATE |
Collations | |
DATE , TIME , TIMESTAMP , INTERVAL |
Date and time data types | |
DEC , DECIMAL , NUMERIC |
Fixed point numbers | |
ENUM |
Enumerations | |
FLOAT , REAL , DOUBLE PRECISION |
Floating-point numbers | |
JSON , JSONB |
JSON data types | |
MONEY |
Money data types | |
SERIAL , SMALLSERIAL , BIGSERIAL |
Serial data types | |
SMALLINT, INT, INTEGER, BIGINT |
Integers | |
INT4RANGE , INT8RANGE , NUMRANGE , TSRANGE , TSTZRANGE , DATERANGE |
Range data types | |
UUID |
UUID data type | |
XML |
||
TSVECTOR |
||
UDT(Base, Enumerated, Range, Composite, Array, Domain types) |
Schema operations
Operation | Documentation | |
---|---|---|
Altering tables | ALTER TABLE | |
Altering databases | ALTER DATABASE | |
Altering a column's name | ||
Altering a column's default value | ||
Altering a column's data type | ||
Adding columns | ADD COLUMN | |
Removing columns | DROP COLUMN | |
Adding constraints | ADD CONSTRAINT | |
Removing constraints | DROP CONSTRAINT | |
Altering indexes | ||
Adding indexes | CREATE INDEX | |
Removing indexes | ||
Adding a primary key | ||
Dropping a primary key | ||
Altering a primary key | ||
Adding user-defined schemas | CREATE SCHEMA | |
Removing user-defined schemas | ||
Altering user-defined schemas |
Constraints
Feature | Documentation | |
---|---|---|
Check | Check constraint | |
Unique | Unique constraint | |
Not Null | Not Null constraint | |
Primary Key | Primary keys | |
Foreign Key | Foreign keys | |
Default Value | ||
Deferrable Foreign Key constraints | ||
Deferrable Primary Key and Unique constraints | ||
Exclusion constraints |
Indexes
Component | Documentation | |
---|---|---|
Indexes | Indexes and constraints | |
GIN indexes | GIN indexes | |
Partial indexes | Partial indexes | |
Expression indexes | Expression indexes | |
Multi-column indexes | Multi-column indexes | |
Covering indexes | Covering indexes | |
GiST indexes | ||
BRIN indexes | ||
B-tree indexes | B-tree index is treated as an LSM index. |
Transactions
Feature | Documentation | |
---|---|---|
Transactions | Transactions | |
BEGIN |
BEGIN | |
COMMIT |
COMMIT | |
ROLLBACK |
ROLLBACK | |
SAVEPOINT |
SAVEPOINT | |
ROLLBACK TO SAVEPOINT |
ROLLBACK TO SAVEPOINT | |
PREPARE TRANSACTION (XA) |
Roles and Permissions
Component | Details | |
---|---|---|
Users | Manage users and roles | |
Roles | Manage users and roles | |
Object ownership | ||
Privileges | Grant privileges | |
Default privileges | ||
Row level security | ||
Column level security |
Queries
Component | Details | |
---|---|---|
FROM, WHERE, GROUP BY, HAVING, DISTINCT, LIMIT/OFFSET, WITH queries | Group data | |
EXPLAIN query plans | Analyze queries with EXPLAIN | |
JOINs (INNER/OUTER, LEFT/RIGHT) | Join columns | |
Expressions and Operators | Expressions and operators | |
Common Table Expressions (CTE) and Recursive Queries | Recursive queries and CTEs | |
Upserts (INSERT ... ON CONFLICT DO NOTHING/UPDATE) | Upsert |
Advanced SQL
Component | Details | |
---|---|---|
Stored procedures | Stored procedures | |
User-defined functions | Functions | |
Cursors | Cursors | |
Row-level triggers (BEFORE, AFTER, INSTEAD OF) | ||
Statement-level triggers (BEFORE, AFTER, INSTEAD OF) | ||
Deferrable triggers | ||
Transition tables (REFERENCING clause for triggers) | ||
Sequences | Auto-Increment column values | |
Identity columns | ||
Views | Views | |
Materialized views | Materialized views | |
Window functions | Window functions | |
Common table expressions | ||
Extensions | PostgreSQL extensions | |
Foreign data wrappers | Foreign data wrappers |