

# 更新架构
<a name="make-schema-updates"></a>

本主题介绍了无需实际更改数据即可在 `CREATE TABLE` 语句中对架构进行的一些更改。要更新架构，在某些情况下可以使用 `ALTER TABLE` 命令；而在其他情况下，实际上并不需要修改现有表。而是使用新名称创建一个表，该表修改了在原始 `CREATE TABLE` 语句中使用的架构。

根据您期望架构的演进方式，选择一种兼容的数据格式，以继续使用 Athena 查询。

考察一个应用程序，该应用程序从 `orders` 表中读取订单信息，而该表存在两种格式：CSV 和 Parquet。

以下示例用 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)