NULL 和 NOT NULL 修飾符、DEFAULT 修飾符,AUTO_INCREMENT 修飾符。
成都創(chuàng)新互聯(lián)主營(yíng)巫山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件定制開(kāi)發(fā),巫山h5重慶小程序開(kāi)發(fā)搭建,巫山網(wǎng)站營(yíng)銷(xiāo)推廣歡迎巫山等地區(qū)企業(yè)咨詢(xún)
NULL 和 NOT NULL 修飾符
可以在每個(gè)字段后面都加上這 NULL 或 NOT NULL 修飾符來(lái)指定該字段是否可以為空(NULL),
還是說(shuō)必須填上數(shù)據(jù) (NOT NULL)。MySQL 默認(rèn)情況下指定字段為 NULL 修飾符,如果一個(gè)字段指定為NOT NULL,
MySQL 則不允許向該字段插入空值(這里面說(shuō)的空值都為 NULL),因?yàn)檫@是 “規(guī)定”。
/* 創(chuàng)建好友表,其中id ,name ,pass都不能為空 */ create table friends ( id int(3) not null, name varchar(8) not null, pass varchar(20) not null ); /* 錯(cuò)誤提示,id列不能為空 #1048 - Column 'id' cannot be null */ INSERT INTO friends VALUES ( NULL , 'simaopig', 'simaopig' );
但是在自增列和 TIMESTAMP 字段中,這個(gè)規(guī)則并不適用。
向這些字段中插入 NULL 值將會(huì)導(dǎo)致插入下一個(gè)自動(dòng)增加的值或者當(dāng)前的時(shí)間戳。
DEFAULT 修飾符
可以使用 DEFAULT 修飾符為字段設(shè)定一個(gè)默認(rèn)值。
當(dāng)插入記錄時(shí),您老人家忘記傳該字段的值時(shí),MySQL 會(huì)自動(dòng)為您設(shè)置上該字段的默認(rèn)值。
/* 創(chuàng)建im表,將name字段設(shè)置為默認(rèn)值'QQ' */ create table im ( id int(3) not null, name varchar(25) not null default 'QQ' ); /* 插入數(shù)據(jù),不傳name字段的值,MySQL會(huì)為其設(shè)置默認(rèn)值的 您運(yùn)行的 SQL 語(yǔ)句已經(jīng)成功運(yùn)行了。 */ INSERT INTO im( id, name ) VALUES ( 2, 'MSN' ) ; INSERT INTO im( id ) VALUES ( 3 ) ; SELECT * FROM im LIMIT 0 , 30; /* id name 2 MSN 3 QQ */
如果一個(gè)字段中沒(méi)有指定 DEFAULT 修飾符,MySQL 會(huì)依據(jù)這個(gè)字段是 NULL 還是 NOT NULL 自動(dòng)設(shè)置默認(rèn)值。
如果指定字段可以為 NULL,則 MySQL 為其設(shè)置默認(rèn)值為 NULL。
如果是 NOT NULL 字段,MySQL 對(duì)于數(shù)值類(lèi)型插入 0,字符串類(lèi)型插入空字符串,
時(shí)間戳類(lèi)型插入當(dāng)前日期和時(shí)間,ENUM 類(lèi)型插入枚舉組的第一條。
AUTO_INCREMENT 修飾符
AUTO_INCREMENT 修飾符只適用于 INT 字段,表明 MySQL 應(yīng)該自動(dòng)為該字段生成一個(gè)數(shù)
(每次在上一次生成的數(shù)值上面加 1)。對(duì)于主鍵(稍候介紹),這是非常有用的。
因?yàn)槠湓试S開(kāi)發(fā)者使用 MySQL 為每條記錄創(chuàng)建唯一的標(biāo)識(shí)符。
/* 您運(yùn)行的 SQL 語(yǔ)句已經(jīng)成功運(yùn)行了。 ( 查詢(xún)花費(fèi) 0.0170 秒 ) */ CREATE TABLE items( id int( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , label varchar( 255 ) NOT NULL ); /* 插入三條數(shù)據(jù),不指定id,采用默認(rèn)值,加上AUTO_INCREMENT 您運(yùn)行的 SQL 語(yǔ)句已經(jīng)成功運(yùn)行了。 */ insert into items(label) values ('xxx'); insert into items(label) values ('yyy'); insert into items(label) values ('zzz'); /* 全顯示出來(lái),看一下數(shù)據(jù),注意看id的變化 */ select * from items; /* id label 1 xxx 2 yyy 3 zzz */
MySQL 表中只能有一個(gè) AUTO_INCREMENT 字段,而且這個(gè)字段必須被定義為鍵。
除了字段的約束,MySQL 也允許表級(jí)的約束,比如主鍵和外鍵、索引和惟一約束。
總結(jié)
以上所述是小編給大家介紹的MySQL中default的使用,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!