Кіріспе

SQL-дегі операция түрі SQL-дегі операциялар жиынтығы - бірнеше сұранымдардың нәтижелерін бір нәтиже жиынтығына біріктіруге мүмкіндік беретін операциялардың түрі. SQL-дегі жиынтық операторларға математикалық тұрғыдан союз, қиылысу және жиынтық айырмашылық тұжырымдамаларына сәйкес келетін UNION, INTERSECT және EXCEPT жатады.

UNION операторы

SQL-де UNION сөйлем екі SQL сұранысының нәтижелерін барлық сәйкес келетін жолдардың бір кестесіне біріктіреді. Екі сұраныс біріктіру үшін бірдей саны бар бағандар мен үйлесімді деректер түрлерін беруі тиіс. UNION ALL қолданбаған жағдайда, қайталанған жазбалар автоматты түрде жойылады. UNION кестелер толық нормаланған емес деректер қоймасы қолданбаларында пайдалы болуы мүмкін. Қарапайым мысал: sales2005 және sales2006 кестелері бар, бірақ бір-бірінен айырмашылығы бар, бірақ өнімділік жағынан бөлек деректер базасы. UNION сұранысы екі кестеден де алынған нәтижелерді біріктіруі мүмкін. UNION ALL жолдардың ретін кепілдендіре алмайды. Екінші операндтың жолдары бірінші операндтың жолдарымен бірге, алдында немесе кейін пайда болуы мүмкін. Белгілі бір тәртіпті қажет ететін жағдайларда ORDER BY қолданылуы тиіс. UNION ALL жай UNION- ға қарағанда әлдеқайда жылдам болуы мүмкін екеніне назар аударыңыз.

INTERSECT операторы

SQL INTERSECT операторы екі сұраныстың нәтижелерін алады және екі нәтиже жиынтығында да пайда болатын жолдарды ғана қайтарады. Қалталауды жою мақсатында INTERSECT операторы NULL-тер арасында айырмашылық жасамайды. INTERSECT операторы соңғы нәтижелер жиынтығынан қайталанған жолдарды алып тастайды. INTERSECT ALL операторы соңғы нәтижелер жиынтығынан қайталанған жолдарды алып тастамайды, бірақ егер бір жол бірінші сұрауда X рет, ал екіншісі Y рет пайда болса, ол нәтижелер жиынтығында бірнеше рет пайда болады.

Операторды қоспағанда

SQL EXCEPT операторы бір сұраныстың бөлек жолдарын алады және екінші нәтижелер жиынтығында пайда болмаған жолдарды қайтарады. Жолдарды жою және қайталануды жою мақсатында EXCEPT операторы NULL-тер арасында айырмашылық жасамайды. EXCEPT ALL операторы қайталануды алып тастамайды, бірақ егер бір жол бірінші сұрауда X рет, ал екіншісі Y рет пайда болса, ол нәтиже жиынтығында бірнеше рет пайда болады. Oracle платформасы SQL стандарты EXCEPT DISTINCT операторына функционалдық жағынан баламалы MINUS операторын ұсынады.