MySQL学习笔记(十二)—— MySQL的命令集(2)
生活随笔
收集整理的這篇文章主要介紹了
MySQL学习笔记(十二)—— MySQL的命令集(2)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
5)? 更改表 ALTER [IGNORE] TABLE table action_list 更改表結構。可對表進行許多更改操作,如添加/刪除列、刪除索引等。其執行原理如下:MySQL創建一個表的副本并對其進行修改,同時將所有更改操作入隊,當修改完成時,原表即刪除并用新表替換,此時這些更改操作執行完畢。如果這些入隊的操作引入了重復的關鍵字,ALTER語句會滾回并取消。如果設置了IGNORE關鍵字,ALTER語句會繼續執行。 action_list可能的選項有: ⑴ADD [COLUMN] create_clause [FIRST | AFTER column] ? ADD [COLUMN] (create_clause, create_clause, …) 描述:在表中添加新的一列。這里的create_clause定義了列在表中創建的SQL(參看CREATE TABLE)。如果使用了FIRST關鍵字,該列創建為表的第一列;如果使用了AFTER關鍵字,則表示新創建的列在某列之后;如果這兩個關鍵字都沒有,新創建的列默認為表的最后一列。也可以同時添加多個列。 ⑵ADD [CONSTRAINT symbol] FOREIGN KEY name (column, …) [reference] 描述:僅對InnoDB表(可支持外關鍵字)適用,它會在表中添加一個外關鍵字引用。 ⑶ADD FULLTEXT [name] (column, …) 描述:添加一個使用指定列的完全文本索引。 ⑷ADD INDEX [name] (column, …) 描述:添加一個使用指定列的索引,如果沒有指定名稱,MySQL會自動選擇一個。 ⑸ADD PRIMARY KEY (column, …) 描述:添加一個由指定列組成的主關鍵字,如果表中已有主關鍵字,執行該命令會報錯。 ⑹ADD UNIQUE [name] (column, …) 描述:添加一個使用指定列的唯一性索引。 ⑺ALTER [COLUMN] column SET DEFAULT value 描述:為指定列賦一個新的默認值,這里的COLUMN關鍵字是可選的,對命令也沒有影響。 ⑻ALTER [COLUMN] column DROP DEFAULT 描述:對指定列刪除當前默認值,這里的COLUMN關鍵字是可選的,對命令也沒有影響。 ⑼CONVERT TO CHARACTER SET charset [COLLATE collation] ? [DEFAULT] CHARACTER SET charset [COLLATE collation] 描述:根據指定的校準(collation)將列轉換為指定字符集。 ⑽CHANGE [COLUMN] column create_clause ? MODIFY [COLUMN] create_clause [FIRST | AFTER column] 描述:更改列的定義。將指定列由一種數據類型轉換為其它數據類型(盡可能不影響數據)。關于create_clause參看CREATE TABLE命令。CHANGE可表示將某列修改為新的一列,而MODIFY只能在同一列上修改(列的名字不能改變)。這里的COLUMN關鍵字是可選的,對命令也沒有影響。MySQL會嘗試最合理的轉換方案,如果確實無法轉換,則會給出錯誤提示,最好在轉換前對數據進行備份,這樣可以最大程度地保障數據的安全。 ⑾DISABLE KEYS 描述:停止對MyISAM表更新索引。該命令僅對非唯一性索引適用。當需要向數據執行大量插入操作時,可能希望屏蔽關鍵字,這樣可以使得MySQL的處理效率更高。 ⑿DISCARD TABLESPACE 描述:對于InnoDB表,如果使用了表空間,那么該命令可用來刪除底層的.idb文件。在運行此命令之前最好先備份原.idb文件。 ⒀DROP [COLUMN] column 描述:在表中刪除一列。該命令可使一列及該列中的數據一并永久刪除,如果沒有備份,這些數據是無法再恢復的。此外,索引中所有對該列的引用也會被刪除掉。這里的COLUMN關鍵字是可選的,對命令也沒有影響。 ⒁DROP PRIMARY KEY 描述:在表中刪除主關鍵字。 ⒂DROP INDEX KEY 描述:在表中刪除一個索引。索引的刪除不會影響到表中的數據,因此,刪除的索引可以通過ALTER TABLE … ADD INDEX命令再重新創建。 ⒃ENABLE KEYS 描述:DISABLE KEYS的反操作。 ⒄IMPORT TABLESPACE 描述:由備份或其他數據源導入存儲為.idb文件的數據。 ⒅ORDER BY column [ASC | DESC] 描述:按指定列對表進行排序。如果新行加入,排序可能就會發生變化。該命令可以針對常見排序請求實現表的優化。可以指定多個列。 ⒆RENAME [AS] new_table ? RENAME [TO] new_table 描述:修改表的名稱。該命令不會影響表的數據及索引。如果單獨執行該命令,MySQL不會創建臨時表,而是直接更改表文件在操作系統中的名稱。 ⒇table_options 描述:對表選項(如表類型等)的重定義。 (注意:多個ALTER命令可以使用逗號組合在一起。對于ALTER TABLE操作,必須有相應的表操作權限。)
轉載于:https://blog.51cto.com/riser/61909
總結
以上是生活随笔為你收集整理的MySQL学习笔记(十二)—— MySQL的命令集(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配置FTP服务-要点总结
- 下一篇: 春节回来了,你收获了什么?