主鍵
顧名思義,主要的鍵,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、自增長在修改的時候,值可以較大,但是不能比當前已有的自增長字段的值小。
