在使用MySQL創(chuàng)建數(shù)據(jù)庫時,建表是必不可少的一步。建表的過程中,我們可以對每一列數(shù)據(jù)類型的默認值進行設定,稱之為“缺省值”。
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `password` varchar(50) NOT NULL, `email` varchar(50) DEFAULT NULL, `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在上面的表結構中,我們設定了一列名為“email”的數(shù)據(jù)類型為varchar,并為其設定了一個缺省值DEFAULT NULL。這意味著,如果在插入一條數(shù)據(jù)時未對“email”列進行賦值,該列的數(shù)據(jù)將自動被設定為NULL。
除了使用NULL外,我們還可以為列的默認值指定其他的數(shù)據(jù)類型,比如數(shù)值、日期、時間等。
CREATE TABLE `product` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `price` decimal(10,2) NOT NULL DEFAULT '0.00', `created_time` datetime NOT NULL DEFAULT '1900-01-01 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在上面的表結構中,我們?yōu)椤皃rice”列設定了一個缺省值DEFAULT '0.00',代表如果未對該列進行賦值,則該列數(shù)值為0。而在為“created_time”列設定缺省值時,我們可以使用DATETIME類型,并設置了一個默認值'1900-01-01 00:00:00'。
通過合理地設定缺省值,可以降低系統(tǒng)的負擔,提升數(shù)據(jù)的處理效率。