- 1,外鍵約束
- 以創(chuàng)建一個dog表為例,其中有個字段為owner, 同已經(jīng)創(chuàng)建的person表進行約束,約束語句如下:(最后一句為約束語句)
- 也可以通過navicat進行生成該語句進行使用
CREATE TABLE "dog" (
"name" TEXT,
"age" INTEGER,
"id" INTEGER NOT NULL,
"owner" integer,
PRIMARY KEY("id"),
CONSTRAINT "fk_dog_ref_person" FOREIGN KEY ("owner") REFERENCES "person" ("id")
)

Snip20170109_1.png
- 2,表的連接:
- 需要聯(lián)合多張表才能查到自己想要的數(shù)據(jù),下面看一下為什么要連接表:
- 如下有具體菜和菜系兩張表:


- 如果想要從具體菜中找出所有屬于“魯菜”的菜,不使用連接表的時候需要在表一種找到魯菜具體的 food_type_id等于多少,然后才可以進行真正的查到魯菜,寫法如下:
select * from t_food where food_type_id = 3;
- 但是在連接表之后可以不用查看表一,直接這樣寫
-- 1,嵌套查詢,嚴格意義上來說,嵌套查詢不屬于表連接
select * from t_food where food_type_id = (SELECT id from t_food_type WHERE name = '魯菜');
-- 2,表連接(起別名然后進行調(diào)用對應的屬性)
SELECT *FROM t_food food, t_food_type type where
type.name = '魯菜'
AND
food.food_type_id = type.id;
-- 3,表連接,展示特定的屬性,其實還是起別名
SELECT food.name foodName, type.name typeName FROM t_food food, t_food_type type where
type.name = '魯菜'
AND
food.food_type_id = type.id;
注意嵌套查詢也是一種不錯的選擇,但是如果查詢的內(nèi)容不僅僅是一張表里的內(nèi)容,那么肯定需要用連接