您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關使用Oracle怎么創建多表查詢中間表,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
ORACLE 多表查詢中間表的創建
表與表之間關系的分類:
1. 一對一(了解):
* 如:人和身份證
* 分析:一個人只有一個身份證,一個身份證只能對應一個人
2. 一對多(多對一):
* 如:部門和員工
* 分析:一個部門有多個員工,一個員工只能對應一個部門
3. 多對多:
* 如:學生和課程
* 分析:一個學生可以選擇很多門課程,一個課程也可以被很多學生選擇
具體的實現方式:
1. 一對多(多對一):
* 如:部門和員工
* 實現方式:在多的一方建立外鍵,指向一的一方的主鍵。
2. 多對多(重點):
* 如:學生和課程
* 實現方式:多對多關系實現需要借助第三張中間表。中間表至少包含兩個字段,這兩個字段作為第三張表的外鍵,分別指向兩張表的主鍵
3. 一對一(了解):
* 如:人和身份證
* 實現方式:一對一關系實現,可以在任意一方添加唯一外鍵指向另一方的主鍵。
詳細并且典型的實例如下
用戶表 USER
CREATE TABLE USER( id VARCHAR(32) PRIMARY KEY, email VARCHAR(50) UNIQUE NOT NULL, username VARCHAR(50), PASSWORD VARCHAR(50) ) INSERT INTO USER(id,email,username,PASSWORD)VALUE('1','111','小明','11111') INSERT INTO USER(id,email,username,PASSWORD)VALUE('2','222','小紅','22222') INSERT INTO USER(id,email,username,PASSWORD)VALUE('3','333','小張','33333')
查詢到的結果為
角色表 ROLE
CREATE TABLE role( id VARCHAR(32) PRIMARY KEY, roleName VARCHAR(50) , roleDesc VARCHAR(50) ) INSERT INTO role(id,roleName,roleDesc)VALUE('1','工程師','111') INSERT INTO role(id,roleName,roleDesc)VALUE('2','醫生','222') INSERT INTO role(id,roleName,roleDesc)VALUE('3','教師','333')
查詢到的結果為
中間表
CREATE TABLE users_role( userId VARCHAR(32), roleId VARCHAR(32), PRIMARY KEY(userId,roleId), FOREIGN KEY (userId) REFERENCES users(id), FOREIGN KEY (roleId) REFERENCES role(id) ) INSERT INTO users_role(userId,roleId )VALUE('1','2') INSERT INTO users_role(userId,roleId )VALUE('2','2') INSERT INTO users_role(userId,roleId )VALUE('3','3')
查詢到的結果為
關聯中間表進行查詢
重點特別要注意此SQL的寫法
查詢的結果會以中間表的id為基準(一定要理解)
--查詢的結果會以中間表的id為基準 SELECT * FROM users a ,role b, users_role c WHERE a.id=c.userid AND b.id=c.roleid
查詢到的結果為:
關于使用Oracle怎么創建多表查詢中間表就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。