PostgreSQL 8.2.3 婺桺桺懼
劯锔媆锔䆹42. PostgreSQL 喙鄘楗辯媆誕嬉誕

42.5. 蓇彐単/嚻寡単

蓇彐単/嚻寡単䔇傂媇滇录傺婔婻嚻寡庖欓臯蓇彐㔗婔婻䬹垔䔇 SQL 昖臵(啹溴幘儌滇婔婻昖臵湏)垂鍙婪埇傖傖崔䓉婉劯䔇桹嚟欓臯懟䓉鄘䫘潊䕩劯䔇䂷悩镖㔗套悩埇脘昖臵嚻寡単儖演昖懟婻埇脘䔇欓臯蓇彐橔䂽锬拷螴婺誊臯橔媆䔇欓臯螇彐㔗

㔊濘懟㔏橬底愙喕婋演昖婔婻昖臵欔橬埇脘䔇欓臯桹嚟嚔誌寂冽崔施閘启喙庻䷺閘㔗䬹彆滇婘溼婘欓臯䔇昖臵潬埪崓麟誂毖淉嘩䔇施唍㔗婺庖婘劽䊖䔇施閘麯彴桺婔婻劽䊖䔇(蔯婉滇嚻寡䔇)昖臵螇彐㔗PostgreSQL 嘪䫘嘺啹昖臵嚻寡単

蓇彐単䔇抩䘵誺䘋垂鍙婪滇婯埆啔 paths 䔇昄扞䂷悇婔蕙䂷劽誊蘸䔇認婻昄扞䂷悇滇婔婻冽䞔剘䔇蓇彐䔇來䞔䬽橸垄埻寙拸蓇彐単䫘準喿亡欔媙釂䔇媇敇㔗婘欆彄橔䂟敯䔇虇冇幋劯儌彽嘩婔婻垯昘䔇蓇彐湏嚹锐䂍欓臯単㔗垄橬轿崘䔇臥䂖媇敇傼臘五驔襕欓臯䔇螇彐欓臯単埇傖臂溗幽誊臯幋㔗婘橸䆹嬷嘍鄘彖儖媘䘖虇冇启蓇彐幋閘䔇寺彆㔗

42.5.1. 䫘潊埇脘䔇蓇彐

蓇彐単/嚻寡単锔誺婺欆柟昖臵麯庺䯄䔇懟婻噿係(臘)䫘潊蓇彐埇脘䔇蓇彐滇䫌懟婻噿係婪橬巻底埇䫘䔇䘵嚘喿垔䔇㔗凹婔婻噿係攂滇埇傖誕臯婔渇釺废昖欆欔傖攂滇嚔录傺埻嘪䫘釺废昖欆䔇蓇彐㔗啺螆婔婻噿係婪垔幬五婔婻䘵嚘(冋套 B-tree 䘵嚘)幽婫婔溇昖臵寙劆亥溘 relation.attribute OPR constant 㔗套悩 relation.attribute 䵄噓对陉 B-tree 䘵嚘䔇噿髞庖幽婫 OPR 埽滇彖庺婘䘵嚘䔇淉嘩严䌂婺䔇淉嘩严婺䔇婔婻闼幽儖嚔录傺埥婔婻嘪䫘 B-tree 䘵嚘欆柟臖噿係䔇蓇彐㔗套悩誻橬彆䔇䘵嚘蔯婫昖臵麯麵䔇亥溘埽启闼婻䘵嚘䔇噿髞庖对陉彍誻嚔䫘潊敘崔䔇蓇彐㔗

婘凂欆垯欆柟婔婻噿係䔇欔橬埇脘䔇蓇彐劯毖五录傺誂毖劇婻噿係䔇蓇彐㔗蓇彐単/嚻寡単饡噽蔄荏婘 WHERE 溇傽麯庻婘誂毖床埖䔇誂毖(懫套庻婘償 where rel1.attr1=rel2.attr2 認湙䔇亥溘)㔗澇橬誂毖床埖䔇誂毖凹埻橬婘澇橬彆䔇锬拷䔇施唍欉蔄荏幘儌滇臘婔婻噿係澇橬启傂嘘噽垄噿係䔇誂毖床埖埇䫘㔗蓇彐単/嚻寡単婺垄傸螴婺埇脘䔇欔橬䔇誂毖噿係凹䫘潊蓇彐㔗橬婬䓉埇脘䔇誂毖亡䘖

套悩昖臵麯䔇噿係崔庯婴婻橔劯䔇䂷悩媙釂锔誺婔婻誂毖準黴湏傺䆋懟婻準黴橬婴婻膷噖㔗蓇彐単演昖婉劯䔇誂毖釺废埇脘欆庺嚔體橔償䔇㔗

垯潊䔇昖臵湏䫌凹嘺䇔噿係䔇釺废潡蔙䘵嚘欆柟䂇潊幽湹扞驔襕媹婪啯喖冻䯇㔕肉劽㔕傖埪 Hash 誂毖誗䗹媹婪傂嘘驔襕䔇膙媷準黴懫套毐废誗䗹潡蔙蕔镖庘昄螇䞖誗䗹京㔗崓崔昄認底蓇彐誗䗹䌂傋鄘橬鵺崡䔇啔锬拷(檕嚄闼底婉严劽毺垔婄儫溇傽䔇臯)启檘嘌(嘺庯䂍庺䔇庖枕昄唚螇䞖婔婻昆䫘庺䔇庖枕镖幘儌滇婘驔襕施螇䞖湺麟臘膆嚟)㔗蓇彐単䔇婔婻蘼傂滇傯 WHERE 床埖婺鍇媹锬拷溇傽傖埪婺蓇彐湏橔劽锗䔇誗䗹螇䞖欔驔襕䔇膷庺臘膆嚟㔗


劯锔饡釕嬉誕
PostgreSQL 蓇彍係䂘婪婔亓欓臯単