鍍金池/ 問答/Java  數(shù)據(jù)庫/ 關(guān)于mysql,多表查詢的疑問,之前只會單表,如下圖

關(guān)于mysql,多表查詢的疑問,之前只會單表,如下圖

問題

通常是選擇什么聯(lián)接,還有外鍵通常起的是什么作用
clipboard.png

clipboard.png

實際

我要創(chuàng)建一個分類表,和一個文章表,想在文章里有一個分類id,要搞個外鍵嗎,還是像上面哪樣內(nèi)外連接

let category =
    `create table if not exists category(
        id INT NOT NULL AUTO_INCREMENT,
        categoryName varchar(100) not null,
        PRIMARY KEY (id)
    );`
let article =
    `create table if not exists article(
        id INT NOT NULL AUTO_INCREMENT,
        articleName varchar(100) not null,
        c_id INT NOT NULL,
        PRIMARY KEY (id)
    );`

clipboard.png

回答
編輯回答
孤巷
  1. join用于查詢,foreign key用于表結(jié)構(gòu),作用完全不同。
  2. 用或不用外鍵,各有好處,你可以自己選擇,簡單的說用外鍵可以更好的保持數(shù)據(jù)一致性,但損失了靈活性。
  3. join的幾種類型在數(shù)據(jù)庫理論上的書上都有,借花獻佛給一張圖:

clipboard.png

2017年2月23日 20:45