主鍵 唯一鍵 外來鍵 以及 一對一查詢,一對多查詢

2022-03-22 12:44:49 字數 2295 閱讀 4880

1: 什麼叫鍵

資料庫中的鍵(key)又稱為關鍵字,是關係模型中的乙個重要概念,它是邏輯結構,不是資料庫的物理部分。

2:唯一鍵

唯一鍵,即乙個或者一組列,其中沒有重複的記錄。可以唯一標示一條記錄。

3:主鍵

屬於唯一鍵,是乙個比較特殊的唯一鍵。區別在於主鍵不可為空。

4:外來鍵

一張表外來鍵的值一般來說是另一張表主鍵的值。因此,外來鍵的存在使得表與表之間可以聯絡起來

第一種方式:

reate table yhy (id int not null primary key ,name varchar(250) unique key, age int);

第二種方式:這裡同時也給大家演示了如何將多個字段合併起來建立乙個鍵

create table yhy (id int, name varchar(250), age int, primary key(id), unique key(name, age));

先搞清楚幾個概念,如果概念不搞清楚,請先不要動手

(1)給一張表建立外來鍵的時候,必須要保證外來鍵的值已經存在了。也就是說,一張表如果擁有外來鍵,通常將其稱為從表,而外鍵引用的那種表通常稱為主表。

(2)那麼,現在我們就搞清楚了什麼是主表,什麼是從表了。就像上圖所示,person表叫做從表,part表叫做主表。因為person表中的part_id欄位的值來自於part表中的nid欄位的值。

(3)從表面上來看,有foreign key的表就叫從表,有primary key的表就叫主表。

(4)那麼在建立表的時候,必須先建立主表,再建立從表

(5)那麼在刪除表的時候,必須先刪除從表,再刪除主表

(1)建立主表和從表

create table part (nid int, caption varchar(250), primary key(nid));

create table person (nid int, name varchar(250), email varchar(250), extra varchar(250), part_id int, foreign key(part_id) references part (nid));

(2)刪除主表和從表

drop table person;

drop table part;

思路:先建立主表,再建立從表

create table woman (id int, name varchar(250), primary key(id));

create table man (id int, name varchar(250), primary key(id));

create table man_to_woman (nid int, man_id int, woman_id int, foreign key(man_id) references man (id), foreign key(woman_id) references woman (id));

django 一對一查詢

用django 自帶orm對映查詢資料時。一對一關係可以互相查對方屬性 自己定義的supplier中user跟django.contrib.auth.models中 user是一對一關係 class supplier models.model 供貨商 user models.onetoonefiel...

Hibernate 一對一外來鍵單向關聯

事實上,單向 1 1與 n 1的實質是相同的,1 1是 n 1的特例,單向 1 1與 n 1的對映配置也非常相似。只需要將原來的 many to one 元素增加 unique true 屬性,用於表示 n的一端也必須是唯一的,在 n的一端增加了唯一的約束,即成為單向 1 1。基於外來鍵的單向 1 ...

主鍵 唯一鍵 唯一索引區別

主鍵 1.可以定義一列或多列為主鍵。不允許空 null 主健可作外健,唯一索引不可 2.定義乙個主鍵將自動建立主鍵索引,主鍵索引是唯一索引的特殊型別。唯一鍵 唯一性約束 1.唯一性約束用來限制不受主鍵約束的列上的資料的唯一性,用於作為訪問某行的可選手段,指定列上都不允許有相同的值,允許空 null ...