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

首頁 > 數據庫 > MySQL > 正文

MySQL中的主鍵以及設置其自增的用法教程

2024-07-24 13:08:14
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了MySQL中的主鍵以及設置其自增的用法教程,是MySQL入門學習中的基礎知識,需要的朋友可以參考下

1、聲明主鍵的方法:

您可以在創建表的時候就為表加上主鍵,如:

CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name));

也可以更新表結構時為表加上主鍵,如:

 

 
  1. ALTER TABLE tbl_name ADD PRIMARY KEY (index_col_name,…); 
  2. /* 
  3. 創建一個qq表,將qq_id設為主鍵,且沒有對其進行NOT NULl約束 
  4. */ 
  5. create table qq( 
  6. qq_id int(10), 
  7. nick_name varchar(255) not null
  8. primary key (qq_id)) 
  9. /* 
  10. 插入一條數據,將qq號設為10000(咱也幻想一下),昵稱設為"simaopig" 
  11. */ 
  12. INSERT INTO qq( qq_id, nick_name ) 
  13. VALUES ( 
  14. '10000''simaopig'); 

主鍵被認為是NOT NULL和UNIQUE約束最好的結合。如果這些列沒有被明確地定義為NOT NULL,MySQL會隱含地定義這些列。

2、主鍵也是索引:

剛才已經說了,主鍵其實也是索引,甚至在MySQL的術語里面“鍵”就等于“索引”,所以“外鍵”一定要先設為“索引”。所以主鍵也應該和索引一樣,既可以作用于單獨的字段,又可以作用于多個字段。

舉個簡的例子吧,我住3單元,501室,我叫小小子,那么只有3單元501室才能在本小區表里面唯一確定我家。因為2單元,501室住著的可能也是個小小子,所以只有兩個字段才能唯一確定我,也就是說可以二者組合作為主鍵。組合的主鍵,每個列都會隱含定義NOT NULL約束,且其二者加在一起被定義了UNIQUE 惟一約束。

 

  1. /* 
  2. 創建防火墻表,將host 和port組合設為主鍵,注意我沒有將port設NOT NULL約束 
  3. */ 
  4. create table firewall( 
  5. host varchar(11) not null
  6. port smallint(4), 
  7. access enum('deny''allow') not null
  8. primary key (host,port)) 
  9. /* 
  10. 插入一條新的記錄,沒有啥問題 
  11. 1 row(s) inserted. 
  12. */ 
  13. INSERT INTO firewall ( 
  14. host , 
  15. port , 
  16. access) 
  17. VALUES ( 
  18. '202.65.3.87''21''deny'); 

3、設置主鍵自增

下面我們通過一個實例來講解設置主鍵自增的方法:

首先創建數據庫,創建表

 

 
  1. mysql> create database ssh2;  

 

 
  1. Query OK, 1 row affected (0.04 sec)  

 

 
  1. mysql> use ssh2;  

 

 
  1. Database changed  

 

 
  1. mysql> create table user(  
  2. -> id integer primary key,  
  3. -> firstname varchar(200) not null,  
  4. -> lastname varchar(200) not null,  
  5. -> age integer 
  6. -> );  

 

 
  1. Query OK, 0 rows affected (0.46 sec)  

給主鍵增加一個自增的功能:

 

 
  1. mysql> alter table user modify id integer auto_increment ;  

 

 
  1. Query OK, 1 row affected (0.28 sec)  
  2. Records: 1 Duplicates: 0 Warnings: 0  

這樣,上面的user表里面的主鍵,id可以自增了。

給上面的主鍵id增加默認值和自增功能。

 

 
  1. mysql> alter table user modify id integer auto_increment ;  

 

 
  1. Query OK, 0 rows affected (0.39 sec)  
  2. Records: 0 Duplicates: 0 Warnings: 0  

 

 
  1. mysql> alter table user modify id integer default '1';  

 

 
  1. Query OK, 0 rows affected (0.16 sec)  
  2. Records: 0 Duplicates: 0 Warnings: 0  

 

 
  1. mysql> alter table user modify id integer auto_increment ;  

 

 
  1. Query OK, 1 row affected (0.28 sec)  
  2. Records: 1 Duplicates: 0 Warnings: 0  

MySql獲取系統時間:

 

 
  1. mysql> alter table user add createtime timestamp default current_timestamp;  

 

 
  1. Query OK, 2 rows affected (0.17 sec)  
  2. Records: 2 Duplicates: 0 Warnings: 0  

MySql設置主鍵不能為空,還要自動增長(這里沒有設置默認值,但是默認是1,從1開始增長。),還要得到系統默認日期:

 

 
  1. mysql> create table dd(  
  2. -> id int primary key not null auto_increment,  
  3. -> name varchar(20),  
  4. -> time timestamp default current_timestamp 
  5. -> );  

 

 
  1. Query OK, 0 rows affected (0.10 sec)  

 

 
  1. mysql> insert into dd(name) values ('fhihgifds'); 

 

  
  1. Query OK, 1 row affected (0.14 sec)  

 

 
  1. mysql> insert into dd(name) values ('steven');  

 

 
  1. Query OK, 1 row affected (0.08 sec)  

 

 
  1. mysql> select * from dd;  

 

 
  1. +----+-----------+---------------------+  
  2. | id | name | time |  
  3. +----+-----------+---------------------+  
  4. | 1 | fhihgifds | 2011-03-27 01:58:46 |  
  5. | 2 | steven | 2011-03-27 01:59:35 |  
  6. +----+-----------+---------------------+  
  7. 2 rows in set (0.08 sec)  

 

 
  1. mysql> insert into dd(name) values ('anthony');  

 

 
  1. Query OK, 1 row affected (0.09 sec)  

 

 
  1. mysql> select * from dd;  

 

 
  1. +----+-----------+---------------------+  
  2. | id | name | time |  
  3. +----+-----------+---------------------+  
  4. | 1 | fhihgifds | 2011-03-27 01:58:46 |  
  5. | 2 | steven | 2011-03-27 01:59:35 |  
  6. | 3 | anthony | 2011-03-27 02:00:07 |  
  7. +----+-----------+---------------------+  
  8. 3 rows in set (0.00 sec)  


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 琼海市| 德安县| 梧州市| 安国市| 安吉县| 抚宁县| 古丈县| 恭城| 高阳县| 扬中市| 常山县| 成安县| 斗六市| 尼勒克县| 甘孜县| 道孚县| 南京市| 同德县| 洛阳市| 江城| 滨州市| 车致| 义马市| 自治县| 新巴尔虎左旗| 乐昌市| 巴南区| 随州市| 巴林右旗| 临高县| 鄢陵县| 香河县| 稷山县| 陆川县| 靖安县| 丹巴县| 县级市| 同德县| 陆良县| 舟曲县| 民乐县|