ความแตกต่างระหว่าง JOIN และ UNION ใน SQL
เนื้อหา
เข้าร่วมและยูเนี่ยนเป็นประโยคใน SQL ที่ใช้ในการรวมข้อมูลของความสัมพันธ์สองคนหรือมากกว่า แต่วิธีที่พวกเขารวมข้อมูลและรูปแบบของผลลัพธ์ที่ได้นั้นแตกต่างกัน เข้าร่วม ข้อรวมคุณสมบัติของสองความสัมพันธ์เพื่อสร้างผลลัพธ์ tuples ในขณะที่ ยูเนี่ยน ข้อรวมผลของสองแบบสอบถาม ให้เราคุยถึงความแตกต่างระหว่าง JOIN และ UNION ด้วยความช่วยเหลือของแผนภูมิเปรียบเทียบที่แสดงด้านล่าง
- แผนภูมิเปรียบเทียบ
- คำนิยาม
- ความแตกต่างที่สำคัญ
- ข้อสรุป
แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | เข้าร่วม | ยูเนี่ยน |
---|---|---|
ขั้นพื้นฐาน | เข้าร่วมรวมคุณลักษณะของสิ่งอันดับที่มีอยู่ในความสัมพันธ์ที่แตกต่างกันสองรายการที่ใช้ร่วมกันบางสาขาหรือคุณลักษณะ | ยูเนี่ยนรวม tuples ของความสัมพันธ์ที่มีอยู่ในแบบสอบถาม |
เงื่อนไข | เข้าร่วมใช้งานได้เมื่อความสัมพันธ์ที่เกี่ยวข้องสองรายการมีแอตทริบิวต์ทั่วไปอย่างน้อยหนึ่งรายการ | UNION สามารถใช้งานได้เมื่อจำนวนคอลัมน์ที่มีอยู่ในแบบสอบถามเท่ากันและแอตทริบิวต์ที่เกี่ยวข้องมีโดเมนเดียวกัน |
ประเภท | ภายในเต็ม (ด้านนอก) ซ้ายเข้าร่วมขวาเข้าร่วม | ยูเนี่ยนและยูเนี่ยนทั้งหมด |
ผล | ความยาวของสิ่งอันดับทูเปิลเป็นมากกว่าเมื่อเปรียบเทียบกับความยาวของทูเปิลของความสัมพันธ์ที่เกี่ยวข้อง | จำนวนของสิ่งอันดับทูเพิลนั้นมากกว่าเมื่อเปรียบเทียบกับจำนวนของสิ่งอันดับในแต่ละความสัมพันธ์ที่เกี่ยวข้องในแบบสอบถาม |
แผนภาพ |
|
คำจำกัดความของการเข้าร่วม
เข้าร่วม ส่วนใน SQL รวม tuples จากสองความสัมพันธ์หรือตารางที่ทำให้ขนาด tuple อีกต่อไป tuple ที่เป็นผลลัพธ์มีแอตทริบิวต์จากทั้งความสัมพันธ์ คุณสมบัติจะรวมกันตามคุณลักษณะทั่วไประหว่างพวกเขา JOIN ประเภทต่าง ๆ ใน SQL คือ เข้าร่วมภายในซ้ายเข้าร่วมขวาเข้าร่วมเต็มด้านนอก
เข้าร่วมภายใน รวม tuples จากทั้งสองตารางตราบใดที่มีแอตทริบิวต์ร่วมกันระหว่างทั้งสอง เข้าร่วมซ้าย ผลลัพธ์ใน tuples ทั้งหมดของตารางด้านซ้ายและ tuple ที่ตรงกันจากตารางด้านขวา เข้าร่วมถูกต้อง ผลลัพธ์ใน tuples ทั้งหมดจากตารางด้านขวาและเฉพาะ tuple ที่ตรงกันจากตารางด้านซ้าย เข้าร่วมเต็มรูปแบบนอก ผลลัพธ์ใน tuples ทั้งหมดจากทั้งตารางแม้ว่าพวกเขาจะมีคุณลักษณะที่ตรงกันหรือไม่
เข้าร่วมภายในเหมือนกับ JOIN นอกจากนี้คุณยังสามารถวางคำหลักภายในและใช้ JOIN เพื่อดำเนินการเข้าร่วมภายใน
คำจำกัดความของ UNION
UNION เป็นชุดการดำเนินการใน SQL UNON รวมผลลัพธ์ของแบบสอบถามสองรายการ ผลลัพธ์ของ UNION รวมถึงสิ่งอันดับจากทั้งความสัมพันธ์ที่มีอยู่ในแบบสอบถาม เงื่อนไขที่ต้องทำให้เป็นที่พอใจก็คือยูเนี่ยนของสองความสัมพันธ์คือ:
- ความสัมพันธ์ทั้งสองจะต้องมีคุณลักษณะจำนวนเดียวกัน
- โดเมนของแอตทริบิวต์ที่เกี่ยวข้องจะต้องเหมือนกัน
ยูเนี่ยนมีสองประเภทนั่นคือ ยูเนี่ยน และ ยูเนี่ยนทั้งหมด. ผลลัพธ์ที่ได้รับโดยใช้ UNION จะไม่รวมรายการที่ซ้ำกัน ในทางกลับกันผลลัพธ์ที่ได้จากการใช้ UNION ALL จะคงไว้ซึ่งความซ้ำซ้อน
- ความแตกต่างหลักระหว่าง JOIN และ UNION คือ JOIN รวม tuples จากสองความสัมพันธ์และ tuples ที่เป็นผลลัพธ์รวมถึงคุณลักษณะจากทั้งความสัมพันธ์ ในทางตรงกันข้ามยูเนี่ยนรวมผลลัพธ์ของแบบสอบถามแบบใช้เลือกข้อมูลสองคำ
- อนุประโยค JOIN ใช้ได้เฉพาะเมื่อความสัมพันธ์ทั้งสองที่เกี่ยวข้องมีอย่างน้อยหนึ่งแอตทริบิวต์ที่พบได้ทั่วไปในทั้งสอง ในทางตรงกันข้ามยูเนี่ยนจะใช้งานได้เมื่อความสัมพันธ์ทั้งสองมีจำนวนของคุณลักษณะที่เท่ากันและโดเมนของคุณลักษณะที่สอดคล้องกันจะเหมือนกัน
- มีสี่ประเภทของการเข้าร่วมภายในเข้าร่วมซ้ายเข้าร่วมขวาเต็มเข้าร่วม แต่มีสองประเภทของยูเนี่ยนยูเนี่ยนและยูเนี่ยนทั้งหมด
- ใน JOIN ผลลัพธ์ tuple มีขนาดที่ใหญ่กว่าเนื่องจากมีแอตทริบิวต์จากทั้งความสัมพันธ์ ในอีกทางหนึ่งในยูเนี่ยนจำนวนของสิ่งอันดับจะเพิ่มขึ้นเนื่องจากผลรวมถึงสิ่งอันดับจากทั้งความสัมพันธ์ที่มีอยู่ในแบบสอบถาม
สรุป:
ทั้งการดำเนินการรวมข้อมูลที่ใช้ในสถานการณ์ที่แตกต่างกัน เข้าร่วมจะใช้เมื่อเราต้องการที่จะรวมคุณสมบัติของสองความสัมพันธ์ที่มีอย่างน้อยหนึ่งคุณลักษณะที่เหมือนกัน ยูเนี่ยนจะใช้เมื่อเราต้องการรวม tuples ของความสัมพันธ์ทั้งสองที่มีอยู่ในแบบสอบถาม