Veritabanı SQL (Structured Query Language)
SQL (Structured Query Language) SQL, ilişkisel veritabanlarındaki bilgileri sorgulamak için kullanılan dildir. SQL, bütün kullanıcıların ve uygulamaların veritabanına erişmek için kullandıkları komutlar bütünüdür. Uygulama programları ve veritabanı araçları kullanıcılara çoğu durumda SQL kullanmadan veritabanına erişim imkanı sunmaktadırlar fakat bu uygulamalar da geri planda SQL kullanmaktadırlar. SQL komutları bir veya daha fazla satır olabilmektedir. SQL cümlelerinin sonuna noktalı virgül (;) konmaktadır. SQL deyimleri büyük-küçük harf ayırımından etkilenmez
SQL SQL deyimleri yazılırken aşağıdaki kurallar göz önünde bulundurulmalıdır; SQL deyimleri büyük-küçük harf ayrımından etkilenmez Bir SQL deyimi bir ya da birden fazla satırda yer alabilir. SQL anahtar kelimeleri kısaltılamaz ya da yarıda kesilerek ayrı satırlara bölünemez.
SELECT Deyimi SQL' de sorgulama işlemleri, SELECT deyimi kullanılarak yerine getirilir. Select [DISTINCT] {*, SÜTUN,..} From Tablo_adı Tablonun tüm sütunlarını seçmek için * kullanılır. Belirli sütunların seçilmesi için sütunların isimleri belirtilmelidir. Örnek : STOK tablosundaki tüm sütunları listelemek için, SELECT * FROM STOK;
SELECT Deyimi Örnek : OGRENCI tablosundaki OGR_NO, ADI sütunlarını listelemek için, SELECT OGR_NO, ADI FROM OGRENCI;
SELECT Deyimi Özellikle birden fazla tablo ile çalışıldığı durumlarda sütun isimleri tablo ismiyle birlikte kullanılır. Örnek : OGRENCI tablosundaki OGR_NO, OGRENCI tablosundaki OGR_AD sütunlarını listelemek için, SELECT OGRENCI. OGR_NO, OGRENCI.OGR_AD FROM OGRENCI;
Aritmetik İfadeler Aritmetik ifadeler sütun isimleri, sabit sayısal değerler ve aritmetik operatörlerden oluşur. Örnek : MAAS tablosunun UCRET adlı sütunundaki sayısal değeri 0.15 ile çarpmak için; SELECT AD, SOYAD, UCRET * 0.15 FROM MAAS; ifadesi yazılır. Bu ifade SELECT deyimi içerisinde yazıldığında ayrı bir sütun biçiminde oluşturulur.
NULL NULL değer var olmayan bir değer olarak kabul edilir. Eğer bir sütün NULL değerler içeriyorsa SELECT deyimi çalıştırıldığında bu değerler sıfır olarak değil, boş olarak görüntülenir. 12*Ucret + NULL NULL olur.
Sütunlar İçin Takma İsim Kullanılması ve İçeriklerin Birleştirilmesi Başlıkların alan adları dışında bir isimle görüntülenmesi için AS anahtar kelimesi kullanılır. Eğer takma isim birden fazla kelimeden oluşuyorsa çift tırnak (" ") işaretleri içerisinde yer almalıdır. Örnek : Örnek : SELECT ADSOYAD AS İSİM FROM MAAS; SELECT ADSOYAD AS İSİM, BRUT AS "BRÜT ÜCRET", 0.15*BRUT AS VERGİ FROM MAAS;
Sütun İçeriklerini Birleştirme Örnek : Sütün içeriklerini birleştirme için örnek. SELECT AD & "_" & SOYAD AS ISIM FROM OGRENCI
Tekrarlı Satırların Engellenmesi Aynı değerlere sahip satırlar tekrarlı olarak görüntülenir. Yani kayıt sayısı kadar satır görüntülenir. Tekrarlı satırların yalnızca bir tanesi listelenmek isteniyorsa SELECT deyimi DISTINCT anahtar kelimesi ile kullanılır. Örnek : Aynı BOLUM isimlerinden sadece birer tanesi listelenmek istenirse, SELECT DISTINCT BOLUM FROM OGRENCI;
Bilgilerin Koşula Bağlı Olarak Seçilmesi Belirli bir koşulu sağlayan kayıtların süzülmesi için WHERE Şart ifadesi kullanılır. Select [DISTINCT] {*, SÜTUN,..} FROM TABLO WHERE (ŞART); Örnek: Personeller arasında görevi memur olanları listeleyen SQL komutu; SELECT Adı, Gorev, Bolum_No FROM Personel WHERE Gorev= Memur ;
KARŞILAŞTIRMA OPERATÖRLERİ
İlişki Operatörleri Örnekler = eşit > büyük < küçük >= büyük eşit <= küçük eşit <> eşit değil SELECT Adı, Gorev, Ucret FROM Personel WHERE Ucret <=2500 SELECT Adı, Gorev, Ucret FROM Personel WHERE Gorev <> Memur
Mantıksal Operatörler AND (ve) : Her iki şartın değeri TRUE (doğru) ise, sonuç olarak TRUE (doğru) döndürür. OR (veya) : Şartlardan birinin değeri TRUE (doğru) ise, sonuç olarak TRUE (doğru) döndürür. NOT (değil) : Bu operatörü izleyen şart FALSE (yanlış) ise, sonuç olarak TRUE (doğru) döndürür.
Örnekler: Ücreti 1000' e eşit veya daha büyük ve işi MEMUR olan personeli listeleyen SQL ifadesi SELECT Adı, Gorev, Ucret FROM Personel WHERE Ucret >=1000 AND Gorev = Memur ; Ücreti 1000 den küçük ya da 2000 den büyük personeli listeleyen SQL ifadesi SELECT Adı, Gorev, Ucret FROM Personel WHERE Ucret <1000 OR Ucret > 2000; Mesleği Memur, Şef ya da Pazarlamacı OLMAYAN personeli listeleyen SQL ifadesi SELECT Adı, Gorev, Ucret FROM Personel WHERE Gorev NOT IN ( Memur, Sef, Pazarlamacı )
(Between... And...) Operatörü İki değer arasında kalanları seçme işleminde kullanılan ifadedir. Örnek : MAAS değerleri 1000 ile 1500 arasında olan kişileri listeleyen SQL ifadesi SELECT Adı, Maas FROM Bordro WHERE Maas BETWEEN 1000 AND 1500
(In) Operatörü Liste içindeki değerle karşılaştırma yaparak şartı gerçekleştirir. Örnek : BOLUM'ü BILGISAYAR, ENDUSTRI ve ELEKTRONIK olan öğrencileri seçen SQL ifadesi SELECT Adı, OgrNo, Bolumu FROM Ogrencı WHERE Bolumu IN ('BILGISAYAR', 'ENDUSTRI', 'ELEKTRONIK')
(Like) Operatörü Karakter grubu ile karşılaştırma yapmak için kullanılır. H%, H*: H harfi ile başlayanlar %A, *A : A ile bitenler %K% : İçinde K harfi bulunanlar Örnek : ADI H harfi ile başlayanlar seçilecektir. SELECT Adı, Bolumu, OgrNo FROM Ogrencı WHERE Adı LIKE H*
SIRALAMA Sıralama işlemi için SELECT ifadesinde ORDER BY kullanılır. Bu ifadede ASC kelimesi kullanılırsa sıralamanın küçükten büyüğe (A dan Z ye doğru), DESC kullanılırsa büyükten küçüğe doğru (Z den A ya doğru) olacağı belirtilmiş olur. Her ikisi de kullanılmazsa sıralama küçükten büyüğe doğru yapılır.
Örnekler Öğrenciyi numarasına göre sıralayan SQL ifadesi SELECT Adı, OgrNo, Bolumu FROM Ogrencı ORDER BY OgrNo Öğrencilerin ortalamasına göre büyükten küçüğe sıralanması isteniyor. SELECT Adı, OgrNo, Bolumu,Ortalama FROM Ogrenci ORDER BY Ortalama DESC
FONKSİYONLAR
AVG Fonksiyonu Herhangi bir sütunun sayısal değerlerinin aritmetik ortalamasını bulmak için kullanılır. Örnek: Öğrencilerin YAS ortalamasını bulmak SELECT AVG (YAS) AS ORTALAMA FROM OGRENCI; Örnek: Çalışan personelin içerisinde GOREV'i Memur' olanların ortalama Maaş'ını hesaplayan SQL ifadesi SELECT AVG(MAAS) AS ORTALAMA FROM PERSONEL WHERE GOREV= MEMUR';
SUM Fonksiyonu Herhangi bir sütunun sayısal değerlerin toplamını bulur. Örnek: Burs alan Öğrencilerin BURS toplamını hesaplayan SQL ifadesi SELECT SUM (BURS) AS TOPLAM FROM OGRENCI;
MAX ve MIN Fonksiyonları Herhangi bir sütunun içerdiği değerlerin en büyük (MAX) ve en küçük (MIN) olanlarını bulmak için kullanılır. Örnek: Bölümün en yaşlı öğrencisini bulmak için yazılacak SQL cümlesi SELECT MIN(DOGUMTAR) AS [EN YASLI] FROM OGRENCI
COUNT Fonksiyonu Bir tablodaki kayıtların sayılması amacı ile bu fonksiyon kullanılır. COUNT (*) : Bu fonksiyon NULL değerleri de göz önüne alarak tüm kayıtların sayılmasını sağlar. COUNT (sütun): Fonksiyon bu tarzda kullanılırsa belirtilen sütunda NULL değerler içermeyen tüm kayıtların sayılmasını sağlar.
Örnekler OGRENCI tablosunda kaç kayıt bulunduğunu belirleyen SQL ifadesi SELECT COUNT(*) AS [KAYIT SAYISI] FROM OGRENCI; BİLGİSAYAR bölümünde kaç öğrenci olduğunu bulan SQL ifadesi SELECT COUNT (*) AS "KAYIT SAYISI" FROM OGRENCI WHERE BOLUM= 'BİLGİSAYAR'; Komisyon alan personel sayısını bulan SQL ifadesi SELECT COUNT (KOMİSYON) AS "KOMİSYON ALAN PERSONEL" FROM PERSONEL;