主鍵:
primary key妆绞,主要的鍵顺呕,一張表只能有一個(gè)字段可以使用對(duì)應(yīng)的鍵接谨,用來唯一的約束該字段里面的數(shù)據(jù),不能重復(fù)塘匣,這種稱之為主鍵
增加主鍵:
方案一:在創(chuàng)建表的時(shí)候脓豪,直接在字段之后,跟primary key關(guān)鍵字(主鍵本身不允許為空)
方案二:在創(chuàng)建表的時(shí)候忌卤,在所有的字段之后扫夜,使用primary key(主鍵字段列表)來創(chuàng)建主鍵,如果有多個(gè)字段作為主鍵驰徊,可以是復(fù)合主鍵
方案三:當(dāng)表已經(jīng)創(chuàng)建好之后笤闯,額外追加主鍵,可以通過修改表字段屬性棍厂,也可以直接追加
alter table 表名 add primary key(字段列表);
主鍵約束:
主鍵對(duì)應(yīng)的字段中的數(shù)據(jù)不允許重復(fù)颗味,一旦重復(fù),數(shù)據(jù)操作(增和改)失敗
更新主鍵 & 刪除主鍵:
alter table 表名 drop primary key;
主鍵分類:
業(yè)務(wù)主鍵
邏輯主鍵:自增長(zhǎng):
auto_increment牺弹,當(dāng)對(duì)應(yīng)的字段浦马,不給值,或給默認(rèn)值张漂、或給NULL值晶默,會(huì)自動(dòng)的被系統(tǒng)觸發(fā),系統(tǒng)會(huì)從當(dāng)前字段中已有的最大值基礎(chǔ)上航攒,再進(jìn)行+1操作磺陡,得到一個(gè)新的不同的數(shù)據(jù)
特點(diǎn):
任何一個(gè)字段要做自增長(zhǎng),前提必須本身就是一個(gè)索引
自增長(zhǎng)字段必須是數(shù)字漠畜,而且是整型
一張表最多只能有一個(gè)自增長(zhǎng)
修改自增長(zhǎng):alter table 表名 auto_increment=值;
查看自增長(zhǎng)對(duì)應(yīng)的變量:show variables like 'auto_increment%';
刪除自增長(zhǎng):alter table 表名 modify 字段 類型;
唯一鍵(unique key):
默認(rèn)允許自動(dòng)為空币他,而且可以多個(gè)為空
增加唯一鍵:
方案一:在創(chuàng)建表的時(shí)候,字段之后直接跟unique / unique key
方案二:在所有的字段之后增加unique key(字段列表)憔狞;
方案三:在創(chuàng)建表之后增加唯一鍵
更新唯一鍵:
alter table 表名 drop index 索引名字;
MySQL中提供了多種索引:
主鍵索引:primary key
唯一索引:unique key
全文索引:fulltext index
普通索引:index
創(chuàng)建:
create [unique] index 索引名 on 表名(字段名(長(zhǎng)度));
alter 表名 add [unique] index [索引名] on (字段名(長(zhǎng)度));
刪除:
drop index [索引名] on 表名;
查看:
show index from 表名\G
使用alter命令添加數(shù)據(jù)表的索引:
alter table 表名 add primary key (字段列表):添加一個(gè)主鍵蝴悉,意味著索引值必須是唯一且不為空
alter table 表名 add unique 索引名 (字段列表):創(chuàng)建索引的值必須是唯一的,允許NULL躯喇,且NULL可能會(huì)出現(xiàn)多次
alter table 表名 add fulltext 索引名 (字段列表):添加全文索引
alter table 表名 add index 索引名 (字段列表):添加普通索引辫封,索引值可出現(xiàn)多次
主鍵沖突(Duplicate key):
更新操作:insert into 表名 [(字段列表)] values(值列表) on duplicate key update 字段=新值;
替換:replace insert into 表名 [(字段列表)] values(值列表);
蠕蟲復(fù)制:
insert into 表名[(字段列表)] select 字段列表/* from 數(shù)據(jù)表名;