

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

# 為資料庫、資料表和資料欄命名
<a name="tables-databases-columns-names"></a>

使用這些準則來為 Athena 中的資料庫、資料表和資料欄命名。

## 資料庫、資料表和資料欄名稱要求
<a name="tables-databases-columns-names-requirements"></a>
+  AWS Glue 中的資料庫名稱、資料表名稱和資料欄名稱的可接受字元必須是 UTF-8 字串且應為小寫。請注意，在建立資料庫、資料表或資料欄時，Athena 會自動將 DDL 查詢中的任何大寫名稱轉換為小寫。該字串的長度不得小於 1 個位元組，也不得超過 255 個位元組。
+ 目前，名稱開頭可能會有前導空格。由於這些前導空格可能難以偵測，且可能會在建立後造成可用性問題，因此請務必小心，避免不慎建立具有前導空格的物件名稱。
+ 如果您使用 [AWS::Glue::Database](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html) CloudFormation 範本來建立 AWS Glue 資料庫，但未指定資料庫名稱， 會以與 Athena 不相容的 *resource\$1name–random\$1string* 格式 AWS Glue 自動產生資料庫名稱。
+ 您可以使用 AWS Glue Catalog Manager 重新命名資料欄，但不能重新命名資料表名稱或資料庫名稱。若要解決此限制，您必須使用舊資料庫的定義，建立具有新名稱的資料庫。然後，您可以使用舊資料庫中資料表的定義，重新建立新資料庫中的資料表。若要這樣做，您可以使用 AWS CLI 或 AWS Glue SDK。如需這些步驟，請參閱 [使用 AWS CLI 重新建立 AWS Glue 資料庫及其資料表](glue-recreate-db-and-tables-cli.md)。

## 對 Athena 中的資料表名稱和資料表資料欄名稱使用小寫
<a name="table-names-and-table-column-names-in-ate-must-be-lowercase"></a>

Athena 接受在 DDL 和 DML 查詢中混合使用大小寫，但是當其執行查詢時名稱須為小寫。出於這個原因，請避免對資料表或資料欄名稱混合使用大小寫，並且不要在 Athena 中僅依賴大小寫來區分這些名稱。例如，如果您使用 DDL 陳述式來建立名為 `Castle` 的資料欄，則建立的資料欄將會是小寫的 `castle`。如果您接著在 DML 查詢中將資料欄名稱指定為 `Castle` 或 `CASTLE`，則 Athena 會將您要執行查詢的名稱變成小寫，但會使用您在查詢中選擇的大小寫來顯示資料欄標題。

資料庫、資料表和資料欄名稱必須小於或等於 255 個字元的長度。

## 以底線開頭的名稱
<a name="names-that-begin-with-an-underscore"></a>

建立資料表時，使用反引號括住以底線開頭的資料表、檢視或資料欄名稱。例如：

```
CREATE EXTERNAL TABLE IF NOT EXISTS `_myunderscoretable`(
  `_id` string, `_index` string)
LOCATION 's3://amzn-s3-demo-bucket/'
```

## 以數字開頭的資料表、檢視或資料行名稱
<a name="table-names-that-include-numbers"></a>

在執行 `SELECT`、`CTAS` 或 `VIEW` 查詢時，在以數字開頭的識別碼 (例如資料表、檢視或資料欄名稱) 周圍加上引號。例如：

```
CREATE OR REPLACE VIEW "123view" AS
SELECT "123columnone", "123columntwo"
FROM "234table"
```

## 資料欄名稱和複雜類型
<a name="tables-databases-columns-names-complex-types"></a>

對於複雜類型，資料欄名稱中僅允許英數字元、底線 (`_`) 和句點 (`.`)。若要為具有限制字元的索引鍵建立資料表和映射，您可以使用自訂 DDL 陳述式。如需詳細資訊，請參閱AWS 大數據部落格**中的[使用 JSONSerDe，透過巢狀 JSON 和映射，在 Amazon Athena 中建立資料表](https://aws.amazon.com/blogs/big-data/create-tables-in-amazon-athena-from-nested-json-and-mappings-using-jsonserde/)一文。

## 保留字
<a name="tables-databases-columns-names-reserved-words"></a>

Athena 中的某些保留字必須逸出。若要逸出 DDL 陳述式中的預留關鍵字，請以反引號 (`) 括住它們。若要逸出[檢視](views.md)上的 SQL `SELECT` 陳述式和查詢中的預留關鍵字，請以雙引號 ('') 將其括住。

如需詳細資訊，請參閱[在查詢中逸出預留關鍵字](reserved-words.md)。

## 其他資源
<a name="tables-databases-columns-names-additional-resources"></a>

如需完整的資料庫和資料表建立語法，請參閱下列頁面。
+ [CREATE DATABASE](create-database.md)
+ [CREATE TABLE](create-table.md)

如需 中資料庫和資料表的詳細資訊 AWS Glue，請參閱《 *AWS Glue 開發人員指南*》中的[資料庫](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-databases.html)和[資料表](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html)。