แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่าง Inner Join และ Outer Join ใน SQL

Inner Join และ Outer Join เป็นประเภทของการเข้าร่วม เข้าร่วมเปรียบเทียบและรวมสิ่งอันดับจากสองความสัมพันธ์หรือตาราง Inner Join ระบุการเข้าร่วมที่เป็นธรรมชาตินั่นคือถ้าคุณเขียนคำสั่ง Join โดยไม่มีคำหลัก Inner ก็จะทำการรวมเข้าด้วยกันแบบธรรมชาติ ความแตกต่างที่อาจเกิดขึ้นระหว่าง Inner Join และ Outer Join คือ Inner Inner จะส่งกลับเฉพาะทูเปิลที่ตรงกันจากทั้งตารางและ Outer Join จะส่งกลับทูเปิลทั้งหมดจากทั้งสองตารางเปรียบเทียบ ให้เราคุยความแตกต่างอื่น ๆ ระหว่าง Inner Join และ Outer เข้าร่วมด้วยความช่วยเหลือของแผนภูมิเปรียบเทียบที่แสดงด้านล่าง

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบเข้าร่วม Innerเข้าร่วม Outer
ขั้นพื้นฐานInner Join แสดงผลลัพธ์เฉพาะสิ่งอันดับที่ตรงกันจากทั้งสองตารางOuter เข้าร่วมแสดง tuples ทั้งหมดจากทั้งสองตาราง
ฐานข้อมูลขนาดที่เป็นไปได้ของฐานข้อมูลที่ส่งคืนโดย Inner Join นั้นมีขนาดเล็กกว่า Outer JoinOuter join กลับฐานข้อมูลที่มีขนาดใหญ่กว่า
ประเภทไม่มีประเภทเข้าร่วม Outer Left,
เข้าร่วม Outer ขวา
และเข้าร่วมเต็มด้านนอก

คำจำกัดความของ Inner Join

Inner Join เรียกอีกอย่างหนึ่งว่า Natural Join Inner Join เปรียบเทียบสองตารางและรวมการจับคู่ tuple ในทั้งสองตาราง มันถูกเรียกว่าเป็นประเภทเริ่มต้นของการเข้าร่วมเป็นข้อเข้าร่วมจะถูกเขียนโดยไม่ต้องใช้คำหลักภายในมันดำเนินการเข้าร่วมธรรมชาติ หากส่วนคำสั่ง Join ถูกเขียนโดยไม่มีคีย์เวิร์ด Outer ดังนั้นการรวมภายในจะถูกดำเนินการ

Inner Join สามารถอธิบายได้ด้วยตัวอย่าง มีโต๊ะนักเรียนสองโต๊ะและโต๊ะแผนก ตอนนี้ให้เราเข้าใจว่าการเข้าร่วมภายในทำงานอย่างไร

SELECT ชื่อ, Sem, Deparment_name จากนักศึกษาเข้าร่วมภายในแผนก ON Student.Department_ID = ภาควิชา ID

คุณสามารถเห็นได้ว่าเฉพาะสิ่งอันดับที่ได้รับในผลลัพธ์ที่ Student.Department_ID = แผนก ID ดังนั้นเราสามารถพูดได้ว่า Inner Join ได้รวมเฉพาะการจับคู่ tuple ของสองตาราง

นิยามของ Outer Join

แตกต่างจาก Inner Join เฉพาะ tuples เหล่านั้นเท่านั้นที่มีเอาต์พุตที่มีค่าแอททริบิวเดียวกันในตารางเปรียบเทียบทั้งคู่ เข้าร่วมด้านนอกเอาท์พุท tuples ทั้งหมดของทั้งสองตาราง การเข้าร่วมด้านนอกมีสามประเภทการ เข้าร่วม ด้านนอกด้านนอกการเข้าร่วมด้านนอกด้านขวา และการ เข้าร่วมด้านนอกเต็มรูปแบบ

ให้เราเข้าใจพวกเขาทีละคน ก่อนอื่นให้เราเข้าร่วม Left Outer

เลือกชื่อ, ชื่อแผนกจากนักศึกษาด้านนอกด้านนอกเข้าร่วมแผนกของนักศึกษาแผนก _ID = แผนกออก ID

คุณจะเห็นว่าสิ่งอันดับทั้งหมดจากตารางนักเรียนจะปรากฏในผลลัพธ์

เลือกชื่อ, ชื่อแผนกจากภาควิชาด้านนอกด้านนอกเข้าร่วมนักศึกษากับนักศึกษาแผนก _ID = แผนกออก ID

คุณสามารถเห็นว่า tuples ทั้งหมดจากตารางแผนกจะปรากฏขึ้น

เลือกชื่อ, ชื่อแผนกจากนักศึกษาแบบเต็มด้านนอกเข้าร่วมแผนก ON นักศึกษาแผนก _ID = แผนกออก ID

คุณสามารถสังเกตได้ว่าสิ่งอันดับทั้งหมดจากทั้งสองตารางจะแสดงในผลลัพธ์

ความแตกต่างที่สำคัญระหว่างการรวมภายในและภายนอกเข้าร่วม

  1. ความแตกต่างพื้นฐานระหว่าง Inner Join และ Outer Join คือการรวมภายในและเปรียบเทียบเฉพาะ tuples ที่ตรงกันจากทั้งสองตาราง ในทางกลับกัน Outer Join เปรียบเทียบและรวม tuples ทั้งหมดจากทั้งสองตารางที่ถูกเปรียบเทียบ
  2. ขนาดฐานข้อมูลของผลลัพธ์ที่ได้จากการรวมภายในมีขนาดเล็กกว่าการรวมภายนอก
  3. การเข้าร่วมด้านนอกมีสามประเภทการเข้าร่วมด้านนอกการเข้าร่วมด้านนอกการเข้าร่วมด้านนอกและการเข้าร่วมเต็มรูปแบบภายนอก แต่ภายในเข้าร่วมไม่มีประเภทดังกล่าว

สรุป:

ทั้งตัวเชื่อมมีประโยชน์มาก การใช้งานขึ้นอยู่กับความต้องการของผู้ใช้

Top