詳解MySQL中default的使用

2022-09-25 13:15:20 字數 2329 閱讀 1601

null 和 not null 修飾符、default 修飾符,auto_increment 修飾符。

null 和 not null 修飾符

可以在每個字段後面都加上這 null 或 not null 修飾符來指定該欄位是否可以為空(null),

還是說必須填上資料 (not null)。mysql 預設情況下指定欄位為 null 修飾符,如果乙個字段指定為not null,

mysql 則不允許向該字段插入空值(這ppmnf裡面說的空值都為 null),因為這是 「規定」。

/* 建立好友表,其中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 會自動為您設定上該字段的預設值。

/* 建立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,字串型別插入空字串,

時間戳型別插入當前日期和時間,enum 型別插入列舉組的第一條。

awww.cppcns.comuto_increment 修飾符

auto_increment 修飾符只適用於 int 字段,表明 mysql 應該自動為該字段生成乙個數

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

因為其允許開發者使用 mysql 為每條記錄建立唯一的識別符號www.cppcns.com。

/* 您執行www.cppcns.com的 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 ('***');

insert into items(label) values ('yyy');

insert into items(label) values ('zzz');

/* 全顯示出來,看一下資料,注意看id的變化

*/ select * from items;

/* id label

1 ***

2 yyy

3 zzz

*/mysql 表中只能有乙個 auto_increment 字段,而且這個字段必須被定義為鍵。

除了欄位的約束,mysql 也允許表級的約束,比如主鍵和外來鍵、索引和惟一約束。

總結本文標題: 詳解mysql中default的使用

本文位址:

default怎麼修飾介面中的方法詳解

在實現handlerinterceptor介面時,我發現不實現handlerinterceptor介面的方法也不會報錯 仔細想來,還是我對介面的理解不清晰。開啟原始碼發現handlerinterceptor介面中的方法都是default 在以前的介面編寫中,我總是省略許可權修飾符,因為在介面中的方法...

mysql表中設定了default不起作用

參考部落格 博主 享受程式設計 博主 sdxushuxun 我平時在設定 時,例如設定成績預設值為0,但我傳入資料發現資料仍然為null 很是不理解 經過參考查詢得出一些小經驗,記錄一下 1 插入表中資料時,傳遞的引數為null或者 都不可以,他們會直接存入資料表中 2 方便的設定預設值是 在對應的...

關於switch中的default

注意,default語句不是必須放在case語句的結尾處出現。例子程式 int i 9 switch i 輸出 default,zero switch的執行是按照從小到大的順序執行的,最後執行default語句,如果default後面帶有break,那麼程式就會正常跳出switch,否則,程式會繼續...