首頁 > mysql教程 閱讀:0更新時間:2020-03-28 04:06:43

MySQL默認值(DEFAULT)

“默認值(Default)”的完整稱呼是“默認值約束(Default Constraint)”。mysql 默認值約束用來指定某列的默認值。

例如女性同學較多,性別就可以默認為“女”。如果插入一條新的記錄時沒有為這個字段賦值,那么系統會自動為這個字段賦值為“女”。

在創建表時設置默認值約束

創建表時可以使用 DEFAULT 關鍵字設置默認值約束,具體的語法規則如下:

<字段名> <數據類型> DEFAULT <默認值>;

【實例 1】創建數據表 tb_dept3,指定部門位置默認為 Beijing,輸入的 SQL 語句和運行結果如下所示。
mysql> CREATE TABLE tb_dept3
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(22),
    -> location VARCHAR(50) DEFAULT 'Beijing'
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_dept3;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | YES  |     | NULL    |       |
| location | varchar(50) | YES  |     | Beijing |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.06 sec)
以上語句執行成功之后,表 tb_dept3 上的字段 location 擁有了一個默認值 Beijing,新插入的記錄如果沒有指定部門位置,則默認都為 Beijing。

在修改表時添加默認值約束

修改表時添加默認值約束的語法規則如下:

ALTER TABLE <數據表名>
CHANGE COLUMN <字段名> <數據類型> DEFAULT <默認值>;

【實例 2】修改數據表 tb_dept3,將部門位置的默認值修改為 Shanghai,輸入的 SQL 語句和運行結果如下所示。
mysql> ALTER TABLE tb_dept3
    -> CHANGE COLUMN location
    -> location VARCHAR(50) DEFAULT 'Shanghai';
Query OK, 0 rows affected (0.15 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_dept3;
+----------+-------------+------+-----+----------+-------+
| Field    | Type        | Null | Key | Default  | Extra |
+----------+-------------+------+-----+----------+-------+
| id       | int(11)     | NO   | PRI | NULL     |       |
| name     | varchar(22) | YES  |     | NULL     |       |
| location | varchar(50) | YES  |     | Shanghai |       |
+----------+-------------+------+-----+----------+-------+
3 rows in set (0.00 sec)

刪除默認值約束

修改表時刪除默認值約束的語法規則如下:

ALTER TABLE <數據表名>
CHANGE COLUMN <字段名> <字段名> <數據類型> DEFAULT NULL;

【實例 3】修改數據表 tb_dept3,將部門位置的默認值約束刪除,輸入的 SQL 語句和運行結果如下所示。
mysql> ALTER TABLE tb_dept3
    -> CHANGE COLUMN location
    -> location VARCHAR(50) DEFAULT NULL;
Query OK, 0 rows affected (0.15 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_dept3;
+----------+-------------+------+-----+----------+-------+
| Field    | Type        | Null | Key | Default  | Extra |
+----------+-------------+------+-----+----------+-------+
| id       | int(11)     | NO   | PRI | NULL     |       |
| name     | varchar(22) | YES  |     | NULL     |       |
| location | varchar(50) | YES  |     | NULL     |       |
+----------+-------------+------+-----+----------+-------+
3 rows in set (0.00 sec)

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

国产亚洲欧美日韩