ben

OMÜ , Bilgisayar Mühendisliği, 13'

3 Mart 2022 Perşembe

Sorgu birleştirme işlemleri

 Birbiri ile bağlantısı bulunmayan iki tablodan yada iki veri kümesindeki verileri tek küme halinde birleştirmek için kullanılan yöntemdir. Bunun için dikkat etmeniz gerekenler;

* Her iki sorgunun select ile gösterilecek alan sayısı aynı olmalıdır.
* Her iki sorgunun gösterilecek alanların sırası ve her birinin veri türü aynı olmalı
* Sorgularda üretilmiş alan var ise as ile isim verilmeli
* Her bir sorguyu parantez içine almak faydalı olacaktır.


Burada her bir ifade için dvdrental veritabanı üzerinden örnekle anlatmaya çalışalım. Birinci veri kümesi oyuncu(actor) tablosundaki firstname||' '||lastname ifadesiyle elde ettiğimiz oyuncu isism listesidir. İkinci veri kümesi ise kullanıcılar(customer) veri kümesindeki firstname||' '||lastname  ifadesiyle elde ettiğimiz kullanıcı isim listesidir. Örneğin hem oyuncu hemde kullanıcı olanları getirin dediğimizde intersect kullanmamız gerekiyor.

1. UNION

Kullanıcılar ile oyuncuların isimlerini tekrar etmeyecek şekilde getirmek için union kullanmamız gerekiyor.

select first_name || ' '||last_name as isim_listesi from actor
union
select first_name || ' '||last_name as isim_listesi from customer




2. UNİON ALL

Kullanıcılar ile oyuncuların isimlerini tekrarlı olacak şekilde getirmek için union all kullanmamız gerekiyor.

select first_name || ' '||last_name as isim_listesi from actor
union all
select first_name || ' '||last_name as isim_listesi from customer



3. INTERSECT

Hem kullanıcı olan hem de oyuncu olanların isim listesi için intersect kullanmalıyız.

select first_name || ' '||last_name as isim_listesi from actor
intersect
select first_name || ' '||last_name as isim_listesi from customer



4. EXCEPT

Burada ilk verilen veri kümesinde olan fakat ikinci veri kümesinde olmayan veriler için except kullanmamız gerekiyor. Örneğin sadece oyuncu olanlar için oyuncu tablosu ilk sırada kullanıcı tablosu ikici sırada verilmesi gerekir.

select first_name || ' '||last_name as isim_listesi from actor
except
select first_name || ' '||last_name as isim_listesi from customer



Sadece kullanıcı olanlar için;

select first_name || ' '||last_name as isim_listesi from customer
except
select first_name || ' '||last_name as isim_listesi from actor




Hiç yorum yok: