- 1,外鍵約束
- 以創(chuàng)建一個(gè)dog表為例晾虑,其中有個(gè)字段為owner千诬, 同已經(jīng)創(chuàng)建的person表進(jìn)行約束,約束語(yǔ)句如下:(最后一句為約束語(yǔ)句)
- 也可以通過(guò)navicat進(jìn)行生成該語(yǔ)句進(jìn)行使用
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")
)
- 2蚪黑,表的連接:
- 需要聯(lián)合多張表才能查到自己想要的數(shù)據(jù)盅惜,下面看一下為什么要連接表:
- 如下有具體菜和菜系兩張表:
- 如果想要從具體菜中找出所有屬于“魯菜”的菜,不使用連接表的時(shí)候需要在表一種找到魯菜具體的 food_type_id等于多少忌穿,然后才可以進(jìn)行真正的查到魯菜抒寂,寫法如下:
select * from t_food where food_type_id = 3;
- 但是在連接表之后可以不用查看表一,直接這樣寫
-- 1掠剑,嵌套查詢屈芜,嚴(yán)格意義上來(lái)說(shuō),嵌套查詢不屬于表連接
select * from t_food where food_type_id = (SELECT id from t_food_type WHERE name = '魯菜');
-- 2朴译,表連接(起別名然后進(jìn)行調(diào)用對(duì)應(yīng)的屬性)
SELECT *FROM t_food food, t_food_type type where
type.name = '魯菜'
AND
food.food_type_id = type.id;
-- 3井佑,表連接,展示特定的屬性,其實(shí)還是起別名
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;
注意嵌套查詢也是一種不錯(cuò)的選擇眠寿,但是如果查詢的內(nèi)容不僅僅是一張表里的內(nèi)容躬翁,那么肯定需要用連接