การฉายภาพและการเลือกคืออะไร?


94

อะไรคือความแตกต่างระหว่างการฉายภาพและการเลือก? ใช่ไหม:

  • การฉายภาพ -> สำหรับการเลือกคอลัมน์ของตาราง และ
  • การเลือก ---> เพื่อเลือกแถวของตาราง?

การฉายภาพและการเลือกมีการหั่นแนวตั้งและแนวนอนตามลำดับหรือไม่?

คำตอบ:


182

ตรง

การฉายภาพหมายถึงการเลือก คอลัมน์ (หรือนิพจน์) ที่แบบสอบถามจะส่งคืน

การเลือกหมายถึงแถวที่จะส่งคืน

ถ้าแบบสอบถามคือ

select a, b, c from foobar where x=3;

จากนั้น "a, b, c" คือส่วนของการฉายภาพโดยที่ x = 3 เป็นส่วนที่เลือก


3
อันที่จริงคำอธิบายที่ชัดเจน แต่ผมพบว่าลักษณะของ SQL สับสน / ทำให้เข้าใจผิดนี้คือSELECTประโยคจริงทำการฉาย (ไม่เลือก) และมันเป็นWHEREประโยคที่จริงจะดำเนินการคัดเลือก
flow2k

4
@ flow2k สังเกตดีๆ แต่อย่าโทษฉันนะ ;-)
Erich Kitzmueller

2
@ErichKitzmueller Ha - มั่นใจได้ว่าฉันไม่มีเจตนาเช่นนั้น บางครั้งฉันพบว่าการตกลง / ยอมรับประเด็นที่ละเอียดอ่อนเหล่านี้ของคำจำกัดความหรือไวยากรณ์ทำให้ฉันจำได้ดีขึ้น
flow2k

13

เพียงแค่PROJECTIONเกี่ยวข้องกับการกำจัดหรือการเลือกคอลัมน์ในขณะที่SELECTIONเกี่ยวข้องกับการลบหรือการเลือกแถว


6

การฉายภาพ:สิ่งที่เคยพิมพ์ในประโยคเลือกเช่น 'รายการคอลัมน์' หรือ '*' หรือ 'นิพจน์' ที่อยู่ระหว่างการฉายภาพ

* การเลือก: * ประเภทของเงื่อนไขที่เราใช้กับคอลัมน์นั้นเช่นการรับบันทึกที่อยู่ภายใต้การเลือก

ตัวอย่างเช่น:

  SELECT empno,ename,dno,job from Emp 
     WHERE job='CLERK'; 

ในข้อความค้นหาด้านบนคอลัมน์ "empno, ename, dno, job" ที่อยู่ภายใต้การฉาย "โดยที่ job = 'เสมียน'" อยู่ภายใต้การคัดเลือก


5

การคาดการณ์และการเลือกเป็นการดำเนินการสองชุดในพีชคณิตเชิงสัมพันธ์และมีการใช้งานจริงใน RDBMS (ระบบจัดการฐานข้อมูลเชิงสัมพันธ์)

ในทางปฏิบัติใช่ Projection หมายถึงการเลือกคอลัมน์เฉพาะ (แอตทริบิวต์) จากตารางและ Selection หมายถึงการกรองแถว (tuples) นอกจากนี้สำหรับตารางธรรมดาการฉายภาพและการเลือกสามารถเรียกได้ว่าเป็นการแบ่งส่วนหรือการกรองตามแนวตั้งและแนวนอน

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.