SUNGURLU MESLEK YÜKSEKOKULU BİLGİSAYAR TEKNOLOJİLERİ/BİLGİSAYAR PROGRAMCILIĞI 2017-2018 GÜZ DÖNEMİ VERİ TABANI YÖNETİM SİSTEMLERİ-II 5. T-SQL-2 Öğr. Gör. Saliha Kevser KAVUNCU
Sql Üç Alt Grupta İncelenir: 2. DML (Data Manipulation Language) Veri tabanı içindeki verileri sorgulamak ve üzerlerinde işlem yapabilmek amacıyla kullanılır. SELECT INSERT UPDATE DELETE
1. SELECT SQL'de sorgulama işlemleri, SELECT deyimi yardımıyla yerine getirilir. SELECT deyimi temel olarak üç farklı işlemi yerine getirmek için kullanılır: Seçme İşlemi (Select): Bir tablodaki satırları seçme işlemidir. Bunun için çeşitli seçme kriterleri kullanılabilir. Atma İşlemi (Projection): Bir tablodaki belirli sütunların seçilmesi işlemidir. Birleştirme İşlemi (Join): Bir tablonun içinde yer alan sütunların (ya da birden fazla tablonun belirlenen sütunlarının ilişkiler yardımıyla) birleştirilmesi.
SELECT Eğer bütün alanlardan veri çekeceksek, Select ifadesinden sonra * işareti konulur. Böylece bütün alanlardan veri çekileceği belirtilmiş olunur. Create Table Kullanım Biçimi: SELECT * FROM tablo_adi Örnek: Select FROM Ogrenci
Örnek Öğrenci Tablosu (ogrenci) SELECT Bir tablonun tüm satırlarını ve sütunlarını seçmek sirano ogrencino ad soyad eposta 1 345627 Ahmet Dervek ahmet@dervek.com 2 567483 Deniz Kulcu deniz@kulcu.net 3 785942 Ebru Gündüz ebru@gunduz.org SELECT * FROM ogrenci; veya SELECT * FROM ogrenci; sirano ogrencino ad soyad eposta 1 345627 Ahmet Dervek ahmet@dervek.com 2 567483 Deniz Kulcu deniz@kulcu.net 3 785942 Ebru Gündüz ebru@gunduz.org
SELECT Eğer birkaç tane alanlardan veri çekeceksek, Select ifadesinden sonra alanları virgüller ayırarak yazarız. Create Table Kullanım Biçimi: SELECT alan_adi1, alan_adi2 FROM tablo_adi Örnek: SELECT Adi_soyadi, Bolum FROM Ogrenci
SELECT Bir tablonun belirli sütunlarını seçmek Örnek Öğrenci Tablosu (ogrenci) sirano ogrencino ad soyad eposta 1 345627 Ahmet Dervek ahmet@dervek.com 2 567483 Deniz Kulcu deniz@kulcu.net 3 785942 Ebru Gündüz ebru@gunduz.org SELECT ad, soyad, eposta FROM ogrenci; ad soyad eposta Ahmet Dervek ahmet@dervek.com Deniz Kulcu deniz@kulcu.net Ebru Gündüz ebru@gunduz.org
Aritmetik ifadelerin kullanımı Örnek Öğrenci Tablosu (ogrenci) sirano ogrencino ad soyad vize 1 345627 Ahmet Dervek 15 2 567483 Deniz Kulcu 12 3 785942 Ebru Gündüz 6 SELECT ad, soyad, vize * 5 FROM ogrenci; ad soyad vize * 5 Ahmet Dervek 75 Deniz Kulcu 60 Ebru Gündüz 30
Aritmetik İfadelerde işlem sırası: * / + - Örnek Öğrenci Tablosu (ogrenci) sirano ogrencino ad soyad vize 1 345627 Ahmet Dervek 15 2 567483 Deniz Kulcu 12 3 785942 Ebru Gündüz 6 SELECT ad, soyad, vize * (5 + 10) FROM ogrenci; ad soyad vize * 5 + 10 Ahmet Dervek 85 Deniz Kulcu 70 Ebru Gündüz 40
Aritmetik İfadelerde Parantez Kullanımı Parantezler, aritmetik ifadeler içinde diğer tüm işleçlere göre bir önceliğe sahiptir. Önce parantez içindeki işlemler gerçekleştirilir. Örnek Öğrenci Tablosu (ogrenci) ad soyad aylikyardim Ahmet Dervek 500 Deniz Kulcu 600 Ebru Gündüz 700 SELECT ad, soyad, 12 * yardim + 100 FROM ogrenci; Örnek Öğrenci Tablosu (ogrenci) ad soyad aylikyardim Ahmet Dervek 500 Deniz Kulcu 600 Ebru Gündüz 700 SELECT ad, soyad, 12 * (yardim + 100) FROM ogrenci; ad soyad aylikyardim Ahmet Dervek 6100 Deniz Kulcu 7300 Ebru Gündüz 8500 ad soyad aylikyardim Ahmet Dervek 7200 Deniz Kulcu 8400 Ebru Gündüz 9600
Bir tablonun belirli sütunları birleştirmek Örnek Öğrenci Tablosu (ogrenci) sirano ogrencino ad soyad eposta 1 345627 Ahmet Dervek ahmet@dervek.com 2 567483 Deniz Kulcu deniz@kulcu.net 3 785942 Ebru Gündüz ebru@gunduz.org SELECT CONCAT(ad, soyad) AS adisoyadi FROM ogrenci; adisoyadi AhmetDervek DenizKulcu EbruGündüz SELECT CONCAT(ad,, soyad) AS adisoyadi FROM ogrenci; adisoyadi Ahmet Dervek Deniz Kulcu Ebru Gündüz
Bir SELECT deyimi çalıştırıldığında, aynı değerlere sahip satırların görüntülenmesi engellenemez. Tekrar eden bu değerlerden sadece bir tanesinin görüntülenmesi hedefleniyorsa SELECT deyimi DISTINCT ifadesi ile birlikte kullanılır Öğrenci Tablosu (ogrenci) ad soyad semt Oktay Bağcı Cebeci Hakan Ars Etlik İbrahim Bağcı Etlik Halil Bağcı Etlik Savaş Özbek Balgat Tolga Ergin Balgat Erkin Şahin Cebeci Hakan Kuşçu Emek SELECT semt FROM ogrenci; SELECT DISTINCT semt FROM ogrenci; semt Cebeci Etlik Etlik Etlik Balgat Balgat Cebeci Emek semt Cebeci Etlik Balgat Emek
1. INSERT INSERT INTO ifadesi tablomuza yeni bir kayıt eklemek için kullanılır. Insert Into kodu iki türlü kullanılabilir. Birinci yöntem: Bu yöntemde direk tablo adı belirterek sadece değerleri yazmak surtiyle kayıt ekleyebiliriz. Ancak burada dikkat edeceğimiz nokta eklenecek değer tablomuzdaki alan sırasına göre olmalıdır. Mesele tablomuzdaki alan sıralaması Ad, Soyad, ve Dogum_yili seklinde olsun. Values ifadesinden yazılacak değerler sırası ile işlenir. Karışık yazdığımız zaman, Dogum_yili alanı sayısal bir alan ise metinsel veri girilemeyeceği için programımız hata verecektir. Veya sıralamya dikkat etmezsek bilgilerimiz olması gerek alana yazılmaz. Örnek: INSERT INTO Personel VALUES (3, 'Serkan ÖZGÜREL', 'Erzincan', 'Muhasebe', 3456789) Öğr. Gör. Saliha Kevser KAVUNCU
Önceki slaytta görüldüğü gibi tablomuza yeni bir kayıt ekleme kodunu yazdık. Alan adlarını sırası ile kontrol ettik ve değerlerimizi sıraya dikkat ederek girdik. Metin karakterli alanlara veri eklenirken tek tırnak işareti kullanılır. Sayısal alanlara veri eklerken ifade direk olarak yazılır. Bazı veritbanı editörleri sayısal alana veri girerken de te tırnak işareti içinde yazımı kabul etmektedir. Örnek: INSERT VALUES INTO Personel (id, adi_soyadi, sehir) (3, 'Serkan ÖZGÜREL', 'Erzincan') Bu kod ile tablomuza sadece 3 alan için yeni kayıt eklenir. Öğr. Gör. Saliha Kevser KAVUNCU
UPDATE ifadesi tablomuzda bulunan kayıtları güncellemek yani değiştirmk için kullanılır. Burada dikkat edilecek nokta WHERE ifadesi ile belli bir kayıt veya kayıtlar seçilip değiştirilmek istenilen alanlardaki değerler değiştirilir. Eğer WHERE ifadesini kullanmadan yaparsak tablodaki bütün kayıtları değiştirmiş oluruz. Kullanım Biçimi UPDATE tablo_adi 3. UPDATE SET alan_adi1=deger1, alan_adi2=deger2, alan_adi3=deger3,...) WHERE secilen_alan_adi=alan_degeri
3. UPDATE Örnek: UPDATE Personel SET Sehir='Ankara',Meslek_kodu=5555555 WHERE id=3 Tablomuzda bulunan kayıtlarda WHERE ifadesi ile id alanında 3 yazan kaydı seçmiş olduk. İlgili kaydın Sehir alanını Ankara ve Meslek_kodu alanını da 5555555 olarak değiştirdik. Metin karakterli alanlara tek tırnak işareti kullanılır. Sayısal alanlarda direk olarak yazılır. Bazı veritbanı editörleri sayısal alana veri girerken de te tırnak işareti içinde yazımı kabul etmektedir.
3. UPDATE Örnek2: UPDATE Personel SET Meslek_kodu=1111111 Bu kodda WHERE ifadesi olmadığı için mevcut olan bütün kayıtların Meslek_kodu alanını 1111111 olarak değiştirir..
DELETE ifadesi tablomuzda bulunan kayıtları silmek için kullanılır. Burada dikkat edilecek nokta WHERE ifadesi ile belli bir kayıt seçilip silinir. Eğer WHERE ifadesini kullanmadan yaparsak tablodaki bütün kayıtları silmiş oluruz. Kullanım Biçimi: 4. DELETE DELETE FROM tablo_adi WHERE secilen_alan_adi=alan_degeri
4. DELETE Örnek: DELETE FROM Personel WHERE id=3 Tablomuzda bulunan kayıtlarda WHERE ifadesi ile id alanında 3 yazan kaydı silmiş olduk. Metin karakterli alanlara tek tırnak işareti kullanılır. Sayısal alanlarda direk olarak yazılır. Bazı veritabanı editörleri sayısal alana veri girerken de te tırnak işareti içinde yazımı kabul etmektedir.
Uygulama Uygulama adında bir veri tabanı oluşturunuz. Tasarım görünümünde aşağıdaki gibi oluşturunuz.
Uygulama Departman tablosunda, Departman Numarası 5 olan departmanın adını Satış/Pazarlama olarak değiştiren SQL cümlesini yazınız. Görev tablosuna görev numarası 5 olan ve görevi Tasarımcı olan veriyi ekleyiniz. Görev Numarası 2 olan personellerin maaşlarını 100 TL artıran SQL cümlesini yazınız. Personellerin adını, soyadını listeleyen SQL kodunu yazınız.
Uygulama Maaşları 650 olan personeli silen SQL kodunu yazınız. Personel numarası 20 olan kaydın Adını kendi adınız ve Doğum Tarihini kendi Doğum Tarihiniz yapınız. Personel tablosundan maaş sütununu silen SQL kodunu yazınız. Tüm personele %10 zam yapan SQL kodunu yazınız.