Konular

EBooklar

Dıstınct, ın, not ın, ınselect..., any, all, exısts, not exısts, unıon, except, between

DISTINCT(Farklı) Fonksiyonu:
Tablodaki seçilen fieldlerden bir adet seçer. Aynı değeri taşıyan diğer kayıtları eler.

Soru: Satış Tablosunda kaç farklı tarih te satış yapılmıştır?
Cevap: "Select DISTINCT (Tarih) from Satislar"

Count fonksiyonu DISTINCT ile birlikte kullanılabilir. Mesela.
Soru: Personel Tablosunda personellerin kaç farklı departmanda çalışmaktadır?
Cevap: "Select Count(DISTINCT depart) from personel"

IN:
Koşul belirtirken kullanırız. Mesela ismi AHMET, ALİ veya MUSTAFA olan işçilerin bilgilerini listelemek için

SELECT *
FROM ISCI
WHERE ISCI_ADI=’AHMET’ OR ISCI_ADI=’ALİ’ OR ISCI_ADI=’MUSTAFA’

şeklinde bir ifade kullanırız. Bunun yerine

SELECT *
FROM ISCI
WHERE ISCI_ADI IN (’AHMET’ ,’ALİ’ ,’MUSTAFA’)

ifadesini de kullanabiliriz. Yani listenin içindeki herhangi bir değerin bulunması kayıtın seçilmesi için yeterlidir.

NOT IN:
Soru: Personel Tablosunda bölüm kodu 3 ve 4 dışında ki personelleri listeleyin?
Cevap: "Select * from personel where bolum_kodu NOT IN(5,6,9)

BETWEEN:
BETWEEN ifadesini Where ile beraber kullanarak belli bir değer aralığındaki kayıtları getirebiliriz.
Soru: Ürün tablosunda Satış fiyatı 10000 ile 23000 arasında olan ürünleri listeleyin?
Cevap: "Select * from urun where S_Fiyat BETWEEN 10000 and 23000"

NOT BETWEEN:

Between ile belirtilen aralık dışında kalan verileri almak için NOT BETWEEN kullanılabilir.
Soru: Ürün tablosunda Satış departmanı 2 ile 6 arasında olmayan ürünleri listeleyin?
Cevap: "Select * from urun where depart NOT BETWEEN 2 and 6"

ANY (HER HANGİ BİRİ):

ÖRNEK: Satış bölümünde çalışan personelin her hangi birinden daha düşük maaş alan ve mühendislik bölümündeki kişileri listele.

SELECT *
FROM personel
WHERE brüt < ANY
(SELECT brüt
FROM personel
WHERE böl_no = 2) AND
böl_no =1;

Aynı ifade aşağıdaki gibi yazılabilir:

SELECT *
FROM personel
WHERE brüt < (SELECT MAX (brüt )
FROM personel
WHERE böl_no = 2) AND böl_no =1;

ALL (HEPSİ):
ÖRNEK: Satış bölümünde çalışan ve mühendislik bölümündeki personelin hepsinden daha fazla maaş alan personeli listele.Bu örnekte satış bölümü kodu = 2 ve mühendislik bölümü kodu = 1 alınmıştır.

SELECT *
FROM personel
WHERE brüt >
ALL (SELECT brüt
FROM personel
WHERE böl_no = 1)
AND böl_no = 2;

Aynı ifade aşağıdaki gibi yazılabilir:

SELECT *
FROM personel
WHERE brüt >
(SELECT MAX (brüt)
FROM personel
WHERE böl_no = 1)
AND böl_no =2;

EXISTS (MEVCUT):
ÖRNEK:
27 no’lu parçayı satan satıcılarla ilişkili tüm bilgileri listele.

SELECT *
FROM satıcı
WHERE EXISTS
(SELECT *
FROM par_sat
WHERE sat_no = satıcı_n
AND parça_n =27);

NOT EXISTS (MEVCUT DEĞİL):
ÖRNEK: 27 no’lu parçayı satmayan satıcılar kimlerdir?

SELECT *
FROM satıcı
WHERE NOT EXISTS
(SELECT *
FROM par_sat
WHERE sat_no = satıcı_n
AND parça_n =27);


EXCEPT (FARKLI):
Tablo-1 - Tablo-2 işlemi sonuç(iki kümenin farki) elde edilecek tabloda,Tablo-1’de bulunup, Tablo-2’de bulunmayan veriler mevcut olacaktir.
ÖRNEK: Satış bölümündeki personel adlarından,mühendislik bölümünde bulunmayanları listele.

SELECT * FROM
(SELECT ad FROM personel
WHERE bol_no=1
EXCEPT
SELECT ad FROM personel
WHERE bol_no =2);

UNION (BİRLEŞİM):
TANIM: İki ayrı SEÇ komutunun sonucunda elde edilen tabloların birleşimi işlemini gerçekleştirir.

ÖRNEK:
Adı Ahmet ve Soyadı Caner olan kişi yada kişileri işletmenin yürüttüğü projelerde çalışan bir kişi (sıradan bir personel yada bölüm yöneticisi)olarak bulunduran projelerin isimlerini ve projelerin yürütüldüğü yerleri listele.

(SELECT proj_ad,yer
FROM proj,bölüm,personel
WHERE bl_no=bölüm_no AND
y_sos gno = sosy_g_no
AND ad =”Ahmet”AND soyad =”Caner”)
UNION (SELECT proj_ad,yer
FROM proje,çalışma,personel
WHERE proj_no = proje_no AND
Per_s_g_no = sosy_g_no AND ad =”Ahmet”
AND soyad =”Caner”)

KOŞULLAR:

UNION (BİRLEŞİM) sözcüğü ile ,iki yada daha çok kişi SELECT ’in sonucu olan tabloların küme birleşimi işlemine tabi tutulması için 2 koşul gereklidir.
1) SELECT komutları sonucunda elde edilecek tablolar aynı sayıda kolon içermelidirler.
2)Sonuç tabloları karşılıklı olarak kolonların aynı veri tipi ve aynı genişlikte olmalıdır.

Düzenleyen:Burak Kaya
Kaynak:SQL PDF & www.sorucevap.com

Yorumunuzu Ekleyin


  • Veritabanı Nedir?
  • Veritabanı Nedir? ~ 108,617

    Veritabanı basit olarak bilgi depolayan bir yazılımdır. Bir çok yazılım bilgi depolayabilir ama aradaki fark, veritabanın bu bilgiyi verimli ve hizli bir şekilde yönetip degiştirebilmesidir. Veritabanı, bilgi sisteminin kalbidir ve etkili kullanmakla değer kazanır. Bilgiye gerekli oldugu zaman ulaşabilmek esastır. Indeksi olmayan bir kütüphane ve bütün kitapların ayni kapağa sahip oldugunu düşündüğünüzde kütüphane kullanıcılarının ne kadar çok işi olacağını tahmin edersiniz. Bir veritabani bir kütüphanenin mükemmel bir indeks sistemi oldugu gibi, aynı zamanda kütüphanenin kendisidir. İlişkisel veritabanı yönetim sistemleri relational database management systems - rdbms büyük miktarlardaki verilerin güvenli bir şekilde tutulabildiği, bilgilere hızlı erişim imkanlarının saglandığı, bilgilerin bütünlük içerisinde tutulabildigi ve birden fazla kullanıcıya aynı anda bilgiye erişim imkanının sağlandığı programlardır. Oracle veritabani da bir ilişkisel veri tabanı yönetim sistemidir.


  • Sql Komutları
  • Sql Komutları ~ 94,059

    Sql komutlarından DISTINCT, IN, NOT IN, IN(SELECT...), ANY, ALL, EXISTS, NOT EXISTS, UNION, EXCEPT, BETWEEN kullanımı












  • Join İşlemleri
  • Join İşlemleri ~ 31,077

    İlişkisel veritabanının en temelinde birden fazla tablo üstünde birlikte işlem yapabilmek yatar. Bu sayede verilerin tekrarlaması önlenmiş olur ve sonuçta veri yönetimi kolaylaşır.


  • View Oluşturma ~ 29,181

    Sql komutlarından view oluşturma ve faydaları, myadminde gösterimi

















  • Joinler
  • Joinler ~ 18,282

    Joinler, inner join, left join, right join