国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 拜泉县| 深水埗区| 新宾| 个旧市| 黄浦区| 平安县| 揭东县| 沛县| 盖州市| 福清市| 阿坝| 新郑市| 定南县| 双峰县| 婺源县| 龙井市| 大足县| 临颍县| 南皮县| 锦屏县| 许昌县| 阜康市| 崇义县| 湘潭市| 赤峰市| 长汀县| 平江县| 通江县| 名山县| 米易县| 金秀| 北安市| 林西县| 兴山县| 濉溪县| 中宁县| 连城县| 连城县| 泰来县| 霍州市| 昂仁县|