left join
join
主外鍵是兩種對表的約束。
例如:
學生表student(學號(id),姓名(name),性別(sex))
表內有:1,aa,女
課程表subject(課程編號(id),課程名(name))
表內有:1,語文
成績表grade(成績編號(id),學號(stu_id),課程號(sub_id),成績(grade))
表內有:1,1,1,90
成績表的學號就是學生表的學號相對應,並且為學生表的主鍵,這樣就稱成績表中的學號是學生表的外鍵,同理,成績表中的課程號是課程表的外鍵。
select * from student as s inner join subject as su on su.stu_id=s.id inner join grade as g on g.sub_id=su.id where 1.
(1)資料庫表間是如何關聯的擴展閱讀:
注意事項
SQL 連接(JOIN) 子句用於把來自兩個或多個表的行結合起來,基於這些表之間的共同欄位。連接的結果可以在邏輯上看作是由SELECT語句指定的列組成的新表。
左連接與右連接的左右指的是以兩張表中的哪一張為基準,它們都是外連接。外連接就好像是為非基準表添加了一行全為空值的萬能行,用來與基準表中找不到匹配的行進行匹配。
假設兩個沒有空值的表進行左連接,左表是基準表,左表的所有行都出現在結果中,右表則可能因為無法與基準表匹配而出現是空值的欄位。
不同的 SQL JOIN可以使用的不同的 SQL JOIN 類型:
INNER JOIN:如果表中有至少一個匹配,則返回行
LEFT JOIN:即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN:即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN:只要其中一個表中存在匹配,則返回行(MySQL不支持FULL JOIN)
例如:
mysql> select * from access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date |
+-----+---------+-------+------------+
| 1 | 1 | 45 | 2016-05-10 |
| 2 | 3 | 100 | 2016-05-13 |
| 3 | 1 | 230 | 2016-05-14 |
| 4 | 2 | 10 | 2016-05-14 |
| 5 | 5 | 205 | 2016-05-14 |
| 6 | 4 | 13 | 2016-05-15 |
| 7 | 3 | 220 | 2016-05-15 |
| 8 | 5 | 545 | 2016-05-16 |
| 9 | 3 | 201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set
㈡ SQL資料庫的表與表之間的關系怎麼連接
表與表之間是通過主外鍵鏈接的
可以通過『資料庫關系圖』進行鏈接
將要連接的表選中,然後用滑鼠拖動
列
例如
定義表Student、Course和SC之間的關系圖。
要求:先要定義好三個表的主鍵SNO、CNO、(SNO,CNO)
(1)
展開資料庫「學生管理」節點,在「資料庫關系圖」上擊右鍵,選擇「新建資料庫關系圖」命令,彈出新建資料庫關系圖向導,選擇要添加到關系圖中的表Student、Course和SC,這三個表將出現在新關系圖窗口中。每個表顯示包含的屬性和定義的主鍵,拖動標題欄可以改變它們在窗口中的位置。
(2)
將Student表的屬性SNO拖動到SC表的SNO上,松開滑鼠彈出「創建關系」窗口,設置後單擊「確定」按鈕。在Student表和SC表之間會自動出現一條連線,說明創建關系成功。同樣的方法可以創建Course表和SC表之間的關系。
(3)
單擊關閉按鈕保存。
(4)
試著修改或刪除Student、Course和SC表中的數據,看看定義關系後有何作用。
㈢ 在MYSQL資料庫里如何建立兩個表的關聯
1、首先我們打開Workbench創一個建資料庫(這里都使用閃電1執行選定命令行)。
㈣ mysql資料庫怎麼表關聯
現在的資料庫基本都是關系資料庫,表與表之間的關聯一般都是靠欄位來維持的。
例如3個表,分別是用戶信息表,購物訂單表,帳戶金額明細表
表結構如下(我寫簡單哈):
用戶信息表欄位:userid,username,password
購物訂單表欄位:orderid,userid,goods,price
帳戶金額明細表:aid,userid,orderid,price
從上面3個表就能看出,他們之間的管理是:
通過用戶信心表的userid可以獲得購物訂單表的訂單信息,如果想要獲得用戶或者購物訂單的賬戶金額明細數據,可使用userid或者orderid去帳戶金額明細表查詢相關數據,示例SQL如下:
SELECT * FROM 購物訂單表欄位 where userid=12
SELECT * FROM 帳戶金額明細表 where userid=12
SELECT * FROM 帳戶金額明細表 where orderid=3356
如果你還不明白的話,可發消息給我。
㈤ SQL資料庫裡面怎樣設置表與表之間的關聯
設置關聯的兩表或者多表、通過外鍵關聯、外鍵欄位是從表中的欄位、外鍵(foreign
key)欄位需要在主表做主鍵(primary
key)、
比如
學生表(學號
主鍵,姓名)
主表
課程表(課號
主鍵,課名)
主表
選了表(學號
外鍵,
課號
外鍵,成績)
從表
這樣三個表就關聯了、記住建表順序、先主表、再從表
然後可以使用代碼或者圖形界面管理器創建外鍵、創建完就關聯了
外鍵的取值必須是主鍵的值
㈥ 關於資料庫表與表之間的聯系!!
資料庫由若干個表構成。表與表之間通過主鍵和外鍵構成關系。主鍵和外鍵是相對的。這個表的主鍵,可能就是另一個表的外鍵。或者說,一個鍵,在這個表中是主鍵,而在另一個表中可能就是外鍵了。主鍵與外鍵只是區別於他的功能。
㈦ sql三個表之間如何關聯。
用兩個
外鍵
關聯。
比如A,B,C三表進行關聯,可以在C表中定義兩個外鍵c1、c2,分別連接到A表和B表的
主鍵
a1、b2上,這樣只要在查詢的時候進行三表
聯合查詢
,連接語句為:where
C.c1=A.a1
AND
C.c2=B.b2;
N表查詢同上的道理,添加N-1個外鍵就可以。
㈧ SQL資料庫裡面怎樣設置表與表之間的關聯
你說的關聯是指外鍵不?
SQL Server Management Studio
展開所要設置的表下面的選項,可以新建外鍵。這樣直觀,簡單。
也可以用SQL語句。
㈨ 如何分析資料庫表之間的關聯關系
如果是
父子關系,
或者
一對多
關系。
可以通過
創建外鍵的方式,
在
父表
與
子表之間,
創建一個關聯關系。
例如:
--
創建測試主表.
ID
是主鍵.
CREATE
TABLE
test_main
(
id
INT
NOT
NULL,
value
VARCHAR(10),
PRIMARY
KEY(id)
);
--
創建測試子表.
CREATE
TABLE
test_sub
(
id
INT
NOT
NULL,
main_id
INT
,
value
VARCHAR(10),
PRIMARY
KEY(id)
);
--
插入測試主表數據.
INSERT
INTO
test_main(id,
value)
VALUES
(1,
'ONE');
INSERT
INTO
test_main(id,
value)
VALUES
(2,
'TWO');
--
插入測試子表數據.
INSERT
INTO
test_sub(id,
main_id,
value)
VALUES
(1,
1,
'ONEONE');
INSERT
INTO
test_sub(id,
main_id,
value)
VALUES
(2,
2,
'TWOTWO');
SQL>
--
創建外鍵(默認選項)
SQL>
ALTER
TABLE
test_sub
ADD
CONSTRAINT
main_id_cons
FOREIGN
KEY
(main_id)
REFERENCES
test_main;
Table
altered.
SQL>
SQL>
--
測試刪除主表數據.
將出錯
ORA-02292:
違反完整約束條件
SQL>
DELETE
2
test_main
3
WHERE
4
ID
=
1;
DELETE
*
ERROR
at
line...如果是
父子關系,
或者
一對多
關系。
可以通過
創建外鍵的方式,
在
父表
與
子表之間,
創建一個關聯關系。
例如:
--
創建測試主表.
ID
是主鍵.
CREATE
TABLE
test_main
(
id
INT
NOT
NULL,
value
VARCHAR(10),
PRIMARY
KEY(id)
);
--
創建測試子表.
CREATE
TABLE
test_sub
(
id
INT
NOT
NULL,
main_id
INT
,
value
VARCHAR(10),
PRIMARY
KEY(id)
);
--
插入測試主表數據.
INSERT
INTO
test_main(id,
value)
VALUES
(1,
'ONE');
INSERT
INTO
test_main(id,
value)
VALUES
(2,
'TWO');
--
插入測試子表數據.
INSERT
INTO
test_sub(id,
main_id,
value)
VALUES
(1,
1,
'ONEONE');
INSERT
INTO
test_sub(id,
main_id,
value)
VALUES
(2,
2,
'TWOTWO');
SQL>
--
創建外鍵(默認選項)
SQL>
ALTER
TABLE
test_sub
ADD
CONSTRAINT
main_id_cons
FOREIGN
KEY
(main_id)
REFERENCES
test_main;
Table
altered.
SQL>
SQL>
--
測試刪除主表數據.
將出錯
ORA-02292:
違反完整約束條件
SQL>
DELETE
2
test_main
3
WHERE
4
ID
=
1;
DELETE
*
ERROR
at
line
1:
ORA-02292:
integrity
constraint
(HR.MAIN_ID_CONS)
violated
-
child
record
found
㈩ 資料庫中的數據表間有幾種關聯關系建立這些關聯的依據是什麼
兩種關系,一種臨時關系,一種是永久關系。
建立關聯的依據是公共欄位。
臨時關系可以用命令SET RELATION TO 關鍵字 INTO 別名
來創建
永久關系在資料庫設計器中用滑鼠拖動公共索引欄位拖到另一個表上就可以了。