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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM