国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

mysql中null,not null,default,auto_increment詳解

2024-07-24 12:37:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在mysql中null,not null,default,auto_increment幾個(gè)是我們常用的內(nèi)容,下面我來(lái)詳細(xì)但要msyql中null,not null,default,auto_increment的用法.

NULL 和 NOT NULL 修飾符:

可以在每個(gè)字段后面都加上這NULL 或 NOT NULL 修飾符來(lái)指定該字段是否可以為空(NULL),還是說(shuō)必須填上數(shù)據(jù)(NOT NULL),MySQL默認(rèn)情況下指定字段為NULL修飾符,如果一個(gè)字段指定為NOT NULL,MySQL則不允許向該字段插入空值(這里面說(shuō)的空值都為NULL),因?yàn)檫@是"龜定",代碼如下:

  1. /* 
  2. 創(chuàng)建好友表,其中id ,name ,pass都不能為空 
  3. */ 
  4. create table friends ( 
  5. id int(3) not null
  6. name varchar(8) not null
  7. pass varchar(20) not null 
  8. ); 
  9. /* 

錯(cuò)誤提示,id列不能為空,代碼如下:

  1. #1048 - Column 'id' cannot be null 
  2. */ 
  3. INSERT INTO friends 
  4. VALUES ( 
  5. NULL , 'simaopig''simaopig' 
  6. ); 

但是在自增列和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)值,代碼如下:

  1. /* 
  2. 創(chuàng)建im表,將name字段設(shè)置為默認(rèn)值'QQ' 
  3. */ 
  4. create table im ( 
  5. id int(3) not null
  6. name varchar(25) not null default 'QQ' 
  7. ); 
  8. /* 

插入數(shù)據(jù),不傳name字段的值,MySQL會(huì)為其設(shè)置默認(rèn)值的,您運(yùn)行的 SQL 語(yǔ)句已經(jīng)成功運(yùn)行了,代碼如下:

  1. */ 
  2. INSERT INTO im( id, name ) VALUES ( 2, 'MSN' ) ; 
  3. INSERT INTO im( id ) VALUES ( 3 ) ; 
  4. SELECT * FROM im LIMIT 0 , 30; 
  5. /* 
  6. id name 
  7. 2 MSN 
  8. 3 QQ 
  9. */ 

如果一個(gè)字段中沒(méi)有指定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í)符,代碼如下:

  1. /* 
  2. 您運(yùn)行的 SQL 語(yǔ)句已經(jīng)成功運(yùn)行了。 ( 查詢花費(fèi) 0.0170 秒 ) 
  3. */ 
  4. CREATE TABLE items( 
  5. id int( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
  6. label varchar( 255 ) NOT NULL 
  7. ); 
  8. /* 
  9. 插入三條數(shù)據(jù),不指定id,采用默認(rèn)值,加上AUTO_INCREMENT 
  10. 您運(yùn)行的 SQL 語(yǔ)句已經(jīng)成功運(yùn)行了。 
  11. */ 
  12. insert into items(label) values ('xxx'); 
  13. insert into items(label) values ('yyy'); 
  14. insert into items(label) values ('zzz'); 
  15. /* 
  16. 全顯示出來(lái),看一下數(shù)據(jù),注意看id的變化Vevb.com
  17. */ 
  18. select * from items; 
  19. /* 
  20. id label 
  21. 1 xxx 
  22. 2 yyy 
  23. 3 zzz 
  24. */ 

MySQL表中只能有一個(gè)AUTO_INCREMENT字段,而且這個(gè)字段必須被定義為鍵,除了字段的約束,MySQL也允許表級(jí)的約束,比如主鍵和外鍵、索引和惟一約束.

命令:create table <表名> ( <字段名1> <類型1> [,..<字段名n> <類型n>]);

例如,建立一個(gè)名為MyClass的表,字段名 數(shù)字類型 數(shù)據(jù)寬度 是否為空 是否主鍵 自動(dòng)增加 默認(rèn)值,代碼如下:

  1. id int 4 否 primary key auto_increment    
  2. name char 20 否        
  3. sex int 4 否     0  
  4. degree double 16 是       
  5. mysql> create table MyClass( 
  6. > id int(4) not null primary key auto_increment, 
  7. name char(20) not null
  8. > sex int(4) not null default '0'
  9. > degree double(16,2));

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 墨江| 娱乐| 寿阳县| 台州市| 锦州市| 罗山县| 南木林县| 颍上县| 泽普县| 绥中县| 和顺县| 宾阳县| 乌拉特中旗| 阜康市| 漳浦县| 武定县| 万荣县| 兴海县| 晋城| 凤台县| 三门峡市| 丹凤县| 保山市| 自贡市| 开江县| 丹江口市| 岳池县| 抚顺县| 祥云县| 上栗县| 平安县| 五河县| 酉阳| 蒙山县| 仁寿县| 舟曲县| 台南市| 贡山| 元阳县| 德化县| 舟山市|