在 SparkSQL 和 HiveQL 中,ALTER TABLE CHANGE COLUMN 具有兩個用途:它可以用於更改列的名稱,也可以用於更改列的資料型態。您也可以一次同時達到這兩種用途。

傳統的資料庫 (如 MySQL、Oracle 和 SQL Server) 並不使用 Change Column。在這些資料庫中,您可以使用 ALTER TABLE RENAME COLUMN 指令來更改欄位名稱,並可以使用 ALTER TABLE MODIFY COLUMN 指令來更改欄位的資料種類。

ALTER TABLE Change Column 的語法為

ALTER TABLE "表格名稱"
CHANGE "欄位名稱" "新欄位名稱" "新欄位的資料種類";

讓我們看一個例子。假設我們的起點是在 CREATE TABLE 教學所建立的 Customer 表格:

Customer 表格
 欄位名稱  資料種類 
 First_Name  char(50) 
 Last_Name  char(50) 
 Address  char(50) 
 City  char(50) 
 Country  char(25) 
 Birth_Date  datetime 

我們的目標是將 Country 欄位改名為 Region,並給它一個 char(20) 的資料種類。要達到這個目的,我們輸入:

ALTER TABLE Customer CHANGE Country Region char(20);

表格的架構現在變為:

Customer 表格
 欄位名稱  資料種類 
 First_Name  char(50) 
 Last_Name  char(50) 
 Address  char(100) 
 City  char(50) 
 Region  char(20) 
 Birth_Date  datetime 

如果只更改資料種類而不更改欄位名稱,我們只需在命令中重複欄位名稱。例如,假設現在我們想將 Region 的資料種類更改為 char(35),我們就輸入:

ALTER TABLE Customer CHANGE Region Region char(35);

請注意,Spark 只有一個 string 資料種類來儲存文字資料。在 SparkSQL 中指定 char() 資料種類不會造成錯誤,但新的欄位的資料種類將會是 string 而不是 char()。

下一頁: Modify Column (更改欄位)

本頁最近於 2023年12月29日更新



Copyright © 2024   1keydata.com   版權所有