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 表格
范例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 表格
请注意,新的「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 表格
请注意,Spark 只有一个 string 资料种类来储存文字资料。在 SparkSQL 中指定 char() 资料种类不会造成错误,但新的栏位的资料种类将会是 string 而不是 char()。
|