sql之外鍵約束及表的鏈接

  • 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ù),下面看一下為什么要連接表:
  • 如下有具體菜和菜系兩張表:
![Snip20170109_5.png](http://upload-images.jianshu.io/upload_images/3930130-25c47e027fc04b8e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  • 如果想要從具體菜中找出所有屬于“魯菜”的菜,不使用連接表的時候需要在表一種找到魯菜具體的 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)容,那么肯定需要用連接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,823評論 18 399
  • 1. SQL 簡介 SQL 的目標 理想情況下,數(shù)據(jù)庫語言應允許用戶: 建立數(shù)據(jù)庫和關(guān)系結(jié)構(gòu) 完成基本數(shù)據(jù)管理任務...
    板藍根plank閱讀 2,540評論 0 11
  • 前言 讀《sql必知必會 第四版》隨手做的筆記,寫的比較亂,可讀性并不好,讀的是中文版,翻譯過來的感覺有點怪怪的。...
    _老徐_閱讀 773評論 0 0
  • 一、 鏡頭切換到了十年前; 利和雪同住在一個房子里; 那天我提著行李去投奔了她們。 利打開門看到提著行李站在門口的...
    喻心閱讀 955評論 2 4
  • 我,來自一個地地道道的農(nóng)村家庭,有幸通過讀大學,來到了這個城市,一個充滿誘惑卻又物語橫流的城市,一個充滿機會卻又壓...
    蘭香若君閱讀 414評論 0 1

友情鏈接更多精彩內(nèi)容