ความแตกต่างระหว่างการเข้าร่วมด้านซ้ายและการเข้าร่วมภายนอกด้านซ้ายใน SQL - ความแตกต่างทั้งหมด

 ความแตกต่างระหว่างการเข้าร่วมด้านซ้ายและการเข้าร่วมภายนอกด้านซ้ายใน SQL - ความแตกต่างทั้งหมด

Mary Davis

ฐานข้อมูลประกอบด้วยคอลเลกชันที่เป็นระเบียบของข้อมูลที่มีโครงสร้าง โดยปกติจะจัดเก็บแบบอิเล็กทรอนิกส์ในระบบคอมพิวเตอร์ ฐานข้อมูลต่างๆ มากมาย เช่น SQL Server, Oracle, PostgreSQL และ MySQL โดยทั่วไปจะใช้ภาษาหนึ่งในการจัดการข้อมูล .

หนึ่งภาษาดังกล่าวเรียกว่า SQL SQL มีคำสั่งรวมที่แตกต่างกันในรูปแบบของ Inner Join, Left Join และ Right Join

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

ฉันแน่ใจและค่อนข้างสับสนเล็กน้อย! แต่ไม่ต้องกังวล เราจะให้รายละเอียดเกี่ยวกับความหมายของคำเหล่านี้ และหวังว่าจะช่วยให้คุณเข้าใจได้ดีขึ้น

มาเริ่มกันเลย!

SQL คืออะไร?

SQL ย่อมาจาก Structured Query Language เป็นภาษาที่ใช้ในฐานข้อมูลต่างๆ สำหรับเขียนและสืบค้นข้อมูล ช่วยให้สามารถจัดการข้อมูลโดยใช้ตารางและแสดงภาษาเพื่อสอบถามตารางเหล่านี้และวัตถุที่เกี่ยวข้องอื่นๆ เช่น มุมมอง ฟังก์ชัน ขั้นตอน ฯลฯ

Donald Chamberlin และ Raymond Boyce เป็น นักออกแบบ ของ SQL ซึ่งพวกเขาสร้างขึ้นเพื่อจัดการข้อมูล โมเดลของพวกเขาอิงจากผลงานของ Edgar Frank Codd ซึ่งทำงานให้กับ IBM และเป็นผู้คิดค้นฐานข้อมูลเชิงสัมพันธ์ในยุค 70

ดูสิ่งนี้ด้วย: ออทิสติกหรือขี้อาย? (รู้ความแตกต่าง) – ความแตกต่างทั้งหมด

เริ่มแรก มันถูกตั้งชื่อว่า SEQUEL แต่มันถูกทำให้สั้นลงเป็น SQL เนื่องจากเฉพาะเจาะจงปัญหาเครื่องหมายการค้า อย่างไรก็ตาม คุณยังสามารถเรียกมันว่า SEQUEL ได้หากต้องการ

ด้วย SQL คุณสามารถแทรก ลบ และอัปเดตข้อมูล และสร้าง ลบ หรือแก้ไขวัตถุฐานข้อมูลอื่นๆ คำสั่ง SQL มาตรฐานคือ “ select”, “delete”, “insert”, “update”, “create” และ “drop” สิ่งเหล่านี้สามารถบรรลุทุกสิ่งที่ต้องทำบนฐานข้อมูล

ยิ่งไปกว่านั้น ภาษานี้ใช้ในฐานข้อมูลหลายแห่งเพื่อช่วยจัดการข้อมูลและวัตถุฐานข้อมูล ถ้ามันฟังดูซับซ้อนสำหรับคุณ นี่คือวิดีโอที่อธิบายว่า SQL คืออะไรสำหรับผู้เริ่มต้น:

ดูสิ่งนี้ด้วย: อะไรคือความแตกต่างระหว่าง "อาหาร" และ "อาหาร"? (เปิดเผยข้อเท็จจริง) – ความแตกต่างทั้งหมด

ฐานข้อมูลสามารถทำงานโดยไม่มีภาษาได้หรือไม่?

ทำไมเราถึงใช้ SQL

ค่อนข้างง่าย เราจะไม่เข้าใจฐานข้อมูลหากไม่มี SQL ในทำนองเดียวกัน เราไม่สามารถสั่งฐานข้อมูลได้หากไม่มี SQL เนื่องจาก SQL เป็นระบบที่ใช้ในการสื่อสารกับฐานข้อมูล ระบบ

SQL ทำงานต่างๆ เช่น ลบ เพิ่ม หรือแก้ไขข้อมูล ระบบนี้มักใช้เพื่อทำให้ ง่ายต่อการจัดการข้อมูลจำนวนมาก โดยการจัดการอย่างมีประสิทธิภาพ ระบบจัดการฐานข้อมูลเชิงสัมพันธ์มาตรฐานบางระบบที่ใช้ SQL ได้แก่ Oracle, Sybase, Microsoft Access และ Ingres

Inner Join และ Outer Join คืออะไร

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

การรวมภายในคือการรวมที่ส่งคืนแถวทั้งหมดจากทั้งตารางที่เข้าร่วมโดยที่ระเบียน ที่สำคัญของตารางหนึ่งเหมือนกับระเบียน ที่สำคัญของอีกตารางหนึ่ง

การรวมประเภทนี้ต้องการตัวดำเนินการเปรียบเทียบเพื่อจับคู่แถวจากตารางที่เข้าร่วมซึ่งรองรับฟิลด์มาตรฐานหรือคอลัมน์ของทั้งสองตาราง

การรวมภายนอกสามารถคืนค่าที่ไม่ใช่ -จับคู่แถวในหนึ่งตารางหรือทั้งสองตาราง โดยพื้นฐานแล้ว จะส่งคืนแถวทั้งหมดจากตารางทั้งหมดที่ตรงตามเงื่อนไข

การรวมภายนอกมีหลายประเภท สิ่งเหล่านี้รวมถึงการเข้าร่วมด้านซ้าย การเข้าร่วมด้านขวา และการเข้าร่วมภายนอกแบบเต็ม

นี่คือตารางสรุปฟังก์ชันที่สำคัญของการรวมที่มีอยู่ใน SQL:

ประเภทการรวม:<2 ฟังก์ชัน :
การเข้าร่วมภายใน การดำเนินการนี้จะส่งคืนแถวเมื่อมีอย่างน้อยหนึ่งรายการที่ตรงกันในทั้งสองตาราง
การเข้าร่วมภายนอกด้านซ้าย การดำเนินการนี้จะส่งคืนแถวทั้งหมดจากตารางด้านซ้ายร่วมกับแถวที่ตรงกันจากตารางด้านขวา
การเข้าร่วมภายนอกด้านขวา การดำเนินการนี้จะส่งคืนแถวทั้งหมดจากตารางด้านขวาร่วมกับแถวที่ตรงกันจากตารางด้านซ้าย
การรวมภายนอกแบบเต็ม เป็นการรวมการรวมภายนอกด้านซ้ายและการรวมภายนอกด้านขวา คืนค่าแถวจากตารางใดตารางหนึ่งเมื่อตรงตามเงื่อนไข

สิ่งนี้แสดงความแตกต่างระหว่างการรวมสี่รายการใน SQL

ความแตกต่างระหว่างการรวมภายในและภายนอก

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

โดยพื้นฐานแล้ว การรวมภายใน ส่งผลให้เกิดส่วนที่ทับซ้อนกันของชุดข้อมูลสองชุด ดังที่แสดงในภาพด้านล่าง คุณจะรวมเฉพาะแถวมาตรฐานเหล่านั้นในทั้งสองตารางสำหรับการรวมภายใน ในทางกลับกัน การรวมภายนอกจะส่งคืนระเบียนทั้งหมดที่มีค่าในตารางด้านซ้ายหรือตารางที่เหมาะสม

การรวมภายนอกประกอบด้วยแถวที่ตรงกันและแถวที่ไม่ตรงกันจากตาราง นอกจากนี้ การรวมภายนอก แตกต่างจากการรวมภายในใน การจัดการเงื่อนไขการจับคู่ที่ผิดพลาด

การเข้าร่วมภายนอกด้านซ้ายประกอบด้วยการเข้าร่วมภายนอกด้านซ้าย + การเข้าร่วมภายใน ในขณะที่ Right Outer Join ยังประกอบไปด้วย Right Outer Join + Inner Join Full Outer Join ประกอบด้วย จากทั้งหมด

Left Outer (เหมือนกับ Left Outer Join ใน SQL หรือไม่)

บางทีคุณอาจเคยได้ยิน ออกจากการเข้าร่วมใน SQL ด้วยหรือไม่ มันก็แค่การรวมภายนอกด้านซ้ายเหมือนกัน พวกเขามีชื่อที่แตกต่างกันสองชื่อสำหรับฟังก์ชันเดียวกัน

การเข้าร่วมด้านซ้ายจะเหมือนกับการรวมภายนอกด้านซ้ายใน SQL และเป็นหนึ่งเดียว การเข้าร่วมด้านซ้ายเป็นเพียงการย่อสำหรับการเข้าร่วมภายนอกด้านซ้าย คำ“ด้านนอก” ทำให้การทำงานตรงไปตรงมามากขึ้น แต่ปุ่มทั้งสองทำหน้าที่เหมือนกัน

เหตุใดการเข้าร่วมด้านซ้ายจึงเรียกว่าการเข้าร่วมภายนอกด้านซ้าย

คุณจะมีตัวเลือกในการเรียกโดยใช้ชื่อขยายหรือทางลัด นอกจากนี้ พวกมันยังเป็นสิ่งเดียวกันอีกด้วย

โปรดจำไว้ว่า การรวมนี้จะส่งกลับแถวทั้งหมดในตารางทางด้านซ้ายและแถวที่ตรงกันทางด้านขวาของการรวม หากไม่มีด้านที่ตรงกันทางด้านขวา ผลลัพธ์จะเป็นค่าว่าง

ดังนั้น หากเราต้องรวมสองตาราง A และ B SQL Left Outer Join จะส่งคืนแถวทั้งหมดในตารางด้านซ้าย ซึ่งก็คือ A และแถวทั้งหมดที่ตรงกันในอีกตาราง B ทางด้านขวา โดยสรุป ผลลัพธ์ของ SQL Left Join จะประกอบด้วยแถวจากตารางด้านซ้ายเสมอ

ความแตกต่างระหว่างการเข้าร่วมและการเข้าร่วมด้านซ้าย

สำหรับพื้นฐาน การเข้าร่วมเรียกอีกอย่างว่าการเข้าร่วมภายใน ในขณะที่การเข้าร่วมด้านซ้ายเป็นการเข้าร่วมภายนอก

แต่ข้อแตกต่างหลักคือคำสั่งรวมด้านซ้ายมีแนวโน้มที่จะรวมและรวมแถวทั้งหมดของตารางที่อ้างอิงทางด้านซ้ายของข้อมูล แทนที่จะเป็นเพียงแถวที่ไม่ตรงกัน แต่จะประกอบด้วยแถวทั้งหมดจากตารางด้านซ้ายและแถวที่ตรงกันจากตารางอื่นๆ

ควรใช้ Left Outer Join ใน SQL เมื่อใด

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

ในทางเทคนิค การรวมภายนอกด้านซ้ายจะระบุแถวทั้งหมดจากทั้งตารางที่ตรงตามเงื่อนไขการรวมและ แถวที่ไม่ตรงกันจากตาราง

การรวมภายนอกด้านซ้ายเพิ่มจำนวนแถวหรือไม่

นี่เป็นคำถามที่พบบ่อย ในทางเทคนิคแล้ว มันก็ใช่

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

การรวมภายนอกด้านซ้ายเทียบกับการเข้าร่วมภายนอกด้านขวา

ความแตกต่างที่สำคัญระหว่างการรวมภายนอกด้านซ้ายและการรวมภายนอกด้านขวาคือ การรวมแถวที่ไม่ตรงกัน

ดังนั้นความแตกต่างระหว่างทั้งสองก็คือการรวมภายนอกด้านซ้ายจะมีแถวที่ไม่ตรงกันหรือระเบียนทั้งหมดของตารางที่ด้านซ้ายของส่วนคำสั่งการรวม รวมถึงแถวที่ตรงกันจากตารางหรือส่วนคำสั่งด้านขวา

ในทางกลับกัน การรวมภายนอกด้านขวาจะรวมแถวที่ไม่ตรงกันจากตารางทางด้านขวาของส่วนคำสั่งการรวมและส่งคืนแถวทั้งหมดจากด้านขวา

ข้อเข้าร่วมรวมบันทึกหรือแก้ไขและจัดการแบบฟอร์มจากสองตารางขึ้นไปโดยใช้เงื่อนไขการเข้าร่วม เงื่อนไขการรวมนี้บ่งชี้ว่าคอลัมน์จากตารางต่างๆ จับคู่กันอย่างไรเมื่อเปรียบเทียบ

ตัวอย่างเช่น จะมีคอลัมน์มาตรฐานระหว่างตารางที่มีเงินเดือนพนักงานและอีกตารางที่มีรายละเอียดพนักงาน นี่อาจเป็นรหัสพนักงานและช่วยในการเข้าร่วมสองตาราง

คุณจึงคิดว่าตารางเป็นเอนทิตี และคีย์คือลิงก์ทั่วไประหว่างสองตาราง ซึ่งใช้สำหรับการดำเนินการร่วมกัน

การศึกษาฐานข้อมูลอาจเป็นเรื่องยุ่งยาก แต่จะค่อนข้างง่ายถ้าคุณเข้าใจอย่างละเอียด

ความแตกต่างระหว่าง Right Join และ Right Outer Join คืออะไร

Right joins คล้ายกับ left joins เว้นแต่จะคืนค่าทั้งหมด แถวในตารางจากด้านขวาและแถวที่ตรงกันจากด้านซ้าย

อีกครั้ง การเข้าร่วมด้านขวาและการเข้าร่วมภายนอกด้านขวาไม่มีความแตกต่างเฉพาะ เช่นเดียวกับการเข้าร่วมด้านซ้ายและการเข้าร่วมภายนอกด้านซ้ายไม่มี กล่าวโดยย่อ คำว่า Right Join เป็นเพียงคำย่อของ Right Outer Join

คีย์เวิร์ด "outer" เป็นตัวเลือก ทั้งคู่ทำงานเดียวกันโดยรวมชุดข้อมูลและตารางเข้าด้วยกัน

เหตุใดจึงใช้การรวมด้านขวาแทนการเข้าร่วมด้านซ้าย

โดยทั่วไปแล้ว การรวมภายนอกด้านขวาจะไม่ถูกใช้ตามปกติ เนื่องจากคุณสามารถแทนที่ด้วยการรวมภายนอกด้านซ้ายได้เสมอ และไม่ต้องดำเนินการฟังก์ชันเพิ่มเติมใดๆ

เมื่อมีคนนึกถึงการใช้ Right Join มากกว่า Left Joinพยายามทำให้ SQL ของคุณมีเอกสารด้วยตนเองมากขึ้น

คุณอาจใช้ การรวมด้านซ้าย เพื่อระบุข้อความค้นหาที่มีแถวว่างในฝั่งที่ขึ้นต่อกัน คุณจะใช้ การเข้าร่วมที่ถูกต้อง สำหรับคำถามที่สร้างแถวว่างในฝั่งอิสระ

การรวมภายนอกด้านขวา ยังมีประโยชน์เมื่อคุณต้องการรวมตารางหนึ่งเข้ากับจุดตัดของตารางอื่นๆ จำนวนมาก

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

ความแตกต่างระหว่าง Join และ Union คือ Union ใช้เพื่อรวมชุดผลลัพธ์ของคำสั่ง SELECT สองชุดขึ้นไป

ในขณะที่การรวมรวมข้อมูลจากหลายตารางขึ้นอยู่กับเงื่อนไขที่ตรงกัน ข้อมูลที่รวมกันโดยใช้คำสั่งการรวมจะส่งผลให้เกิดคอลัมน์ใหม่

ข้อมูลที่รวมกันโดยใช้คำสั่ง Union ทำให้เกิดแถวใหม่ที่แตกต่างจากชุดที่มีจำนวนคอลัมน์เท่ากัน

ความคิดสุดท้าย

สรุปได้ว่า ไม่มีความแตกต่างระหว่าง การเข้าร่วมทางซ้ายและการเข้าร่วมทางซ้าย สิ่งนี้เป็นจริงสำหรับ Right Join และ Right Outer Join

ทั้ง 2 ปุ่มทำหน้าที่เหมือนกัน และ “ outer” เป็นเพียงคีย์เวิร์ดทางเลือกที่จะใช้ บางคนแนะนำให้ใช้เพราะเป็นการชี้แจงว่าคุณกำลังสร้างการรวมภายนอก

ดังนั้น ท้ายที่สุดแล้ว ไม่ว่าคุณจะระบุหรือไม่ก็ไม่แตกต่างกันแต่อย่างใด

บทความที่น่าสนใจอื่นๆ:

    คลิกที่นี่เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับความแตกต่างเหล่านี้ในแบบสรุปเพิ่มเติม

    Mary Davis

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