የውስጥ መቀላቀል ከውጪ መቀላቀል
የውስጥ መቀላቀል እና ውጫዊ መቀላቀል ሁለቱ የSQL መቀላቀያ ዘዴዎች ለዳታቤዝ መጠይቅ ሂደት ጥቅም ላይ ይውላሉ። እነሱ የመቀላቀል አንቀጾች ቤተሰብ ናቸው (ሌሎች ሁለቱ የግራ እና የቀኝ መጋጠሚያዎች ናቸው)። ነገር ግን፣ ለልዩ ሁኔታዎች የሚያገለግል ራስን መቀላቀል አለ። የመቀላቀል ዓላማ የጋራ እሴቶችን ወደ ሁለቱ ጠረጴዛዎች በመጠቀም መስኮችን ማዋሃድ ነው። እነዚህ መቀላቀያዎች የውሂብ ጎታ ውስጥ ከበርካታ ሰንጠረዦች የተገኙ መዝገቦችን ያጣምራሉ. እንደ ሌላ ሠንጠረዥ ሊቀመጡ የሚችሉ የውጤት ስብስቦችን ይፈጥራል።
የውስጥ መቀላቀል ምንድነው?
በብዛት ጥቅም ላይ የሚውለው የSQL መቀላቀያ ክወና የውስጥ መቀላቀል ነው።በመተግበሪያዎች ውስጥ ጥቅም ላይ የዋለው እንደ ነባሪ የመቀላቀል አይነት ተደርጎ ሊወሰድ ይችላል። የውስጥ መቀላቀል ሁለት ጠረጴዛዎችን ለማጣመር መቀላቀል-ተሳቢውን ይጠቀሙ። ሁለቱ ሠንጠረዦች A እና B ናቸው ብለን በማሰብ ተሳቢውን የሚያረኩ ሁሉንም ጥንዶች ለማወቅ የመገጣጠሚያ-ተሳቢው የ A እና B ረድፎችን ያወዳድራል። የሁሉም እርካታ ረድፎች ሀ እና ቢ ሠንጠረዦች የአምድ ዋጋዎች ተጣምረው ውጤቱን ይፈጥራሉ። በመጀመሪያ የመስቀል መቀላቀልን (የካርቴዥያን ምርት) የሁሉንም መዛግብት መውሰድ እና ከዚያም መቀላቀል-ተሳቢውን የሚያረካውን መዝገቦችን ብቻ ሲመልስ ሊታይ ይችላል። ሆኖም ግን, በእውነቱ, የካርቴሲያን ምርት በጣም ውጤታማ ስላልሆነ አይሰላም. በምትኩ ሃሽ መቀላቀል ወይም መደርደር መቀላቀል ጥቅም ላይ ይውላል።
የውጭ መቀላቀል ምንድነው?
እንደ የውስጥ መቀላቀል፣ የውጪ መቀላቀል ተዛማጅ መዝገብ ባያገኝም ሁሉንም መዝገቦች ያቆያል። ያ ማለት የውጪ መቀላቀል በውጤቱ ላይ እንዲታይ ተዛማጅ መዝገብ ለማግኘት መዝገብ ያስፈልገዋል ማለት ነው። በምትኩ, ሁሉንም መዝገቦች ይመልሳል, ነገር ግን የማይዛመዱ መዛግብት ዋጋ የሌላቸው እሴቶች ይኖራቸዋል. የውጪ መጋጠሚያዎች በሦስት ንዑስ ምድቦች ይከፈላሉ.እነሱ የግራ ውጫዊ መጋጠሚያ ፣ የቀኝ ውጫዊ መጋጠሚያ እና ሙሉ ውጫዊ መጋጠሚያ ናቸው። የማይዛመዱ መዝገቦች ሲገኙ ይህ ልዩነት በየትኛው ሰንጠረዥ (የግራ ጠረጴዛ, የቀኝ ጠረጴዛ ወይም ሁለቱም ሰንጠረዦች) ረድፍ ላይ የተመሰረተ ነው. የግራ ውጫዊ መጋጠሚያዎች (በቀላሉ የግራ መቀላቀል በመባልም ይታወቃል) ሁሉንም የግራ ሰንጠረዥ መዝገቦች ያቆያል። ያ ማለት፣ የቁጥር ማዛመጃ መዝገቦች ዜሮ ቢሆኑም፣ በውጤቱ ሠንጠረዥ ውስጥ አሁንም መዝገቦች ይኖሩታል፣ ነገር ግን ለሁሉም የB አምዶች ባዶ እሴቶች ይኖረዋል። ሠንጠረዥ (ወይም ባዶ ዋጋዎች በማይዛመዱበት ጊዜ)። ከግራ ሠንጠረዥ ከበርካታ ረድፎች ውስጥ ያሉት እሴቶች ከአንድ ረድፍ ከቀኝ ሰንጠረዥ ጋር ከተመሳሰሉ፣ ከቀኝ ሰንጠረዥ ያለው ረድፍ እንደ አስፈላጊነቱ ይደጋገማል። የቀኝ ውጫዊ መቀላቀል ከግራ ውጫዊ መቀላቀል ጋር በጣም ተመሳሳይ ነው፣ ነገር ግን የጠረጴዛዎች አያያዝ የተከበረ ነው። ያም ማለት ውጤቱ ቢያንስ አንድ ጊዜ ሁሉም የቀኝ ሠንጠረዥ ረድፎች ከተዛመዱ የግራ ሰንጠረዥ እሴቶች ጋር (እና ላልተዛመዱ የቀኝ እሴቶች ባዶ እሴቶች) ይኖራቸዋል። ሙሉ የውጪ መጋጠሚያ ከሁለቱም የግራ እና የቀኝ ውጫዊ መጋጠሚያዎች የበለጠ አጠቃላይ ነው።ሁለቱንም የግራ እና የቀኝ ውጫዊ መቀላቀልን በአንድ ላይ መተግበር የሚያስከትለውን ውጤት በማጣመር ያስከትላል።
በውስጥ መቀላቀል እና በውጪ መቀላቀል መካከል ያለው ልዩነት ምንድን ነው?
የውስጥ መቀላቀል በውጤቱ ውስጥ የማይዛመዱ ረድፎችን አያስቀምጥም፣ ነገር ግን የውጪ መቀላቀል ሁሉንም መዝገቦች ቢያንስ ከአንድ ሠንጠረዥ ያቆያል (በየትኛው የውጪ መጋጠሚያ ጥቅም ላይ እንደዋለ ላይ በመመስረት)። ስለዚህ, በውጤቱ ሰንጠረዥ ውስጥ በማይመሳሰሉ ረድፎች ላይ ምንም አይነት መረጃ የሌሉበት ባህሪ የማይፈለግ ነው, ሁልጊዜ ከውጪ መጋጠሚያዎች አንዱን መጠቀም ያስፈልግዎታል (በውስጣዊ መገጣጠም ቦታ). ምንም ተዛማጆች ካልተገኙ የውስጥ መቀላቀል ውጤት ላያመጣ ይችላል። ነገር ግን የውጪ መቀላቀል ሁልጊዜ ምንም ረድፎች ባይኖርም የውጤት ሰንጠረዥን ይፈጥራል። የውስጥ መቀላቀል ሁልጊዜ እሴቶች ያላቸውን ሰንጠረዦች ይመልሳል (ከተመለሰ)። ነገር ግን የውጪ መቀላቀል ዋጋ የሌላቸው ሰንጠረዦችን ሊያስከትል ይችላል።