ALTER TABLE
: 這個命令是用來修改資料表的結構,例如新增、修改或刪除欄位。它針對的是資料表(table)本身的結構,而不是具體的記錄(record)。INSERT
和 UPDATE
: 這兩個命令是用來操作具體的記錄(record)。INSERT
用於新增記錄,而 UPDATE
用於修改現有的記錄。ALTER TABLE
常見的使用情境:當需要在現有的資料表中新增一個欄位來儲存新的資訊時,例如新增 city
欄位來記錄使用者的居住地。
當需要修改欄位的名稱或資料型別時,例如將 last_login
欄位的型別從 DATE
改為 TIMESTAMP
以提高精確度。
當某個欄位不再需要時,可以刪除該欄位以節省空間。
當需要修改資料表的名稱時,可以使用 ALTER TABLE
語法。
ALTER TABLE table
:宣告ALTER TABLE
語法後,接指定要修改的資料表。ADD [COLUMN] column_name column_definition
:新增一個名為 column_name
的欄位,並定義其資料類型(型別)和屬性(例如 VARCHAR(255)
或 INT
)。[FIRST|AFTER existing_column]
:選擇性參數,決定新欄位的位置。FIRST
表示將新欄位放在第一個位置,AFTER existing_column
表示將新欄位放在指定欄位之後。若不指定,預設會新增在最後面。ALTER TABLE table_name
:要修改名為 table_name
的資料表。MODIFY column_name column_definition [FIRST | AFTER column_name]
:要修改名為 column_name
的欄位,並重新定義其資料類型和屬性(例如 VARCHAR(255)
或 INT
)。[FIRST | AFTER column_name]
這是選擇性參數,表示要將修改後的欄位放在資料表中的特定位置。FIRST
表示將欄位放在資料表的第一個位置,而 AFTER column_name
表示將欄位放在指定欄位之後。MODIFY
語句,每個語句用逗號分隔。ALTER TABLE table_name
:要修改名為 table_name
的資料表。CHANGE COLUMN original_name new_name column_definition
:要將名為 original_name
的欄位改名為 new_name
,並重新定義其資料類型和屬性(例如 VARCHAR(255)
或 INT
)。[FIRST | AFTER column_name]
:這是選擇性參數,表示要將修改後的欄位放在資料表中的特定位置。FIRST
表示將欄位放在資料表的第一個位置,而 AFTER column_name
表示將欄位放在指定欄位之後。ALTER TABLE table_name
:要修改名為 table_name
的資料表。DROP COLUMN column_name
:要刪除名為 column_name
的欄位。ALTER TABLE table_name
RENAME TO new_table_name
ALTER TABLE table_name
:要修改名為 table_name
的資料表。RENAME TO new_table_name
:要將資料表重新命名為 new_table_name
。• 創建新 Table :將 Schema 的規格重新定義,再重新創建一個表格。
• 從舊 Table 複製資料 :使用 INSERT INTO new_table SELECT … FROM old_table
將資料從舊表複製到新表。
• 刪掉舊 Table
• 把新 Table 改名成原本 Table 的名字
• 萬⼀途中有些指令失敗? 利用Transaction將舊資料救回來!