MySQL數據庫8(九)列屬性之主鍵、自增長


主鍵

顧名思義,主要的鍵,primary key,在一張表中,有且只有一個字段,里面的值具有唯一性

創建主鍵

隨表創建

系統提供了兩種增加主鍵的方式:

1、直接在需要當做主鍵的字段之后,增加primary key屬性來確定主鍵

2、在所有字段之后增加primary key選項:primary key(字段信息)

 

 

表后增加

基本語法:alter table 表名 add primary key(字段);

 

 

查看主鍵

方案1: 查看表結構

 

 

方案2:查看表的創建語句

 

 

刪除主鍵

基本語法:alter table 表名 drop primary key;

 

復合主鍵

 

 

主鍵約束

主鍵一旦增加,那么對對應的字段數據有要求:

1、當前字段對應的數據不能為空。

2、當前字段對應的數據不能有任何重復

 

主鍵分類

主鍵分類采用的是主鍵所對應的字段的業務意義分類:

業務主鍵:主鍵所在的字段,具有業務意義(學生ID,課程ID)

邏輯主鍵:自然增長的整型(應用廣泛)

 

自增長

自動增長:auto increment,當給定某個字段的屬性之后,該列的數據在沒有提供確定數據的時候,系統會根據之前已經存在的數據進行自動增加后,填充數據

 

通常自動增長用於邏輯主鍵

原理

自動增長的原理:

1、在系統中有維護一組數據,用來保存當前使用了自動增長屬性的字段,記住當前對應的數據值,在給定一個指定的步長。

2、當用戶進行數據插入的時候,如果沒有給定值,系統在原始值上加上步長變成新的數據

3、自動增長的觸發:給定屬性的字段沒有提供值

4、自動增長只適用於數值

 

使用自動增長

基本語法:在字段之后增加一個屬性 auto_increment;

 

 

插入數據:觸發自動增長,不能給定具體值(可以給null)

 

 

修改自動增長

1、查看自增長:自增長一旦觸發使用后,會自動地在表選項中增加一個選項(一張表最多只能擁有一個自增長)

 

 

2、表選項可以通過修改表結構來實現

基本語法:alter table 表名 auto_increment = 值;

 

 

刪除和增加自動增長

刪除自增長:就是在字段屬性之后不再保留auto_increment,當用戶修改自增長所在字段時,如果沒有看到auto_increment屬性,系統會自動清除該自增長。

刪除自增長:alter table my_auto modify id int;

增加自增長:alter table my_auto modify id int auto_increment;

 

 

 

初始設置

在系統中,有一組變量用來維護自增長的初始值和步長

查看:show variables like ‘auto_increment%’;

 

 

修改自增長步長和初始值:

set auto_increment_increment = 值;

set auto_increment_offset = 值;

 

 

細節問題

1、一張表中只有一個自增長,:自增長會上升到表選項中。

2、如果數據插入中沒有觸發自增長(給定了數據),那么自增長不會表現,用戶指定數據之后,自增長不參與,但是自增長默默根據當前用戶設定的值初始化下一個值。

3、自增長在修改的時候,值可以較大,但是不能比當前已有的自增長字段的值小。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM