mysql簡單建表

來源:互聯網
上載者:User

標籤:

MySQL 欄位約束 null,not null,default,auto_increment【來源於】沒有規矩,不成方圓,任何事物都是如此。在MySQL中,每個欄位定義都包含附加約束或者修飾符,這些可以用來增加對所輸入資料的約束。今天我們就來看一下MySQL的欄位約束:NULL和NOT NULL修飾符、DEFAULT修飾符,AUTO_INCREMENT修飾符。


NULL 和 NOT NULL 修飾符:

可以在每個欄位後面都加上這NULL 或 NOT NULL 修飾符來指定該欄位是否可以為空白(NULL),還是說必須填上資料(NOT NULL)。MySQL預設情況下指定欄位為NULL修飾符,如果一個欄位指定為NOT NULL,MySQL則不允許向該欄位插入空值(這裡面說的空值都為NULL),因為這是“龜定”。

 

 
1234567891011121314151617 /*建立好友表,其中id ,name ,pass都不可為空*/create table friends (id int(3) not null,name varchar(8) not null,pass varchar(20) not null); /*錯誤提示,id列不可為空#1048 - Column ‘id‘ cannot be null*/INSERT INTO friendsVALUES (NULL , ‘simaopig‘, ‘simaopig‘);

 

但是在自增列和TIMESTAMP欄位中,這個規則並不適用。向這些欄位中插入NULL值將會導致插入下一個自動增加的值或者當前的時間戳記。

DEFAULT 修飾符:

可以使用DEFAULT修飾符為欄位設定一個預設值。當插入記錄時,您老人家忘記傳該欄位的值時,MySQL會自動為您設定上該欄位的預設值。

 

 
1234567891011121314151617181920212223 /*建立im表,將name欄位設定為預設值‘QQ‘*/create table im (id int(3) not null,name varchar(25) not null default ‘QQ‘); /*插入資料,不傳name欄位的值,MySQL會為其設定預設值的您啟動並執行 SQL 陳述式已經成功運行了。*/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*/

 

如果一個欄位中沒有指定DEFAULT修飾符,MySQL會依據這個欄位是NULL還是NOT NULL自動化佈建預設值。如果指定欄位可以為NULL,則MySQL為其設定預設值為NULL。如果是NOT NULL欄位,MySQL對於數實值型別插入0,字串類型插入Null 字元串,時間戳記類型插入當前日期和時間,ENUM類型插入枚舉組的第一條。

AUTO_INCREMENT 修飾符:

AUTO_INCREMENT修飾符只適用於INT欄位,表明MySQL應該自動為該欄位產生一個數(每次在上一次產生的數值上面加1)。對於主鍵(稍候介紹),這是非常有用的。因為其允許開發人員使用MySQL為每條記錄建立唯一的標識符。

 

  
123456789101112131415161718192021222324252627282930 /*您啟動並執行 SQL 陳述式已經成功運行了。 ( 查詢花費 0.0170 秒 )*/CREATE TABLE items(id int( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,label varchar( 255 ) NOT NULL); /*插入三條資料,不指定id,採用預設值,加上AUTO_INCREMENT您啟動並執行 SQL 陳述式已經成功運行了。*/insert into items(label) values (‘xxx‘); insert into items(label) values (‘yyy‘); insert into items(label) values (‘zzz‘); /*全顯示出來,看一下資料,注意看id的變化*/ select * from items; /* id label 1 xxx 2 yyy 3 zzz*/

 

MySQL表中只能有一個AUTO_INCREMENT欄位,而且這個欄位必須被定義為鍵。除了欄位的約束,MySQL也允許表級的約束,比如主鍵和外鍵、索引和惟一約束。這些約束置於CREATE TABLE命令的欄位定義的後面。稍候為您介紹。敬請期待。

mysql簡單建表

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.