直接先拋出結論:
rename和change都是用於修改名稱的
rename修改的是表名稱,而change修改的是表中的字段名稱。
文章最後還有一些騷操作,Just for fun。
modify用於修改表中字段的數據長度,數據類型以及字段的約束條件的。
首先最簡單的是rename,用於修改表名,語法如下
alter table table_name rename [to] new table_name ;
這個語法沒有什麼可說的,to可要可不要,根據個人習慣,我一般是習慣性的加上to,就像使用別名時加上as一樣。
然後就是change,用於修改字段名
alter table table_name change old_name new_name datatype...; --新字段需要完整定義
這裏要注意的是你重新命名的新字段需要進行完整定義,並不是改字段名就可以。
最後就是modify,modify用於修改表中字段的數據長度,數據類型以及字段的約束條件的。
alter table table_name modify field datatype...;
這三者都同屬於alter語句裏面的內容,大概用法區別就是如此,語法也比較簡單
接下來就是一些騷操作了
其實change也可以像modify一樣修改表中字段的數據長度,數據類型以及字段的約束條件,只要你對字段進行完整的定義。
任意一表 有如下表結構,咱們就用change也來完成modify的工作,
我們執行如下語句,不進行改名的情況下(當然如果想,也可以改名),把原本varchar(10)類型,變爲char(20),把非空約束拿掉。
看看這個語句能不能執行的通
這樣看來,如果有需求是需要修改字段名,同時修改數據長度,數據類型以及字段的約束條件,就可以用這樣的方法
不過 總的來說 還是以文章開頭的用法來使用,修改列名就用change,修改數據類型以及字段的約束條件還是用modify。