主頁 > 知識(shí)庫 > 詳解MySQL中default的使用

詳解MySQL中default的使用

熱門標(biāo)簽:承德電腦地圖標(biāo)注 陜西400電話如何申請(qǐng) 德惠市地圖標(biāo)注 商家地圖標(biāo)注哪個(gè)好 地圖標(biāo)注賺錢真假 外呼系統(tǒng)從哪買 遵義地圖標(biāo)注app 合肥營銷外呼系統(tǒng)收費(fèi) 深圳

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í)的約束,比如主鍵和外鍵、索引和惟一約束。

總結(jié)

以上所述是小編給大家介紹的MySQL中default的使用,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • Windows 64 位 mysql 5.7以上版本包解壓中沒有data目錄和my-default.ini及服務(wù)無法啟動(dòng)的快速解決辦法(問題小結(jié))
  • Linux下MySQL5.7.18二進(jìn)制包安裝教程(無默認(rèn)配置文件my_default.cnf)
  • MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 參數(shù)
  • MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated錯(cuò)誤
  • MySQL之Field‘***’doesn’t have a default value錯(cuò)誤解決辦法
  • MYSQL無法啟動(dòng)提示: Default storage engine (InnoDB) is not available的解決方法
  • 解決Default storage engine (InnoDB) is not available導(dǎo)致mysql無法啟動(dòng)的修改辦法

標(biāo)簽:新余 貴州 揚(yáng)州 贛州 南陽 三門峽 巴中 商丘

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解MySQL中default的使用》,本文關(guān)鍵詞  詳解,MySQL,中,default,的,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解MySQL中default的使用》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解MySQL中default的使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章