MS SQL SET OPERATORLARI
SET OPERATORLARI
Salam dostlar bu məqaləmizdə set operatorları haqqında danışacağıq.İlk öncə set operatorları nədir nə işi görür ondan bəhs edək.
SET OPERATORU NƏDİR?
İki ayrı ayrılıqda yazılmış sorğuların birləşdirilməsində,həmin sorğularda kəsişən sətirlərin seçilməsində,birinci cədvəldə olan ikinci cədvəldə olmayan istisna məlumatlərın seçilməsinə istifadə olunur.
Bir çox SQL-i öyrənməyə başlayan insanlar qarşısına çıxan hər nə yenilik gördükdə ilk verdikləri sual bunu harda istifadə edəcəm sualıdır.
Cavab çox asandır. İşdə : ) Bəli işdə istifadə edəcəksiniz : )
SET OPERATORU HANSILARDIR
1)UNION,
2)UNION ALL,
3)INTERSECT,
4)EXCEPT
UNION
Ilk öncə UNION haqqında danışaq.UNION operatoru iki ayrı ayrılıqda yazılmış sorğunu birləşdirdiyi zaman sorğunun hər ikisini dərhal birləşdirmir.Analiz edir və sorğuların getirdiyi neticənin içindən dublikat olan (sorğuda üst üstə düşən) sətirləri DISTINCT edərək sadəcə birini sorğuda əks etdirir.
Misalçün birinci yazilmış sorğunu SELECT etdikdə 50 sətir ikinci yazılmış sorğu isə 40 sətir getirir.UNION əməliyyatı aparılan zaman hər iki sorğuda üst üstə düşən sətirlər varsa (yəni dublikat sətir) UNION operatoru hemin üst üstə düşən sətirləri DISTINCT edərək sadəcə birini sorğuda əks etdirir. İki ayrılıqda yazılmış sorğunu UNION ilə birləşdirdiyimiz zaman əgər bir sətir üst-üstə düşürsə nəticə olaraq biz 90 yox 89 sətir məlumat əldə etmiş oluruq.
Gəlin çoxluqlar üzərində əməliyyat aparaq daha aydın başa düşək.
A={ 1,2,3.4.5 }
UNION
B={ 5,6,7,8,9 }
AB={ 1,2,3.4,5,6,7,8,9 }
Nümunədən göründüyü kimi A və B çoxluqları arasında sadəcə 5 elementi kəsişir.Birləşdirmə zamanı 5 elementini dublikat olsa belə iki dəfə əks etdirməli olduğumuz halda.UNION operatoru ilə dublikatin birini yığışdıraraq sadəcə birini əks etdirdik.Nəticə etibarı ilə iki çoxluğun elementləri birlikdə 10 element edirdisə biz dublikatın birini nəzərə almamaqla nəticə 9 element əldə etmiş olduq.
Nümünədən başa düşmüş oluruq ki UNION operatoru iki fərqli sorğuları birləşdirən zaman DISTINCT məntiqindən istifadə edərək təkrarlanan dəyərlərin sadəcə birimi əks etdirir.
UNION ALL
UNION ALL operatoru UNION kimi iki ayrı-ayrı sorğunu birləşdirir.UNION ALL operatoru UNION-dan fərqli olaraq dublikatları əks etdirir.Yeni iki ayrı sorğunu olduğu kimi birləşdirir.Dublikat dəyərləridə birləşdirir.Deyəkki birinci sorğuda 40 ikinci sorğuda 50 sətir var və istəyirikki iki ayri yazılmış sorğunu UNION ALL ilə birləşdirək.Nəticədə 90 sətir əldə etmiş olacağıq.UNION ALL heç bir şərti nəzərə almır,birinci sorguda olan sətir ikinci sorğudada varsa UNION kimi ixtisar etmir.olduğu kimi birləşdirir.Bildiyimiz kimi SQL predikatlar məntiqi və çoxluqlar nəzəriyyəsinə (set theory) əsaslanır.Çoxluqlar ilə nümünə göstərək aydın olsun.
C={ 5.4.3 }
UNION ALL
D={ 5,4.3 }
CD={ 5,5,4,4,3,3 }
Gördüyümüz kimi UNION ALL operatoru UNION-dan fərqli olaraq dublikat dəyərləri ixtisar etmir.İki sorğunu olduğu kimi birləşdirir.
INTERSECT
INTERSECT(kəsişmək) operatoru iki ayrı ayrılıqda yazılmış sorğulardan bir biriləri ilə kəsişənləri birləşdirir.Yəni birinci sorğuda olan dəyər ikinci sorğudada varsa deməli üst üstə düşən,kəsişən dəyər sayılır.Həmin dəyərlər sorğuda əks olunur.
Eyni qayda olaraq çoxluqlar üzərində nümunə göstərək.
C={ 1,3,5,7 }
INTERSECT
D={ 3,7,9 }
CD={ 3,7 }
Gördüyümüz kimi C ilə D çoxluqları arasında 3 və 7 elementi kəsişir.INTERSECT operatoru həmin kəsişən elementləri DISTINCT edərək sorğuda əks etdirir.
DISTINCT edərək birləşdirmə UNION–dakı məntiqə əsaslanır yəni 3 ilə 7, C və D çoxluğunda var.Nəzəri olaraq kəsişirlər.INTERSECT operatoru kesişən elementləri 3,3,7,7 kimi qeyd etməmək üçün DISTINCT məntiqindən istifadə edərək sadəcə olaraq 3,7 kimi (cəmi bir dəfə) sorğuda əks etdirir.
EXCEPT
EXCEPT operatoru başqa,istisna və s mənasını verir.İki ayrı sorğudan birincidə olan ikincidə olmayan dəyərləri əks etdirir.
Misalçün
C={ 1,2,3,4,5,6 }
EXCEPT
D={ 4,5,6 }
CD= { 1.2,3 }
Nümumədəndə gördüyümüz kimi 1,2,3 elementi C çoxluğunda var amma D çoxluğunda yoxdur.EXCEPT operatoru iki sorğuda birinci çoxluqda olan ikinci çoxluqda olmayan elementi (dəyərləri) əks etdirdi.Ona görədə EXCEPT (tərcümədə istisna,başqa mənası verən) operatoru istifadə olunur ki istisna olan dəyərlər əks olunsun.
Əziz dostlar bir məqalənin daha sonuna gəldik.Ümid edirəm aydın şəkildə izah verə bildim.
Məqsədimiz öz doğma dilimizdə vəsaitləri çoxaltmaq,bacardığımız və əsasda vaxtımızın olduğu qədər bildiklərimizdən paylaşmaq.
UĞURLAR!