Veri Tabanı Yönetim Sistemleri Sunumlarımızı yayınlamıştık. VTYS-3 Slaytı SQL adına mükemmel bilgiler ve rahatlıklar sağlasada tabloları uygulamalı olarak simple join konusuna kadar elimden geldiğince anlatmak istedim.
Bir veritabanımız olduğunu varsayarak bir tablo oluşturma örneği ile başlayalım.
Öncellikle yapmak istediğimiz içinde “Öğrenci Numarası“, “Ad“, “Soyad” ve “Not Ortalaması” verilerinin tutulduğu OGRENCI adında bir tablo oluşturmak ve tabloda ki bu sütunlar sırasıyla numaralar, harfler, harfler ve numaralardan oluşan veriler ile doldurulacak.
CREATE TABLE OGRENCI
(
OGRENCI_NO INTEGER NOT NULL,
AD VARCHAR(20) NOT NULL,
SOYAD VARCHAR(20) NOT NULL,
ORTALAMA INTEGER,
PRIMARY KEY (OGRENCI_NO)
);
PRIMARY KEY ile Öğrenci Numarası bilgilerinin aynı şekilde girilmesi önlenir. NOT NULL ile ise bu tabloya veri girilirken o sütunun hiç bir şekilde boş bırakılmaması sağlanır. Oluşturduğumuz yukarıdaki tabloda öğrenci numarası, ad, soyad değerleri boş geçilemezken, ortalama adlı sütun boş bırakılabilir.
ALTER ifadeleri ise CREATE yaparak oluşturduğumuz tabloda bir değişiklik yapmak istediğimizde ekleme çıkarma işlemlerini sütunlarda Aşağıdaki ilk örnekde OGRENCI tablomuza bir MEMLEKET Sütunu ekledik. (Niye integer arkadaş diyen çıkabilir? Plaka Kodu girilecek oraya 🙂 ) İkinci örnekte ise yukarıda CREATE ifadesinde oluşturduğumuz SOYAD sütununu tablomuzdan çıkarıyoruz. yapabildiğimiz bir işlemdir.
ALTER TABLE OGRENCI
ADD MEMLEKET INTEGER
ALTER TABLE OGRENCI
DROP SOYAD
DROP ifadeleri ise Tablolarımızı kaldırmamızda kullanılır(Aşağıdaki örnekte).
DROP TABLE OGRENCI
Tablolarımızı sütunlarını oluşturduk,bu sütunlara girilecek değerlerimizCREATE ile tablomuzu oluştururken girdiğimiz sütun isimlerinin sırasıyla veriler girilir. integer değerler tırnaksız varchar değerler tırnaklar içinde yazılır.
INSERT INTO OGRENCI
VALUES(001,‘HUSEYIN’,‘SIRMALI’,09)
Zamanında alter ile değiştirdiğimiz, düzelttiğimiz veriler, satırlarda ise UPDATE sorgusu ile sağlanır. Aşağıda Öğrenci numarası 001 olan öğrencinin soyadını değiştirdik.
UPDATE OGRENCI
SET SOYAD=’SORUSORMAMALI’ WHERE OGRENCI_NO=001
Aşağıda ise yine verileri girilmiş bir tabloda soyadı DOGUMGUNU olan kaydın ve öyle ne kadar soyad varsa hepsinin kaydını silmeyi görüyoruz.
DELETE FROM OGRENCI
WHERE SOYAD=’DOGUMGUNU’
Select ifadeleri ise tablolarımızdaki verilerimizi istediğmiz gibi göstermemizi onları isteidğimiz kriterlerde görmemizi sağlarlar. Aşağıdaki örnekte * ifadesi ile Ogrenci tablosunun her şeyi gösterilir. bütün sütunlar ve içlerindeki tüm veriler ile birlikte.
SELECT * FROM OGRENCI
Hani biraz önce dediğim gibi, select ifadeleri istediğimiz şekilde görmemizi de sağlıyor. DISTINCT ise istediğimiz verilerde aynı veriye sahip kayıtları bir tane göstermeye yarar. Aşağıda OGRENCI tablosunda tüm adlar gösterilecek ama Ahmet adında 5 kişi varsa bu bir tane gösterilecektir.
SELECT DISTINCT AD FROM OGRENCI
WHERE ile aradığımız kriter sağlanır. kriterimiz Adın Hüseyin olması burada. Böylece adı hüseyin olanların ortalamalarını görebiliyoruz.
SELECT ORTALAMA FROM OGRENCI WHERE AD=’HUSEYIN’
Bir başka where ifademizde ise ortalaması 30 dan düşük olanların adlarını görmemizi sağlayan ifade aşağıdadır.
SELECT AD FROM OGRENCI WHERE ORTALAMA < 30
Burada ise ortalaması 9 ve 90 arasında olan (9 ve 90 dahil) ogrencılerin adlarını getir diyoruz. Fakat, DISTINCT ifadesi orada aynı isimdekileri bir tane gösterecektir.
SELECT DISTINCT AD FROM OGRENCI WHERE ORTALAMA BETWEEN 9 AND 90
LIKE ifadeleri ise genellikle isimlerde ve yazılarda bir arama motoru niteliğindedir içerisinde istediğiniz harfleri, hatta kaçıncı harf olduğuna kadar bulup gösterebilceğiniz ifadeleri sağlar.
Aşağıda adında a harfi geçen öğrenci tablosundaki ad ve ortalama listesini gösterecek ifade vardır.
SELECT ORTALAMA, AD FROM OGRENCI WHERE AD LIKE ‘%a%’
ORDER BY ifadeleri ise verileri hangi sıralamada olacağını sağlayan sorgudur. Yani order by ortalama ortalamaya göre sıralar. buda SQL in order by siz iafedelrde veiriyi giriş tarihine göre sıralamasını değiştirir. Küçükten Büyüğe Büyükten Küçüğe sıralayablir.
SELECT ORTALAMA, AD FROM OGRENCI ORDER BY ORTALAMA DESC
Aşağıda yeni bir tablo oluşturup ilk yaptığımız ve bu yaptığımız tabloları ilişkilendirip 2 alakasız tabloyu alakalıymış gibi gösterebileceğiz.
CREATE TABLE UAK(
OGRENCI_NO INTEGER NOT NULL,
ETKINLIK INTEGER NOT NULL,
GOREVI VARCHAR(26) NOT NULL,
PRIMARY KEY (OGRENCI_NO)
)
INSERT INTO UAK
VALUES(002, 2, ‘UYE’)
İşte burada tablolar biribiyle kod bakımından ve sql bakımından bağlanmasada bir select yani gösterme sorgusu olduğu için iki tablo arasında OGRENCI_NO üzerinden bir bağlantı kurup iki tablodan sütunları aynı tablodaymış gibi gösterbildik.
SELECT OGRENCI.OGRENCI_NO,AD,SOYAD,ETKINLIK
FROM OGRENCI, UAK
WHERE OGRENCI.OGRENCI_NO=UAK.OGRENCI_NO
Umarım memnun kalmışınızdır.