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,否則,程式會繼續...