⑴ 資料庫表與表之間的關系
表與表之間一般存在三種關系,即一對一,一對多,多對多關系。
例如:一個人可以擁有多輛汽車,要求查詢某個人擁有的所有車輛。
分析:這種情況其實也可以採用 一張表,但因為一個人可以擁有多輛汽車,如果採用一張表,會造成冗餘信息過多。好的設計方式是,人和車輛分別單獨建表,那麼如何將兩個表關聯呢?有個巧妙的方法,在車輛的表中加個外鍵欄位(人的編號)即可。
例如:學生選課,一個學生可以選修多昌鄭孝門課程,每門課程可供多個學生選擇。
分析:這種方式可以按照類似一對多方式建表,但冗餘信息太多,好的方式是實體和關系分離並單獨建表,實體表為學生表和課程表,關叢孫系表為選修表,其中關系表採用聯合主鍵的方式(由學生表主鍵和課程表主鍵組成)建表。
什麼是視圖?
在 SQL 中,視圖是基於 SQL 語句的結果集的可視化的表。
第一點:
使用視圖,可以定製用戶數據,聚焦特定的數據。
解釋:
在實際過程中,公司有不同角色的工作人員,我們以銷售公司為例的話,
采購人員,可以需要一些與其有關的數據,而與他無關的數據,對他沒
有任何意義,我們可以根據這一實際情況,專門為采購人員創建一個視
圖,以後他在查詢數據時,只需select * from view_caigou 就可以啦。
第二點:使用視圖,可以簡化數據操作。
解釋:我們在使用查詢時,在很多時候我們要使用聚合函數,同時還要
顯示其它字耐稿段的信息,可能還會需要關聯到其它表,這時寫的語句可能
會很長,如果這個動作頻繁發生的話,我們可以創建視圖,這以後,我
們只需要select * from view1就可以啦~,是不是很方便呀~
第三點:使用視圖,基表中的數據就有了一定的安全性
因為視圖是虛擬的,物理上是不存在的,只是存儲了數據的集合,我們可以
將基表中重要的欄位信息,可以不通過視圖給用戶,視圖是動態的數據的集
合,數據是隨著基表的更新而更新。同時,用戶對視圖,不可以隨意的更改
和刪除,可以保證數據的安全性。
第四點:可以合並分離的數據,創建分區視圖
隨著社會的發展,公司的業務量的不斷的擴大,一個大公司,下屬都設有很
多的分公司,為了管理方便,我們需要統一表的結構,定期查看各公司業務
情況,而分別看各個公司的數據很不方便,沒有很好的可比性,如果將這些
數據合並為一個表格里,就方便多啦,這時我們就可以使用union關鍵字,
將各分公司的數據合並為一個視圖。
以上,就是我認為視圖的作用,實際上很多公司都使用視圖來查詢數據的。
內連接: 只連接匹配的行
SELECT * from gradeclass gc inner join grade g on gc.grade_id=g.Id,
左外連接: 包含左邊表的全部行(不管右邊的表中是否存在與它們匹配的行),以及右邊表中全部匹配的行
select * from grade g rigth OUTER JOIN gradeclass g on g.grade_id=gc.Id(這里的outer可以省略)
右外連接: 包含右邊表的全部行(不管左邊的表中是否存在與它們匹配的行),以及左邊表中全部匹配的行
select * from grade g rigth OUTER JOIN gradeclass g on g.grade_id=gc.Id(這里的outer可以省略)
全外連接: 包含左、右兩個表的全部行,不管另外一邊的表中是否存在與它們匹配的行。
交叉連接: 生成笛卡爾積-它不使用任何匹配或者選取條件,而是直接將一個數據源中的每個行與另一個數據源的每個行都一一匹配
⑵ Access怎麼建立數據表間的關系
1、首先,源在打開Access資料庫之後,我們創建兩個數據表作為示例。