MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,它使用結(jié)構(gòu)化查詢語言(SQL)來管理數(shù)據(jù)庫。在MySQL中,建立表格時(shí),可以指定列的數(shù)據(jù)類型、長度等,還可以為列設(shè)置默認(rèn)值。本文將介紹MySQL中如何為列設(shè)置默認(rèn)值。
在MySQL中,為列設(shè)置默認(rèn)值可以使用DEFAULT關(guān)鍵字,該關(guān)鍵字必須緊跟在列類型、長度等選項(xiàng)的后面,如下示例代碼:
CREATE TABLE `students` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL DEFAULT '', `gender` CHAR(1) NOT NULL DEFAULT 'M', `age` INT(11) NOT NULL DEFAULT 0, `address` VARCHAR(255) DEFAULT NULL, PRIMARY KEY (`id`) );
在上面的示例中,name
列的默認(rèn)值為一個(gè)空字符串,gender
列的默認(rèn)值為'M',age
列的默認(rèn)值為0,address
列的默認(rèn)值為NULL。
注意,當(dāng)一個(gè)新的行插入到表格中時(shí),如果沒有設(shè)置該列的值,MySQL將使用指定的默認(rèn)值為該列賦值。
在MySQL中,還可以使用DEFAULT關(guān)鍵字為時(shí)間戳列設(shè)置默認(rèn)值,默認(rèn)值可以是:CURRENT_TIMESTAMP
、CURRENT_TIMESTAMP()
或者NOW()
,如下示例代碼:
CREATE TABLE `orders` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `order_no` VARCHAR(50) NOT NULL, `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) );
在上面的示例中,create_time
列的默認(rèn)值為當(dāng)前時(shí)間戳,update_time
列的默認(rèn)值為當(dāng)前時(shí)間戳,并且在該行發(fā)生更新時(shí),將自動(dòng)更新為當(dāng)前時(shí)間戳。
總結(jié)來說,MySQL使用DEFAULT關(guān)鍵字為列設(shè)置默認(rèn)值,可以是字符串、數(shù)字、NULL或時(shí)間戳等。在建立表格時(shí)設(shè)置默認(rèn)值,可以讓數(shù)據(jù)更加規(guī)范和統(tǒng)一,同時(shí)也能提高數(shù)據(jù)插入的效率。