mysql中主鍵,索引和外建的關係

2021-08-18 12:16:33 字數 1488 閱讀 1484

1

.主鍵:主鍵的唯一作用就是唯一標識表中的某一行資料。分為單一主鍵和聯合主鍵:

單一主鍵:只用一列就能唯一標識一行。

create table user

聯合主鍵:當使用一列已經不能唯一標示一行的時候,就要採用多列唯一標識一行,就是聯合主鍵。

create table uesr(

id varchar(4) not null

name varchar(6) not null ,

email varchar(3) not null

efftflag varchar(1) not null

primary key(id ,name )

2.索引:索引的作用就是提高資料的檢索速度,分為單一索引和聯合索引:

單一索引:只是用某一列資料作為索引,預設是index索引,這一列可以包含重複資料;如果某一列不存在重複資料最好設定成unique形式的索引,比index的索引速度更快,在text資料上要使用fulltext索引。

alter table 表名 add index 索引名( 欄位名);
聯合索引:為了更進一步提高檢索速度,每次檢索都需要用多列同時進行時,就可以把這多列設為聯合索引,提高索引速度,根據多列是否唯一,也分為index索引和unique索引。

alter table 表名 add index 索引名( `欄位名` );
聯合索引的使用必須注意:不能垮字段使用,比如a b c聯合索引 只有a|ab|abc 才能用上聯合索引字段。

3.主鍵一定是索引,但是索引不一定是主鍵。乙個表只能有乙個主鍵或聯合主鍵,但是可以有多個索引。

主鍵字段必須不能為空,但是索引字段可以為空。

可以在資料庫設計器中建立三種索引:

① 唯一索引:

不允許其中任何兩行具有相同索引值的索引。

② 主鍵索引:

表的某一列或列組合,其值唯一標識表中的每一行,該列或列組合稱為表的主鍵。為表定義主鍵將自動建立主鍵索引,主鍵索引是唯一索引的特定型別。該索引要求主鍵中的每個值都唯一。

③ 聚集索引:

聚集索引:聚集索引表示表中儲存的資料按照索引的順序儲存。由於聚集索引規定資料在表中的物理儲存順序,因此乙個表只能包含乙個聚集索引。

聚集索引例項:字典預設按字母順序排序,如知道某個字的讀音可根據字母順序快速定位。

非聚集索引:非聚集索引表示資料儲存在乙個地方,索引儲存在另乙個地方,索引帶有指標指向資料的儲存位置,需要查詢兩個地方才能查詢到資料。乙個表可以包含多個非聚集索引,可以為查詢資料時常用的每個列建立乙個非聚集索引。

非聚集索引例項:如需查詢某個生僻字,則需按字典前面的索引,如按偏旁進行定位,找到該字對應的頁數,再開啟對應頁數找到該字。

主鍵和外來鍵的關係:

外來鍵是另乙個表的主鍵,主鍵是可以被外來鍵有效引用的物件。若a表中的乙個字段,是b表的主鍵,則它可以是a表的外來鍵。

主鍵,外來鍵和索引

主鍵和索引的區別 主鍵是索引,但索引不一定是主鍵。主鍵具有唯一性,而只有唯一性索引才具有唯一性 主鍵的值不能為空,不能重複。索引可以在程式中動態建立刪除。也可以是任何有序的字段.如果在乙個表中,列a b c 被設為主鍵的情況下,當需要將a,b,c 設為索引時,a,b,c被設為主鍵,資料庫自動會建立索...

oracle建表相關 包括主鍵索引和外來鍵約束

今天來聊一下oracle的建表語句,比如下面的 create table bbb info bbb id number 8 not null,aaa varchar2 8 null,bbb varchar2 8 null,ccc varchar2 8 null,ddd varchar2 8 null...

mysql的主鍵 外來鍵約束 MySQL 主鍵外來鍵

笛卡兒積 多表查詢 多個表變成乙個表 完整性約束條件 primary key 標識該屬性為該錶的主鍵,可以唯一的標識對應的元組 foreign key 標識該屬性為該錶的外來鍵,是與之聯絡的某錶的主鍵 not null 標識該屬性不能為空 unique 標識該屬性的值是唯一的 auto increm...