MYSQL第十六課時-修改表結構的命令

寫在前面

  • 添加或者刪除字段都是使用ALTER 的相關命令
  • 一次操作多個選項
    STEP1 選中一個表
    STEP2 操作一,
    STEP3 操作二,
    ...
    STEPn 操作n;

一、修改表名

ALTER TABLE tbl_name RENAME [TO|AS] new_name
RENAME TABLE tbl_name TO new_name

二、添加字段

ALTER TABLE tbl_name ADD 字段名稱 字段類型 [完整性約束條件] [FIREST|AFTER]
  • 添加字段,增加完整性約束條件,指定添加的字段的位置
  • 默認添加到列表的末尾

一次添加多個字段(選中一個表完成多個操作)

示例:
ALTER TABLE tbl_name

ADD test1 INT NOT NULL UNIQUE DEFAULT 10,

ADD test2 VARCHAR(20) NOT NULL DEFAULT '測試' FIRST,

ADD test3 CHAR(20) NOT NULL UNIQUE;

注意,要用‘,’分開操作

三、刪除字段

ALTER TABLE tbl_name DROP 字段名稱

一次刪除多個字段

參考一次添加多個字段的操作

四、修改字段類型&屬性

ALTER TABLE tbl_name MODIFY 字段名稱 字段類型[完整性約束條件] [FIRST|AFTER]
  • 可修改字段的類型,完整性約束條件,位置,不能修改唯一、默認、主鍵
  • 這種修改是覆蓋式的修改,并不是單項的修改

五、修改字段名稱

ALTER TABLE tbl_name CHANGE 舊字段名稱 新字段名稱 字段類型[完整性約束條件] [FIRST|AFTER 字段名稱]
  • 和上面的一樣,多增加了可以修改名稱的功能

  • 可不可以連續修改位置?
    可以的,即使是后一個跟著前一個的位置也是可以的

  • 到底是不是覆蓋式修改?
    單獨修改名字、位置、無符號、非空、默認值的時候,除了UNIQUE KEY 以外,其他的完整性約束條件都變成默認值,由此可見,這是覆蓋式修改的,但是無法通過MODIFY & CHANGE去修改UNIQUE的屬性

  • 在修改的時候會出現類似這樣的錯誤:Data truncated for column 'sex' at row 1
    這個錯誤的意思是插入了非法的數據或者插入的數據超過了范圍
    出現這個錯誤的情況是在已經插入了數據的前提下,去修改字段的類型,比如插入的是數值,修改成為漢字的枚舉型,就會報錯。

六、添加默認值

ALTER TABLE tbl_name ALTER 字段名稱 SET DEFAULT 默認值

七、刪除默認值

ALTER TABLE tbl_name ALTER 字段名稱 DROP DEFAULT 

以上兩個操作組合就是單獨修改默認值而不影響其他的屬性
可以連續操作添加或者刪除,但是不能對同一個字段進行連續的添加或者刪除

八、添加主鍵

ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type](字段名稱,...)
  • 完整型的添加主鍵命令和簡化的命令有什么區別?

九、刪除主鍵

ALTER TABLE tbl_name DROP PRIMARY KEY
  • 當有主鍵和自增長的數據的的時候,要先用MODIFY刪除自增長
  • 如果我一開始定義了兩個數據作為主鍵,有直接操作刪除其中一個的主鍵?

十、添加唯一

ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDES|KEY] [索引名稱](字段名稱,...)
  • 索引名稱,默認為字段的名稱
  • 添加復合唯一索引
    設置多個字段名稱,一個唯一索引對應兩個字段

十一、刪除唯一索引

ALTER TABLE tbl_name DROP {INDEX|KEY} index_name

十二、修改表的儲存引擎

ALTER TABLE tbl_name ENGINE=儲存引擎名稱

十三、設置自增長的值

ALTER TABLE tbl_name AUTO_INCREMENT = 值

修改后會在下一個值插入之后顯示,但是修改的值要大于表中最大值才會有效果。如果想要退回比較小的數,還是直接在插入值的時候設置比較好。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容