

# Aurora DSQL에 지원되는 SQL
<a name="working-with-postgresql-compatibility-supported-sql-features"></a>

Aurora DSQL은 다양한 핵심 PostgreSQL SQL 기능을 지원합니다. 이어지는 섹션에서는 일반적인 PostgreSQL 표현식 지원에 대해 알아볼 수 있습니다. 단, 이 목록이 전부는 아닙니다.

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

Aurora DSQL은 `SELECT` 명령의 다음 절을 지원합니다.


| 기본 절 | 지원 절 | 
| --- | --- | 
| `FROM` |  | 
| `GROUP BY` | `ALL`, `DISTINCT` | 
| `ORDER BY` | `ASC`, `DESC`, `NULLS` | 
| `LIMIT` |  | 
| `DISTINCT` |  | 
| `HAVING` |  | 
| `USING` |  | 
| `WITH`(공통 테이블 표현식) |  | 
| `INNER JOIN` | `ON` | 
| `OUTER JOIN` | `LEFT`, `RIGHT`, `FULL`, `ON` | 
| `CROSS JOIN` | `ON` | 
| `UNION` | `ALL` | 
| `INTERSECT` | `ALL` | 
| `EXCEPT` | `ALL` | 
| `OVER` | `RANK ()`, `PARTITION BY` | 
| `FOR UPDATE` |  | 

## 데이터 정의 언어(DDL)
<a name="dsql-ddl"></a>

Aurora DSQL은 다음과 같은 PostgreSQL DDL 명령을 지원합니다.


| Command | 기본 절 | 지원 절 | 
| --- | --- | --- | 
| `CREATE` | `TABLE` | `CREATE TABLE` 명령의 지원되는 구문에 대한 자세한 내용은 [`CREATE TABLE`](create-table-syntax-support.md) 섹션을 참조하세요. | 
| `ALTER` | `TABLE` | `ALTER TABLE` 명령의 지원되는 구문에 대한 자세한 내용은 [`ALTER TABLE`](alter-table-syntax-support.md) 섹션을 참조하세요. | 
| `DROP` | `TABLE` |  | 
| `CREATE` | `[UNIQUE] INDEX ASYNC` | 이 명령과 `ON`, `NULLS FIRST`, `NULLS LAST` 파라미터를 함께 사용할 수 있습니다.<br />`CREATE INDEX ASYNC` 명령의 지원되는 구문에 대한 자세한 내용은 [Aurora DSQL의 비동기 인덱스](working-with-create-index-async.md) 섹션을 참조하세요. | 
| `DROP` | `INDEX` |  | 
| `CREATE` | `VIEW` | `CREATE VIEW` 명령의 지원되는 구문에 대한 자세한 내용은 [`CREATE VIEW`](create-view.md) 섹션을 참조하세요. | 
| ALTER | VIEW | `ALTER VIEW` 명령의 지원되는 구문에 대한 자세한 내용은 [`ALTER VIEW`](alter-view-syntax-support.md) 섹션을 참조하세요. | 
| DROP | VIEW | DROP VIEW 명령의 지원되는 구문에 대한 자세한 내용은 [`DROP VIEW`](drop-view-overview.md) 섹션을 참조하세요. | 
| `CREATE` | `SEQUENCE` | `CREATE SEQUENCE` 명령의 지원되는 구문에 대한 자세한 내용은 [`CREATE SEQUENCE`](create-sequence-syntax-support.md) 섹션을 참조하세요. | 
| `ALTER` | `SEQUENCE` | `ALTER SEQUENCE` 명령의 지원되는 구문에 대한 자세한 내용은 [`ALTER SEQUENCE`](alter-sequence-syntax-support.md) 섹션을 참조하세요. | 
| `DROP` | `SEQUENCE` | `DROP SEQUENCE` 명령의 지원되는 구문에 대한 자세한 내용은 [`DROP SEQUENCE`](drop-sequence-syntax-support.md) 섹션을 참조하세요. | 
| `CREATE` | `ROLE`, `WITH` |  | 
| `CREATE` | `FUNCTION` | `LANGUAGE SQL` | 
| `CREATE` | `DOMAIN` |  | 

## 데이터 조작 언어(DML)
<a name="dsql-dml"></a>

Aurora DSQL은 다음과 같은 PostgreSQL DML 명령을 지원합니다.


| Command | 기본 절 | 지원 절 | 
| --- | --- | --- | 
| `INSERT` | `INTO` | `VALUES`SELECT | 
| `UPDATE` | `SET` | `WHERE (SELECT)`<br />`FROM, WITH` | 
| DELETE | FROM | USING, WHERE | 

## 데이터 제어 언어(DCL)
<a name="dsql-dcl"></a>

Aurora DSQL은 다음과 같은 PostgreSQL DCL 명령을 지원합니다.


| Command | 지원 절 | 
| --- | --- | 
| `GRANT` | `ON`, `TO` | 
| `REVOKE` | `ON`, `FROM`, `CASCADE`, `RESTRICT` | 

## 트랜잭션 제어 언어(TCL)
<a name="dsql-tcl"></a>

Aurora DSQL은 다음과 같은 PostgreSQL TCL 명령을 지원합니다.


| Command | 지원 절 | 별칭 | 
| --- | --- | --- | 
| `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` | 

## 유틸리티 명령
<a name="dsql-utility"></a>

Aurora DSQL은 다음과 같은 PostgreSQL 유틸리티 명령을 지원합니다.
+ `EXPLAIN`
+ `ANALYZE`(관계 이름만 해당)