

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# CREATE VIEW 和 CREATE PROTECTED MULTI DIALECT VIEW
<a name="create-view"></a>

檢視是可供未來查詢參考的一種邏輯資料表。檢視不會包含任何資料，而且不會寫入資料。相反地，檢視指定的查詢會在每次您透過另一個查詢參考該檢視時執行。
+ `CREATE VIEW` 會從指定的 `SELECT` 查詢建立 Athena 檢視。Athena 檢視可在 Athena 內部運作。如需有關 Athena 檢視的詳細資訊，請參閱 [使用檢視](views.md)。
+ `CREATE PROTECTED MULTI DIALECT VIEW` 在 AWS Glue Data Catalog. AWS Glue Data Catalog views 中建立 AWS Glue Data Catalog 檢視提供單一 AWS 服務 通用檢視，例如 Amazon Athena 和 Amazon Redshift。如需 AWS Glue Data Catalog 檢視的詳細資訊，請參閱 [在 Athena 中使用 Data Catalog 檢視](views-glue.md)。

## CREATE VIEW
<a name="create-view-ate"></a>

建立檢視以供 Athena 內部使用。

### 概要
<a name="synopsis"></a>

```
CREATE [ OR REPLACE ] VIEW view_name AS query
```

選用的 `OR REPLACE` 子句可讓您透過取代來更新現有的檢視。如需詳細資訊，請參閱[建立檢視](views-console.md#creating-views)。

### 範例
<a name="examples"></a>

若要從資料表 `orders` 建立檢視 `test`，請使用類似以下的查詢：

```
CREATE VIEW test AS
SELECT 
orderkey, 
orderstatus, 
totalprice / 2 AS half
FROM orders;
```

若要從資料表 `orders` 建立檢視 `orders_by_date`，請使用以下的查詢：

```
CREATE VIEW orders_by_date AS
SELECT orderdate, sum(totalprice) AS price
FROM orders
GROUP BY orderdate;
```

若要更新現有的檢視，請使用類似以下的範例：

```
CREATE OR REPLACE VIEW test AS
SELECT orderkey, orderstatus, totalprice / 4 AS quarter
FROM orders;
```

 如需有關使用 Athena 檢視的詳細資訊，請參閱 [使用檢視](views.md)。

## CREATE PROTECTED MULTI DIALECT VIEW
<a name="create-protected-multi-dialect-view"></a>

在 中建立 AWS Glue Data Catalog 檢視 AWS Glue Data Catalog。Data Catalog 檢視是一種單一檢視結構描述，可在 Athena 和其他 SQL 引擎 (例如 Amazon Redshift 和 Amazon EMR) 中運作。

### 語法
<a name="create-protected-multi-dialect-view-syntax"></a>

```
CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW view_name 
SECURITY DEFINER 
[ SHOW VIEW JSON ]
AS query
```

**OR REPLACE**  
(選用) 透過取代來更新現有的檢視。如果檢視中存在其他引擎的 SQL 方言，則無法取代 Data Catalog 檢視。如果呼叫引擎只存取 SQL 方言，則可取代該檢視。

**受保護**  
必要的關鍵字。指定檢視受到保護，以防止資料洩漏。Data Catalog 檢視只能做為 `PROTECTED` 檢視來建立。

**多方言**  
指定檢視支援不同查詢引擎的 SQL 方言，因此這些引擎可讀取。

**安全定義程式**  
指定對此檢視有效的定義程式語意。定義程式語意意味著基礎資料表上的有效讀取許可屬於定義檢視的主體或角色，而不是執行實際讀取的主體。

**SHOW VIEW JSON**  
(選用) 傳回 Data Catalog 檢視規格的 JSON，而無需實際建立檢視。當您想要驗證檢視的 SQL 並傳回 AWS Glue 將使用的資料表中繼資料時，這個「試轉」選項非常實用。

### 範例
<a name="create-protected-multi-dialect-view-syntax-example"></a>

下列範例會根據 `orders` 資料表上的查詢，來建立 `orders_by_date` Data Catalog 檢視。

```
CREATE PROTECTED MULTI DIALECT VIEW orders_by_date 
SECURITY DEFINER 
AS 
SELECT orderdate, sum(totalprice) AS price 
FROM orders 
WHERE order_city = 'SEATTLE' 
GROUP BY orderdate
```

如需使用 AWS Glue Data Catalog 檢視的詳細資訊，請參閱 [在 Athena 中使用 Data Catalog 檢視](views-glue.md)。