您好,登錄后才能下訂單哦!
下面一起來了解下mysql中的鍵和索引關系,相信大家看完肯定會受益匪淺,文字在精不在多,希望mysql中的鍵和索引關系這篇短內容是你想要的。
一、主鍵 索引 關系
1.主鍵:主鍵的唯一作用就是唯一標識表中的某一行數據。分為單一主鍵和聯合主鍵:
單一主鍵:只用一列就能唯一標識一行。
聯合主鍵:當使用一列已經不能唯一標示一行的時候,就要采用多列唯一標識一行,就是聯合主鍵。聯合主健多個字段不能同時相同
2.索引:索引的作用就是提高數據的檢索速度,分為單一索引和聯合索引:
單一索引:只是用某一列數據作為索引,默認是index索引,這一列可以包含重復數據;如果某一列不存在重復數據最好設置成unique形式的索引,比index的索引速度更快,在text數據上要使用fulltext索引。
聯合索引:為了更進一步提高檢索速度,每次檢索都需要用多列同時進行時,就可以把這多列設為聯合索引,提高索引速度,根據多列是否唯一,也分為index索引和unique索引。
聯合索引的使用必須注意:不能垮字段使用,比如a b c聯合索引 只有a|ab|abc 才能用上聯合索引字段。
3.主鍵一定是索引,但是索引不一定是主鍵。一個表只能有一個主鍵或聯合主鍵,但是可以有多個索引。
主鍵字段必須不能為空,但是索引字段可以為空。
二、外鍵和主健的關系
1.外鍵就是讓表中字段的值在參照表中的字段中選擇的一種約束標示
2.創建外鍵的條件
被參照字段必須是主鍵
參照字段和被參照字段必須是相同的數據類型
表的儲存引擎必須是innodb
三、語法格式
1.創建主鍵的命令格式
1.1.在創建表時創建主健 create table 表名(字段列表,primary key(需要設置成主健的字段名) auto_increment); #auto_increment 是需要將主健字段設置成自動增長的關鍵字,如果主健不是整數類型或者不需要自動增長的時候不需要該關鍵字;當需要設置聯合主鍵時,多個需要設置成主健的字段名之間用逗號隔開,而且不能使用自動增長` 或者 create table 表名(主健字段 字段類型 primary key auto_increment,字段列表);#此方法在創建聯合主健時不可用 1.2.在已經創建好的表上創建主健(如果該表中已經存在數據,且數據違反了主鍵約束,則無法創建主健,需要解決數據沖突后再創建) alter table 表名 add primary key(需要設置成主健的字段名) auto_increment;
2.創建外鍵的命令格式
2.1.在創建表時創建外鍵(滿足創建外鍵的條件下) create table 表名(字段列表,foreign key(需要創建外鍵約束的字段) references 被參照表的表名(被參照表的被參照字段) on update cascade on delete cascade)engine=innodb; 如果外鍵需要具有唯一標示的時候還可以在外鍵上加上主健約束 2.2.在已經存在的表中創建外鍵 alter table 表名 add foreign key(字段名) references 參考表名(參考字段名) on update casecade on delete cascade) engine=innodb;
3.創建索引的命令格式
3.1.創建表的時候創建索引(索引可以有多個,在以下示例中添加的是兩個) create table 表名(字段列表,index(已經存在字段名),index(已經存在的字段名));#如果是聯合索引的多個已經存在字段名用,隔開,記住不能跨字段設置聯合索引 默認的索引名和字段名相同 3.2.把已經存在的表中的字段設置為索引字段 create index 索引名稱 on 表名(字段名) 索引名可以自己命名 一般使用字段名作為索引名
4.創建唯一索引的命令格式和普通索引的格式相似只需要保證字段記錄的唯一性就可以使用unique關鍵字
看完mysql中的鍵和索引關系這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業信息,可以關注我們的行業資訊欄目。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。