

# スキーマを更新する
<a name="make-schema-updates"></a>

このトピックでは、実際にデータを変更せずに `CREATE TABLE` ステートメントのスキーマに加えられるいくつかの変更について説明します。スキーマを更新するには、`ALTER TABLE` コマンドを使用できる場合もあれば、既存のテーブルを実際に変更しない場合もあります。代わりに、元の `CREATE TABLE` テートメントで使用したスキーマを変更する新しい名前のテーブルを作成します。

期待されるスキーマの進化方法に応じて、Athena クエリの使用を継続するために互換性のあるデータ形式を選択します。

CSV および Parquet の 2 つの形式で存在する `orders` テーブルからの注文情報を読み取るアプリケーションを考えます。

以下の例では、Parquet でテーブルを作成します。

```
CREATE EXTERNAL TABLE orders_parquet (
   `orderkey` int, 
   `orderstatus` string, 
   `totalprice` double, 
   `orderdate` string, 
   `orderpriority` string, 
   `clerk` string, 
   `shippriority` int
) STORED AS PARQUET
LOCATION 's3://amzn-s3-demo-bucket/orders_ parquet/';
```

以下の例では、CSV で同じテーブルを作成します。

```
CREATE EXTERNAL TABLE orders_csv (
   `orderkey` int, 
   `orderstatus` string, 
   `totalprice` double, 
   `orderdate` string, 
   `orderpriority` string, 
   `clerk` string, 
   `shippriority` int
) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION 's3://amzn-s3-demo-bucket/orders_csv/';
```

次のトピックでは、これらのテーブルの更新が Athena クエリにどのように影響するかを示します。

**Topics**
+ [テーブルの先頭または中間に列を追加する](updates-add-columns-beginning-middle-of-table.md)
+ [テーブルの末尾に列を追加する](updates-add-columns-end-of-table.md)
+ [列の削除](updates-removing-columns.md)
+ [列の名前変更](updates-renaming-columns.md)
+ [列の順序変更](updates-reordering-columns.md)
+ [列のデータ型を変更する](updates-changing-column-type.md)