SQL Alter Table Add Column



若我们要用SQL 来在一个表格上添加新的栏位,我们可以用 ALTER TABLE 的指令来宣告我们要改变这个表格的架构,接下来在同一句 SQL 我们用 ADD 指令来宣告我们要添加一个新的栏位。

语法

在 MySQL、Oracle 和 SQL Server 上,ALTER TABLE Add Column 的语法为:

ALTER TABLE "表格名称"
ADD "栏位名称" "资料种类";

在 Google BigQuery 上, ALTER TABLE Add Column 的语法为,

ALTER TABLE "表格名称"
ADD COLUMN "栏位名称" "资料种类" [, ...];

在 SparkSQL and Hive SQL (HiveQL) 上, ALTER TABLE Add Column 的语法为,

ALTER TABLE "表格名称"
ADD COLUMNS "栏位名称" "资料种类";

范例

让我们看一个例子。假设我们的起点是在 CREATE TABLE 那一页所建立的 Customer 表格:

Customer 表格
 栏位名称  资料种类 
 First_Name  char(50) 
 Last_Name  char(50) 
 Address  char(50) 
 City  char(50) 
 Country  char(25) 
 Birth_Date  datetime 

范例1:加一个栏位

我们的目标是新增一个名为「Gender」的栏位。要达到这个目的,我们输入:

MySQL:

ALTER TABLE Customer ADD Gender char(1);

Oracle:

ALTER TABLE Customer ADD Gender char(1);

SQL Server:

ALTER TABLE Customer ADD Gender char(1);

Google BigQuery:

ALTER TABLE Customer ADD COLUMN Gender char(1);

SparkSQL:

ALTER TABLE Customer ADD COLUMNS Gender char(1);

HiveQL:

ALTER TABLE Customer ADD COLUMNS Gender char(1);

现在 Customer 表格结构如下:

Customer 表格
 栏位名称  资料种类 
 First_Name  char(50) 
 Last_Name  char(50) 
 Address  char(50) 
 City  char(50) 
 Country  char(25) 
 Birth_Date  datetime 
 Gender  char(1) 

请注意,新的「Gender」栏位是 Customer 表格中的最后一个栏位。

范例2:加好几个栏位

我们也可以一次加入不只一个新的栏位。要达到这个目的,我们在 ADD 之后加一个括号,然后按照我们想要的次序列出新的栏位以及该栏位的资料种类。不同栏位之间用逗号隔开。

举例来说,如果我们要新增两个栏位,一个叫 「Email」 ,而另一个叫 「Telephone」 ,我们将输入以下的 SQL:

MySQL:

ALTER TABLE Customer ADD (Email char(30), Telephone char(20) );

Oracle:

ALTER TABLE Customer ADD (Email char(30), Telephone char(20) );

SQL Server:

ALTER TABLE Customer ADD (Email char(30), Telephone char(20) );

Google BigQuery:

ALTER TABLE Customer ADD COLUMN Email char(30), ADD COLUMN Telephone char(20);

SparkSQL:

ALTER TABLE Customer ADD COLUMNS (Email char(30), Telephone char(20) );

HiveQL:

ALTER TABLE Customer ADD COLUMNS (Email char(30), Telephone char(20) );

表格的架构现在变为:

Customer 表格
 栏位名称  资料种类 
 First_Name  char(50) 
 Last_Name  char(50) 
 Address  char(50) 
 City  char(50) 
 Country  char(25 
 Birth_Date  datetime 
 Gender  char(1) 
 Email  char(30) 
 Telephone  char(20) 

请注意,Spark 只有一个 string 资料种类来储存文字资料。在 SparkSQL 中指定 char() 资料种类不会造成错误,但新的栏位的资料种类将会是 string 而不是 char()。

Change Column (更改栏位) >>

本页最近于 2023年12月29日更新



Copyright © 2024   1keydata.com   All Rights Reserved.