天天看點

mysql簡單建表

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),因為這是“龜定”。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

/*

建立好友表,其中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 friends

VALUES (

NULL , 'simaopig', 'simaopig'

但是在自增列和TIMESTAMP字段中,這個規則并不适用。向這些字段中插入NULL值将會導緻插入下一個自動增加的值或者目前的時間戳。

DEFAULT 修飾符:

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

18

19

20

21

22

23

建立im表,将name字段設定為預設值'QQ'

create table im (

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,字元串類型插入空字元串,時間戳類型插入目前日期和時間,ENUM類型插入枚舉組的第一條。

AUTO_INCREMENT 修飾符:

AUTO_INCREMENT修飾符隻适用于INT字段,表明MySQL應該自動為該字段生成一個數(每次在上一次生成的數值上面加1)。對于主鍵(稍候介紹),這是非常有用的。因為其允許開發者使用MySQL為每條記錄建立唯一的辨別符。

24

25

26

27

28

29

30

您運作的 SQL 語句已經成功運作了。 ( 查詢花費 0.0170 秒 )

CREATE TABLE items(

id int( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,

label varchar( 255 ) NOT NULL

插入三條資料,不指定id,采用預設值,加上AUTO_INCREMENT

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指令的字段定義的後面。稍候為您介紹。敬請期待。