為了保證數(shù)據(jù)有效题画、合理的保存篮灼,往往把數(shù)據(jù)分散在不同表中,通過建立表與表的關(guān)系保證數(shù)據(jù)間的關(guān)聯(lián)性路操。所謂多表查詢就是一次查詢從多張表中同時(shí)取數(shù)據(jù)疾渴,加上有效過濾條件獲取所需數(shù)據(jù)。
語法
迪卡爾積效應(yīng)
所謂迪卡爾積是指參與查詢的各張表中記錄無條件相互組合屯仗,例如從二張表查詢(EMP表12條記錄搞坝,DEPT表4條記錄)數(shù)據(jù),最終會產(chǎn)生12*4條記錄祭钉。在生產(chǎn)中要使用合理的條件消除此效應(yīng)瞄沙,N張表參與查詢至少要N-1個(gè)過濾條件。
消除迪卡爾積效應(yīng)
在建表應(yīng)該設(shè)計(jì)好表與表之間的關(guān)系并指定好關(guān)聯(lián)的字段慌核,以便后續(xù)的查詢距境。EMP表中deptno列與DEPT表的deptno相對應(yīng),在同時(shí)查詢這二張表時(shí)垮卓,就好使用它們消除迪卡爾積效應(yīng)垫桂。
例:查詢員工信息和他所在的部門名稱
我們只增加了一個(gè)過濾條件就迪卡爾積效應(yīng),準(zhǔn)確查詢出了員工所在的部門信息粟按,查詢出來的記錄也不再是12*4行了诬滩。
再看個(gè)三張表的多表查詢
例:查詢員工的基本信息霹粥、部門名稱、工資等級
綜合練習(xí)
查詢除20部門以外疼鸟、且工資等級大于2級的員工信息和部門名稱
思考
查詢員工的基本信息和他的直接上級領(lǐng)導(dǎo)姓名后控。(提示:MGR列是員工上級領(lǐng)導(dǎo)的編號)
今天就聊到這里,有問題給小傅老師留言吧:-)