日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 字段约束 null, not null, default, auto_increment

發(fā)布時(shí)間:2023/12/15 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 字段约束 null, not null, default, auto_increment 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載自:http://www.xiaoxiaozi.com/2009/07/09/1111/

沒有規(guī)矩,不成方圓,任何事物都是如此。

在 MySQL 中,每個(gè)字段定義都包含附加約束或者修飾符,這些可以用來增加對(duì)所輸入數(shù)據(jù)的約束。

今天我們就來看一下 MySQL 的字段約束:

NULL 和 NOT NULL 修飾符、DEFAULT 修飾符,AUTO_INCREMENT 修飾符。

NULL 和 NOT NULL 修飾符

可以在每個(gè)字段后面都加上這 NULL 或 NOT NULL 修飾符來指定該字段是否可以為空(NULL),

還是說必須填上數(shù)據(jù) (NOT NULL)。MySQL 默認(rèn)情況下指定字段為 NULL 修飾符,如果一個(gè)字段指定為NOT NULL,

MySQL 則不允許向該字段插入空值(這里面說的空值都為 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 語句已經(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è)字段中沒有指定 DEFAULT 修飾符,MySQL 會(huì)依據(jù)這個(gè)字段是 NULL 還是 NOT NULL 自動(dòng)設(shè)置默認(rèn)值。
如果指定字段可以為 NULL,則 MySQL 為其設(shè)置默認(rèn)值為 NULL。

如果是 NOT NULL 字段,MySQL 對(duì)于數(shù)值類型插入 0,字符串類型插入空字符串,

時(shí)間戳類型插入當(dāng)前日期和時(shí)間,ENUM 類型插入枚舉組的第一條。

AUTO_INCREMENT 修飾符

AUTO_INCREMENT 修飾符只適用于 INT 字段,表明 MySQL 應(yīng)該自動(dòng)為該字段生成一個(gè)數(shù)

(每次在上一次生成的數(shù)值上面加 1)。對(duì)于主鍵(稍候介紹),這是非常有用的。

因?yàn)槠湓试S開發(fā)者使用 MySQL 為每條記錄創(chuàng)建唯一的標(biāo)識(shí)符。

/*
您運(yùn)行的 SQL 語句已經(jīng)成功運(yù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 語句已經(jīng)成功運(yùn)行了。
*/
insert into items(label) values (‘xxx’);
insert into items(label) values (‘yyy’);
insert into items(label) values (‘zzz’);

/*
全顯示出來,看一下數(shù)據(jù),注意看id的變化
*/
select * from items;

/*
id label
1 xxx
2 yyy
3 zzz
*/
MySQL 表中只能有一個(gè) AUTO_INCREMENT 字段,而且這個(gè)字段必須被定義為鍵。

除了字段的約束,MySQL 也允許表級(jí)的約束,比如主鍵和外鍵、索引和惟一約束。

這些約束置于 CREATE TABLE 命令的字段定義的后面。稍候?yàn)槟榻B。敬請(qǐng)期待。

總結(jié)

以上是生活随笔為你收集整理的MySQL 字段约束 null, not null, default, auto_increment的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。