MySQL中的字段約束 null、not null、default、auto_increment


在MySQL中,每個字段定義都包含附加約束或者修飾符,這些可以用來增加對所輸入數據的約束。今天我們來看一下MySQL的字段約束: NULLNOT 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 friends
VALUES (
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,字符串類型插入空字符串,時間戳類型插入當前日期和時間,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;
 
 


免責聲明!

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



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