ข้อใดเติมข้อความ “ห้ามจำแบบเหมารวมว่า TRUNCATE ‘Rollback ไม่ได้เสมอ’” ให้สมบูรณ์และถูกต้อง
กเงื่อนไขของตารางฝั่งที่อาจเป็น NULL หากวางใน WHERE อาจตัดแถวที่ไม่จับคู่ออกจนผลเหมือน INNER JOIN แต่ถ้าวางใน ON จะควบคุมการจับคู่โดยยังเก็บแถวหลักของ Outer join ไว้
ขSELECT e.employee_id, e.name, d.department_name FROM employees e LEFT JOIN departments d ON d.department_id = e.department_id จะเก็บพนักงานทุกคน แม้ไม่มีแผนกที่จับคู่ได้
คMySQL 8.4 ระบุว่า TRUNCATE ทำ implicit commit และ rollback แบบ DML ไม่ได้ ขณะที่ PostgreSQL รองรับ TRUNCATE ภายในธุรกรรมและย้อนกลับได้หากธุรกรรมไม่ COMMIT
งROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC, employee_id) ให้ลำดับเงินเดือนภายในแต่ละแผนก Window functions ทำงานเชิงตรรกะหลัง WHERE/GROUP BY/HAVING
เฉลยอธิบาย
หลักฐานส่วนที่ 2: หมวดคำสั่ง SQLระบุข้อความเต็มว่า “ห้ามจำแบบเหมารวมว่า TRUNCATE ‘Rollback ไม่ได้เสมอ’: MySQL 8.4 ระบุว่า TRUNCATE ทำ implicit commit และ rollback แบบ DML ไม่ได้ ขณะที่ PostgreSQL รองรับ TRUNCATE ภายในธุรกรรมและย้อนกลับได้หากธุรกรรมไม่ COMMIT” ดังนั้นคำตอบคือ “MySQL 8.4 ระบุว่า TRUNCATE ทำ implicit commit และ rollback แบบ DML ไม่ได้ ขณะที่ PostgreSQL รองรับ TRUNCATE ภายในธุรกรรมและย้อนกลับได้หากธุรกรรมไม่ COMMIT” ส่วนตัวเลือกอื่นเป็นหลักของคนละเงื่อนไขหรือคนละประเด็น