MySQL教程49-MySQL預設值
阿新 • • 發佈:2020-08-18
預設值(Default)的完整稱呼是“預設值約束(Default Constraint)”,用來指定某列的預設值。在表中插入一條新記錄時,如果沒有為某個欄位賦值,系統就會自動為這個欄位插入預設值。
例如,員工資訊表中,部門位置在北京的較多,那麼部門位置就可以預設為“北京”,系統就會自動為這個欄位賦值為“北京”。
預設值約束通常用在已經設定了非空約束的列,這樣能夠防止資料表在錄入資料時出現錯誤。
在建立表時設定預設值約束
建立表時可以使用DEFAULT關鍵字設定預設值約束,具體的語法格式如下:
<欄位名> <資料型別> DEFAULT <預設值>;
其中,“預設值”為該欄位設定的預設值,如果是字元型別的,要用單引號括起來。
例 1
建立資料表 tb_dept3,指定部門位置預設為 '北京',SQL 語句和執行結果如下所示。
mysql> create table if not exists tb_dept3 -> ( -> id int(11) primary key auto_increment, -> name varchar(25), -> location varchar(25) default'北京' -> ); Query OK, 0 rows affected, 1 warning (0.69 sec)
以上語句執行成功之後,表 tb_dept3 上的欄位 location 擁有了一個預設值 '北京',新插入的記錄如果沒有指定部門位置,則預設都為 '北京'。
注意:在建立表時為列新增預設值,可以一次為多個列新增預設值,需要注意不同列的資料型別。
在修改表時新增預設值約束
ALTER TABLE <資料表名> ALTER [COLUMN] <列名> SET DEFAULT <預設值>;
例 2
修改資料表 tb_dept3,將部門位置的預設值修改為 '青島',SQL 語句和執行結果如下所示。
刪除預設值約束
當一個表中的列不需要設定預設值時,就需要從表中將其刪除。
修改表時刪除預設值約束的語法格式如下:
ALTER TABLE <表名> ALTER [COLUMN] <列名> DROP DEFAULT;
例 3
修改資料表 tb_dept3,將部門位置的預設值約束刪除,SQL 語句和執行結果如下所示。