数据库怎么自然连接? 数据库自然连接
\u6570\u636e\u5e93\u81ea\u7136\u8fde\u63a5\u662f\u76f8\u540c\u7684\u5c5e\u6027\u7ec4\u5373\u8981\u6c42\u5fc5\u987b\u6709\u76f8\u540c\u7684\u503c\u57df\u5373\u53ef\u81ea\u7136\u8fde\u63a5\u3002
\u81ea\u7136\u8fde\u63a5\u662f\u4e00\u79cd\u7279\u6b8a\u7684\u7b49\u503c\u8fde\u63a5\uff0c\u4ed6\u8981\u6c42\u4e24\u4e2a\u5173\u7cfb\u8868\u4e2d\u8fdb\u884c\u6bd4\u8f83\u7684\u5fc5\u987b\u662f\u76f8\u540c\u7684\u5c5e\u6027\u5217\uff0c\u65e0\u987b\u6dfb\u52a0\u8fde\u63a5\u6761\u4ef6\uff0c\u5e76\u4e14\u5728\u7ed3\u679c\u4e2d\u6d88\u9664\u91cd\u590d\u7684\u5c5e\u6027\u5217\u3002
\u5728\u8fde\u63a5\u8fd0\u7b97\u5f53\u4e2d\uff0c\u4e00\u79cd\u6700\u5e38\u7528\u7684\u8fde\u63a5\u662f\u81ea\u7136\u8fde\u63a5\u3002\u5982\u679c\u5173\u7cfbR\u4e0eS\u5177\u6709\u76f8\u540c\u7684\u5c5e\u6027\u7ec4B\uff0c\u4e14\u8be5\u5c5e\u6027\u7ec4\u7684\u503c\u76f8\u7b49\u65f6\u7684\u8fde\u63a5\u79f0\u4e3a\u81ea\u7136\u8fde\u63a5\uff0c\u7ed3\u679c\u5173\u7cfb\u7684\u5c5e\u6027\u96c6\u5408\u4e3aR\u7684\u5c5e\u6027\u5e76\u4e0aS\u51cf\u53bb\u5c5e\u6027B\u7684\u5c5e\u6027\u96c6\u5408\u3002
R\u548cS\u81ea\u7136\u8fde\u63a5\u53ef\u8bb0\u4f5c\uff1aR⋈S={t r\u2312ts |tr\u2208R\u2227ts\u2208S\u2227tr[A]=ts[B]}[3]
\u81ea\u7136\u8fde\u63a5\u4e5f\u53ef\u770b\u4f5c\u662f\u5728\u5e7f\u4e49\u7b1b\u5361\u5c14\u79efR\u00d7S\u4e2d\u9009\u51fa\u540c\u540d\u5c5e\u6027\u4e0a\u7b26\u5408\u76f8\u7b49\u6761\u4ef6\u5143\u7ec4\uff0c\u518d\u8fdb\u884c\u6295\u5f71\uff0c\u53bb\u6389\u91cd\u590d\u7684\u540c\u540d\u5c5e\u6027\uff0c\u7ec4\u6210\u65b0\u7684\u5173\u7cfb\u3002
\u81ea\u7136\u8fde\u63a5\u4e0e\u7b49\u503c\u8fde\u63a5\u7684\u533a\u522b
1. \u7b49\u503c\u8fde\u63a5\u4e2d\u4e0d\u8981\u6c42\u5c5e\u6027\u503c\u5b8c\u5168\u76f8\u540c\uff0c\u800c\u81ea\u7136\u8fde\u63a5\u8981\u6c42\u4e24\u4e2a\u5173\u7cfb\u4e2d\u8fdb\u884c\u6bd4\u8f83\u7684\u5fc5\u987b\u662f\u76f8\u540c\u7684\u5c5e\u6027\u7ec4\uff08\u5c5e\u6027\u540d\u53ef\u4ee5\u4e0d\u540c\uff09\uff0c\u5373\u8981\u6c42\u5fc5\u987b\u6709\u76f8\u540c\u7684\u503c\u57df\u3002
2. \u7b49\u503c\u8fde\u63a5\u4e0d\u5c06\u91cd\u590d\u5c5e\u6027\u53bb\u6389\uff0c\u800c\u81ea\u7136\u8fde\u63a5\u53bb\u6389\u91cd\u590d\u5c5e\u6027\uff0c\u4e5f\u53ef\u4ee5\u8bf4\uff0c\u81ea\u7136\u8fde\u63a5\u662f\u53bb\u6389\u91cd\u590d\u5217\u7684\u7b49\u503c\u8fde\u63a5\u3002
\u81ea\u7136\u8fde\u63a5\u5916\u8fde\u63a5
\u5982\u679c\u628a\u820d\u5f03\u7684\u5143\u7ec4\u4e5f\u4fdd\u5b58\u5728\u7ed3\u679c\u5173\u7cfb\u4e2d\uff0c\u800c\u5728\u5176\u4ed6\u5c5e\u6027\u4e0a\u7a7a\u503c\uff0c\u90a3\u4e48\u8fd9\u79cd\u8fde\u63a5\u5c31\u53eb\u5916\u8fde\u63a5\u3002\u5982\u679c\u53ea\u628a\u5de6\u8fb9\u5173\u7cfbR\u8981\u820d\u5f03\u7684\u5143\u7ec4\u4fdd\u7559\u5c31\u53eb\u5de6\u5916\u8fde\u63a5\uff0c\u5982\u679c\u53ea\u628a\u53f3\u8fb9\u5173\u7cfbS\u4e2d\u8981\u820d\u5f03\u7684\u5143\u7ec4\u4fdd\u7559\u53f3\u5916\u8fde\u63a5\u3002
\u5173\u7cfb\u8fd0\u7b97:
R\u00d7S\u2261{t\uff5ct=\u2227t\u2208R\u2227t\u2208S}
SQL \u8bed\u53e5\u8868\u8fbe\u5c31\u662f:
SELECT R.X,R.Y,S.Z FROM R,S WHERE R.Y = S.Y
\u6216
SELECT R.X,R.Y,S.Z FROM R INNER JOIN S ON R.Y = S.Y
是相同的属性组即要求必须有相同的值域即可自然连接。
自然连接是一种特殊的等值连接,他要求两个关系表中进行比较的必须是相同的属性列,无须添加连接条件,并且在结果中消除重复的属性列。
绛旓細褰撹繖浜涘睘鎬у湪涓や釜琛ㄤ腑閮藉瓨鍦ㄤ笖婊¤冻鏌愮鍖归厤鏉′欢鏃讹紝鏁版嵁搴撳氨浼氳嚜鍔ㄥ皢杩欎袱涓〃鐨勮褰曡繘琛屽叧鑱銆傝繖绉鍩轰簬鍏卞悓灞炴х殑鑷姩鍏宠仈灏辨槸鎵璋撶殑鑷劧杩炴帴銆備簩銆佽嚜鐒惰繛鎺ョ殑鍏蜂綋鎿嶄綔 鍦ㄥ疄闄呮搷浣滀腑锛岃嚜鐒惰繛鎺ュ父甯哥敤浜灏嗗叿鏈夌浉鍚屽叧閿瓧鎴栨爣璇嗙鐨勮〃杩涜鍏宠仈銆備緥濡傦紝濡傛灉鎴戜滑鏈変袱涓〃锛屼竴涓槸鈥滃憳宸モ濊〃锛屽彟涓涓槸鈥滈儴闂...
绛旓細鍦ㄥ叧绯绘暟鎹簱鐨勬搷浣滀腑锛岃嚜鐒惰繛鎺ユ槸涓绉嶅父瑙佺殑杩炴帴鏂瑰紡锛屽叾涓昏鐗圭偣鏄熀浜庣瓑鍊兼潯浠朵笅鐨勫睘鎬у尮閰銆傝嚜鐒惰繛鎺ュ畾涔変负锛氬綋涓や釜鍏崇郴R鍜孲鍏锋湁鐩稿悓鐨勫睘鎬х粍Y鏃讹紝閫氳繃鍦ㄥ箍涔夌瑳鍗″皵绉疪脳S涓壘鍑哄睘鎬у肩浉绛夌殑鍏冪粍锛岀劧鍚庤繘琛屾姇褰辨搷浣滐紝绉婚櫎閲嶅鐨勫悓鍚嶅睘鎬э紝褰㈡垚涓涓柊鐨勫叧绯汇傝繖绉嶈繛鎺ョ殑琛ㄧず涓猴細R*S={t r鈱抰s | t...
绛旓細鑷劧杩炴帴鏄暟鎹簱鏌ヨ涓父鐢ㄧ殑涓绉嶈繛鎺ユ搷浣锛涓昏鐢ㄤ簬灏嗕袱涓垨澶氫釜琛ㄤ腑鐨勬暟鎹牴鎹煇浜涘叡鏈夌殑灞炴ц繘琛屽尮閰嶅苟缁勫悎銆傝繖浜涘叡鏈夌殑灞炴ч氬父琚О涓衡滈敭鈥濇垨鈥滃閿濄傚綋杩欎簺閿殑鍊煎湪涓や釜琛ㄤ腑鐩稿尮閰嶆椂锛岃繖浜涜灏辫杩炴帴璧锋潵銆傝嚜鐒惰繛鎺ユ槸鑷姩杩涜鐨勶紝涓嶉渶瑕侀澶栫殑鎸囦护鎴栬缃傝嚜鐒惰繛鎺ョ殑宸ヤ綔鍘熺悊 鍦ㄦ暟鎹簱绯荤粺涓...
绛旓細鏄浉鍚岀殑灞炴х粍鍗宠姹傚繀椤绘湁鐩稿悓鐨勫煎煙鍗冲彲鑷劧杩炴帴銆傝嚜鐒惰繛鎺ユ槸涓绉嶇壒娈婄殑绛夊艰繛鎺ワ紝浠栬姹備袱涓叧绯昏〃涓繘琛屾瘮杈冪殑蹇呴』鏄浉鍚岀殑灞炴у垪锛屾棤椤绘坊鍔犺繛鎺ユ潯浠讹紝骞朵笖鍦ㄧ粨鏋滀腑娑堥櫎閲嶅鐨勫睘鎬у垪銆傚湪杩炴帴杩愮畻褰撲腑锛屼竴绉嶆渶甯哥敤鐨勮繛鎺ユ槸鑷劧杩炴帴銆傚鏋滃叧绯籖涓嶴鍏锋湁鐩稿悓鐨勫睘鎬х粍B锛屼笖璇ュ睘鎬х粍鐨勫肩浉绛夋椂鐨勮繛鎺ョО涓...
绛旓細瑙i噴锛氳嚜鐒惰繛鎺ヨ繍绠楁槸鍏崇郴鏁版嵁搴撲腑鐨勪竴绉嶆搷浣滐紝瀹冮氳繃灏嗙瑳鍗″皵绉侀夋嫨鍜屾姇褰辨搷浣滅粍鍚堝湪涓璧凤紝瀹炵幇浜嗕袱涓叧绯讳箣闂寸殑杩炴帴銆傚湪杩欎釜杩囩▼涓紝鎴戜滑棣栧厛闇瑕佺悊瑙g瑳鍗″皵绉侀夋嫨鍜屾姇褰辨搷浣滅殑鍚箟銆傜瑳鍗″皵绉槸鎸囧皢涓や釜鍏崇郴鐨勬瘡涓厓缁勮繘琛岀粍鍚堬紝鐢熸垚涓涓柊鐨勫叧绯汇傚亣璁炬湁鍏崇郴A鍜屽叧绯籅锛孉涓湁m涓厓缁勶紝B涓湁n涓...
绛旓細鍦ㄨ绠楁満绉戝涓紝鑷劧杩炴帴锛圢atural Join锛夋槸涓绉嶅叧绯诲瀷鏁版嵁搴鎿嶄綔锛岀敤浜庡皢涓や釜鎴栧涓〃鏍兼牴鎹畠浠箣闂寸殑鍏卞悓灞炴ц繘琛岃繛鎺ャ傝嚜鐒惰繛鎺ョ殑杩愮畻鍩轰簬涓や釜琛ㄦ牸涔嬮棿鐨勭浉绛夋潯浠讹紝鍗冲畠浠叿鏈夌浉鍚岀殑灞炴у悕鍜岀浉鍚岀殑灞炴у笺傝嚜鐒惰繛鎺ョ殑杩囩▼濡備笅锛1. 棣栧厛锛屾壘鍒颁袱涓〃鏍间腑鍏锋湁鐩稿悓灞炴у悕鐨勫睘鎬э紝杩欎簺灞炴ч氬父鏄袱涓〃鏍...
绛旓細缁撴灉闆嗙粨鏋勶細绛夊艰繛鎺ワ細缁撴灉闆嗕腑鍖呭惈鍙備笌杩炴帴鐨勬墍鏈夊垪锛屽寘鎷噸澶嶇殑鍏叡灞炴у垪銆鑷劧杩炴帴锛氱粨鏋滈泦涓粎鍖呭惈鎵鏈夐潪閲嶅灞炴у垪锛屽嵆姣忎釜鍏叡灞炴у彧淇濈暀涓浠斤紝娑堥櫎浜嗗啑浣欍傝仈绯伙細鍩烘湰姒傚康锛氫簩鑰呴兘灞炰簬鍏崇郴鏁版嵁搴涓殑杩炴帴鎿嶄綔锛岀敤浜庡皢涓や釜琛ㄧ殑鏁版嵁鍩轰簬鏌愮鍏崇郴缁撳悎鍦ㄤ竴璧枫備緷璧栧叧绯伙細鑷劧杩炴帴瀹為檯涓婃槸绛夊艰繛鎺ョ殑涓绉...
绛旓細鑷劧杩炴帴鏄竴绉嶅湪鍏崇郴鍨鏁版嵁搴涓敤浜庢煡璇㈢殑涓绉嶆搷浣溿傚畠鏄氳繃姣旇緝涓や釜琛ㄤ腑鐨勬墍鏈夊垪锛屾壘鍑烘弧瓒虫潯浠剁殑璁板綍锛岀劧鍚庡皢瀹冧滑鍚堝苟鎴愪竴涓柊鐨勮〃銆傞氳繃鑷劧杩炴帴鍙互浣垮緱鏌ヨ鎿嶄綔鏇村姞绠鍗曞拰鏂逛究銆傚洜涓哄畠鑷姩姣旇緝涓や釜琛ㄤ腑鐨勬墍鏈夊垪锛屾墍浠ヤ笉闇瑕佸姣忎釜琛ㄨ繘琛屽崟鐙殑鍒楁瘮杈冦傝繖涓嶄粎鑺傜渷浜嗘椂闂达紝杩樺彲浠ュ噺灏戦敊璇殑鍙戠敓鏈轰細銆
绛旓細绛夊艰繛鎺ュ拰鑷劧杩炴帴鏄鏁版嵁搴涓敤浜庤繛鎺ヤ袱涓垨澶氫釜琛ㄧ殑涓ょ涓昏鏂瑰紡銆傚湪鍏崇郴鍨嬫暟鎹簱涓紝杩欎簺杩炴帴鎿嶄綔鐢ㄤ簬缁勫悎鍜屾暣鐞嗘潵鑷笉鍚岃〃鐨勬暟鎹紝浠ヤ究杩涜鏌ヨ鍜屽垎鏋愩傜瓑鍊艰繛鎺ワ紙Equijoin锛夋槸涓绉嶅熀浜庝袱涓〃涔嬮棿鐨勭浉绛夋潯浠剁殑杩炴帴鎿嶄綔銆傚湪绛夊艰繛鎺ヤ腑锛屽皢涓や釜琛ㄤ腑鐨勬寚瀹氬垪杩涜姣旇緝锛屽鏋滆繖浜涘垪鐨勫肩浉绛夛紝鍒欎粠杩欎袱涓〃...
绛旓細鑷劧杩炴帴鏄竴绉嶇壒娈婄殑鏁版嵁搴鎿嶄綔锛屽畠鍦ㄤ袱涓叧绯荤殑杩炴帴杩囩▼涓捣鐫鍏抽敭浣滅敤銆傚畠鐨勪富瑕佺壒寰佹槸锛屽綋姣旇緝涓や釜鍏崇郴涓殑灞炴ф椂锛屽繀椤绘槸瀹屽叏鐩稿悓鐨勫睘鎬х粍锛屽苟涓斿湪杩炴帴缁撴灉涓細鑷姩娑堥櫎杩欎簺閲嶅鐨勫睘鎬у垪锛岃繖涓庢櫘閫氱殑绛夊艰繛鎺ユ湁鎵鍖哄埆銆傜瓑鍊艰繛鎺ヨ櫧鐒朵篃浣跨敤绛変簬(=)杩愮畻绗︼紝浣嗗湪杩炴帴鍚庣殑缁撴灉涓細淇濈暀鎵鏈夐噸澶嶇殑灞炴у垪...