標籤:空值 creat 數值 輸入資料 name 記錄 varchar char amp
在MySQL中,每個欄位定義都包含附加約束或者修飾符,這些可以用來增加對所輸入資料的約束。今天我們來看一下MySQL的欄位約束:
NULL和
NOT NULL修飾符、
DEFAULT修飾符,
AUTO_INCREMENT修飾符。
NULL 和 NOT NULL 修飾符:可以在每個欄位後面都加上這NULL 或 NOT NULL 修飾符來指定該欄位是否可以為空白(NULL),還是說必須填上資料(NOT NULL)。MySQL預設情況下指定欄位為NULL修飾符,如果一個欄位指定為NOT NULL,MySQL則不允許向該欄位插入空值(這裡面說的空值都為NULL),因為這是“規定”。create table friends (id int(3) not null,name varchar(8) not null,pass varchar(20) not null); INSERT INTO friendsVALUES (NULL , ‘simaopig‘, ‘simaopig‘);但是在自增列和TIMESTAMP欄位中,這個規則並不適用。向這些欄位中插入NULL值將會導致插入下一個自動增加的值或者當前的時間戳記。
DEFAULT 修飾符:可以使用DEFAULT修飾符為欄位設定一個預設值。當插入記錄時,您老人家忘記傳該欄位的值時,MySQL會自動為您設定上該欄位的預設值。create table im (id int(3) not null,name varchar(25) not null default ‘QQ‘ ); INSERT INTO im( id, name ) VALUES ( 2, ‘MSN‘ ) ; INSERT INTO im( id ) VALUES ( 3 ) ; SELECT * FROM im LIMIT 0 , 30; 如果一個欄位中沒有指定DEFAULT修飾符,MySQL會依據這個欄位是NULL還是NOT NULL自動化佈建預設值。
如果指定欄位可以為NULL,則MySQL為其設定預設值為NULL。
如果是NOT NULL欄位,MySQL對於數實值型別插入0,字串類型插入Null 字元串,時間戳記類型插入當前日期和時間,ENUM類型插入枚舉組的第一條。
AUTO_INCREMENT 修飾符:AUTO_INCREMENT修飾符只適用於INT欄位,表明MySQL應該自動為該欄位產生一個數(每次在上一次產生的數值上面加1)。對於主鍵(稍候介紹),這是非常有用的。因為其允許開發人員使用MySQL為每條記錄建立唯一的標識符。CREATE TABLE items(id int( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,label varchar( 255 ) NOT NULL); insert into items(label) values (‘xxx‘); insert into items(label) values (‘yyy‘); insert into items(label) values (‘zzz‘); select * from items;
MySQL中的欄位約束 null、not null、default、auto_increment