

# SQL compatível com o Aurora DSQL
<a name="working-with-postgresql-compatibility-supported-sql-features"></a>

O Aurora DSQL é compatível com uma ampla variedade de recursos principais do PostgreSQL. Nas seções a seguir, você pode obter informações sobre a compatibilidade geral com expressões do PostgreSQL. Essa lista não é exaustiva.

## `SELECT`Comando
<a name="dsql-select"></a>

O Aurora DSQL é compatível com as cláusulas a seguir do comando `SELECT`.


| Cláusula primária | Cláusulas compatíveis | 
| --- | --- | 
| `FROM` |  | 
| `GROUP BY` | `ALL`, `DISTINCT` | 
| `ORDER BY` | `ASC`, `DESC`, `NULLS` | 
| `LIMIT` |  | 
| `DISTINCT` |  | 
| `HAVING` |  | 
| `USING` |  | 
| `WITH` (expressões de tabela comuns) |  | 
| `INNER JOIN` | `ON` | 
| `OUTER JOIN` | `LEFT`, `RIGHT`, `FULL`, `ON` | 
| `CROSS JOIN` | `ON` | 
| `UNION` | `ALL` | 
| `INTERSECT` | `ALL` | 
| `EXCEPT` | `ALL` | 
| `OVER` | `RANK ()`, `PARTITION BY` | 
| `FOR UPDATE` |  | 

## Idioma de definição de dados (DDL)
<a name="dsql-ddl"></a>

O Aurora DSQL é compatível com os comandos de DDL do PostgreSQL a seguir.


| Command | Cláusula primária | Cláusulas compatíveis | 
| --- | --- | --- | 
| `CREATE` | `TABLE` | Para ter informações sobre a sintaxe compatível do comando `CREATE TABLE`, consulte [`CREATE TABLE`](create-table-syntax-support.md). | 
| `ALTER` | `TABLE` | Para ter informações sobre a sintaxe compatível do comando `ALTER TABLE`, consulte [`ALTER TABLE`](alter-table-syntax-support.md). | 
| `DROP` | `TABLE` |  | 
| `CREATE` | `[UNIQUE] INDEX ASYNC` | Você pode fazer esse comando com os seguintes parâmetros: `ON`, `NULLS FIRST` e `NULLS LAST`.<br />Para ter informações sobre a sintaxe compatível do comando `CREATE INDEX ASYNC`, consulte [Índices assíncronos no Aurora DSQL](working-with-create-index-async.md). | 
| `DROP` | `INDEX` |  | 
| `CREATE` | `VIEW` | Para ter mais informações sobre a sintaxe compatível do comando `CREATE VIEW`, consulte [`CREATE VIEW`](create-view.md).  | 
| ALTER | VIEW | Para ter informações sobre a sintaxe compatível do comando `ALTER VIEW`, consulte [`ALTER VIEW`](alter-view-syntax-support.md). | 
| DROP | VIEW | Para ter informações sobre a sintaxe compatível do comando DROP VIEW, consulte [`DROP VIEW`](drop-view-overview.md). | 
| `CREATE` | `SEQUENCE` | Para ter informações sobre a sintaxe compatível do comando `CREATE SEQUENCE`, consulte [`CREATE SEQUENCE`](create-sequence-syntax-support.md). | 
| `ALTER` | `SEQUENCE` | Para ter informações sobre a sintaxe compatível do comando `ALTER SEQUENCE`, consulte [`ALTER SEQUENCE`](alter-sequence-syntax-support.md). | 
| `DROP` | `SEQUENCE` | Para ter informações sobre a sintaxe compatível do comando `DROP SEQUENCE`, consulte [`DROP SEQUENCE`](drop-sequence-syntax-support.md). | 
| `CREATE` | `ROLE`, `WITH` |  | 
| `CREATE` | `FUNCTION` | `LANGUAGE SQL` | 
| `CREATE` | `DOMAIN` |  | 

## DML (Data Manipulation Language)
<a name="dsql-dml"></a>

O Aurora DSQL é compatível com os comandos de DML do PostgreSQL a seguir.


| Command | Cláusula primária | Cláusulas compatíveis | 
| --- | --- | --- | 
| `INSERT` | `INTO` | `VALUES`SELECT | 
| `UPDATE` | `SET` | `WHERE (SELECT)`<br />`FROM, WITH` | 
| DELETE | FROM | USING, WHERE | 

## Linguagem de controle de dados (DCL)
<a name="dsql-dcl"></a>

O Aurora DSQL é compatível com os comandos de DCL do PostgreSQL a seguir.


| Command | Cláusulas compatíveis | 
| --- | --- | 
| `GRANT` | `ON`, `TO` | 
| `REVOKE` | `ON`, `FROM`, `CASCADE`, `RESTRICT` | 

## Linguagem de controle de transação (TCL)
<a name="dsql-tcl"></a>

O Aurora DSQL é compatível com os comandos de TCL do PostgreSQL a seguir.


| Command | Cláusulas compatíveis | Alias | 
| --- | --- | --- | 
| `COMMIT` | [`WORK` \| `TRANSACTION`]<br />[`AND NO CHAIN`] | `END` | 
| `BEGIN` | [`WORK` \| `TRANSACTION`]<br />[`ISOLATION LEVEL REPEATABLE READ`]<br />[`READ WRITE` \| `READ ONLY`] |  | 
| `START TRANSACTION` | [`ISOLATION LEVEL REPEATABLE READ`]<br />[`READ WRITE` \| `READ ONLY`] |  | 
| `ROLLBACK` | [`WORK` \| `TRANSACTION`]<br />[`AND NO CHAIN`] | `ABORT` | 

## Comandos do utilitário
<a name="dsql-utility"></a>

O Aurora DSQL é compatível com os comandos do utilitário do PostgreSQL a seguir.
+ `EXPLAIN`
+ `ANALYZE` (somente nome da relação)