DML(DATA MANIPULATION LANGUAGE) DEYİMLERİ
Veritabanı içindeki verileri elde etmek ve değiştirmekle ilgili SQL deyimleridir.
İşlevlerine göre, veri döndüren(SELECT) ve veri döndürmeyen (INSERT, DELETE,
UPDATE) komutları olarak ikiye ayrılır. Veri döndüren komutlar tablo yada
tablolardan veri çekerek kullanıcıya bilgi aktarımı için kullanılır. Veri döndürmeyen
komutlar yapılması istenen işleri tablo yada tablolar üzerinde gerçekleştirir
INSERT KOMUTU: Tabloya veri aktarımı için kullanılır. Aynı anda bir yada birden
fazla kayıt aktarılabilir
FORMATI
INSERT INTO tablo_adi(alan1,alan2,alan3,…) VALUES(değer1,değer2,değer3,…)
Komut formatında belirtilen tablo alanları ile değerler kısmında tanımlanmış olan
veriler sıraları ile eşleşme yaparak aktarılı[Link]ğer1->alan1 e, değer2->alan2 ye…
şeklinde aktarımı sağlanır. Birden fazla veri grubu aynı alanlara aktarılırken de yine
aynı mantık korunur.
Örnek: ‘yeni’ veritabanına bağlı ‘ilkgiris’ isimli tabloya veri girişi yapalım
use yeni
insert into ilkgiris(id,sifre) values('963','kahgf')
insert into ilkgiris(id,sifre) values('654','asdfgh'),('987','321654')
insert into urun(URUNADI,URUNFIYAT) values('B',60)
DELETE KOMUTU: Tablodan toplu yada tekil veri kaydı silmek için kullanılır.
Tehlikeli bir komuttur. Eğer detaylı bir bilgiye sahip değilseniz kullanırken dikkat
etmelisiniz. Silinen kayıtlara ulaşmayı bilmiyorsanız veri kayıpları yaşayabilirsiniz.
FORMATI
DELETE FROM tablo_adi WHERE şart
Komut satırında kullanılan WHERE deyimi “şart” tanımlamaları için kullanılır.
Örnek: Tablodan tüm kayıtları silmek
Delete from deneme
Örnek: bolum alanında bilgisayar yazan kayıtları silelim
delete from ilkgiris where sifre='asdfgh'
Örnek: bolum alanında 987 yazan kayıtları silelim
delete from ilkgiris where id=987
UPDATE KOMUTU: Tablodaki verileri güncellemek için kullanılır. Genellikle
güncelleme işleminin kapsadığı veri setini tanımlamak için WHERE sözcüğüyle
kullanılır. Mevcut bir tablodaki satırları değiştirmek için kullanılan UPDATE deyimi
sadece bir tablo üzerinde kullanılmalıdır. UPDATE deyimi ile SET ve WHERE sözcüğü
kullanılır. SET sözcüğü değiştirilecek kolonları ve değerleri belirtir. WHERE sözcüğü
ise hitap ettiği veri setinin özelliklerini tanımlamada kullanılır.
FORMATI
UPDATE tabloadi SET alan_adi1=değer1, alan_adi2=değer2, .. WHERE şart
Örnek: urun tablosunda URUNFIYATı 60 olan ürünün adını B olarak düzeltelim
update urun set URUNADI='B' where URUNFIYAT=60
Örnek: urunadı A olan urunun fiyatını %30 arttıracak sorgu satırını yazın.
update urun set URUNFIYAT=URUNFIYAT*1.3 where URUNADI='A'
Örnek: okul numarası 321456987841 olan kaydın bolum alanına bilgisayar yazılsın
update ilktablo set bolum='bilgisayar' where okulno='98765432132'
Örnek: okul numarası 963258741 olan kaydın soyad alanına DEMIR yazılsın
update ilktablo set soyad='DEMIR' where okulno='32165498721'
Örnek: bolum bilgisi NULL olarak kayıtlı olan bütün satırların bolum alanına
bilgisayar verisi aktarılsın
update ilktablo set bolum='kimya' where okulno is NULL
Örnek: bolum bilgisi bilgisayar ve soyadı celik olan kayıtların okulno alanına
00000000000 verisi aktarılsın
update ilktablo set okulno='00000000000' where bolum='bilgisayar' and
soyad='celik'
‘and’ özelliklerin birleştirilmesi ve birden fazla şartı aynı anda yerine getiren kayıtları
ifade etmek için kullanılır.
SELECT KOMUTU: Veritabanına bağlı tablolardaki verilere erişmenin, diğer bir
deyişle onları görüntülemenin ya da belli şartları sağlayan verilerin istenen
formatlarda raporlanma işlemi için kullanılan yöntemdir. Genellikle bir ya da daha
çok tablonun bütün alanları ya da belli alanları için SELECT deyimi yazılır.
FORMATI
SELECT [*] [DISTINCT] alan_adı/alan_adları [INTO yeni tablo] FROM [tablo] [WHERE
şart] [GROUP BY alan_adı] [HAVING sayısal_değer] [ORDER BY alan_adı] [COMPUTE
alan_adı]
Parametrelerin Kullanımları:
*; sözcüğü bütün satırların sonuç listesinde görünmesini sağlar.
DISTINCT; sadece tek olan (unique) kayıtların sonuç listesinde yer almasını sağlar.
Liste parametresi veriden seçilecek kolonu (sütunu) belirtir.
INTO; yeni bir tablo yaratmayı sağlar. Yeni tablo parametresi sorgu sonucu
yaratılacak tabloyu belirtir.
FROM; belli bir tablonun seçilmesini sağlar. Tablo parametresi ise sorgulanacak olan
tablo ya da tabloları, görünümleri belirtir.
WHERE; bir koşulu belirterek sadece o kuşula uyan kayıtların seçilmesini sağlar.
GROUP BY; Kayıtların gruplanmasını sağlar. HAVING deyimiyle de ara toplamların
alınmasını sağlar.
HAVING; kayıtlarda kısıtlama yapar ancak hesaplamayı etkilemez.
ORDER BY; belirtilen kolona göre listelenen kayıtları sıralamayı sağlar. Sıralama
artan (ASC) ya da azalan (DESC) olabilir, herhangi bir şey yazılmazsa varsayılan
değer ASC(ASCent/artan)'dir.
COMPUTE; hesaplama yapar. Tipik olarak SUM, AVG, MIN, MAX, COUNT gibi
fonksiyonları kullanarak hesaplama yapar.
Örnek: Personeller tablosundaki tüm verileri görmek istersek
select * from personeller
Örnek: Sadece personelid,adi,soyadi alanlarını görüntülemek istersek
select PersonelID,Adi,SoyAdi from Personeller
Örnek: Tek tablodan alanları görüntüleyeceğimiz gibi birden fazla tablo da
görüntülenebilir.
select * from Personeller,Urunler
select * from urunler
ORDER BY(asc,desc): Alfabetik yada sayısal sıralama yapmak için kullanılır.
Formatı
SELECT veri_alanları FROM tablo_adi ORDER BY alan_adi/adları ASC/DESC
Örnek: Personeller tablosundaki verileri Adi alanının alfabetik sıralamasına göre
listeleyelim
select * from Personeller order by adi ASC
Örnek: Personeller tablosundaki verileri Soyadi alanının alfabetik sıralamasının terine
göre listeleyelim
select * from Personeller order by soyadi DESC
Örnek: Personeller tablosundaki verileri Adi ve Soyadi alanının alfabetik sıralamasına
göre listeleyelim
Örnek: (Adi alanındaki veriler aynı olursa Soyadi alanındaki verilere göre sıralama
yapılır)
select * from personeller order by adi,soyadi
Örnek: Personeller tablosundaki bilgileri doğum tarihine göre tersten(gençten
yaşlıya doğru) sıralayalım
select * from personeller order by DogumTarihi desc
Örnek: Personeller tablosundaki bilgileri doğum tarihine göre tersten(gençten
yaşlıya doğru) sıralayalım,
Örnek: Adi ve Soyadi alanlarındakilerin aynı olanları da artan sırada.
select * from personeller order by DogumTarihi desc,adi,soyadi
WHERE:koşul tanımlamak istendiğinde kullanılır. Tanımlanan şart/şartlara uyan
kayıtları
filtreleyerek görüntülemek için kullanılır
Formatı:
SELECT veri_alanları FROM tablo_adi WHERE şart/şartlar
Örnek: Personeller tablosunda Adi alanı Murat olan tüm kayıtları göster
select * from personeller where adi='janet'
Örnek: Personeller tablosunda Adi alanı Murat olan kayıtların PersonelID,Adi,Soyadi
alanlarındaki verileri göster
select personelID,adi,soyadi from personeller where adi='janet'
Örnek: Personeller tablosunda UnvanEki Ms. veya Mrs. olan kayıtları göster
select * from personeller where UnvanEki='Ms.' or UnvanEki='Mrs.'
Örnek: Personeller tablosunda UnvanEki Ms. ve Sehir alanında London olan kayıtları
göster
select Adi,soyadi from personeller where UnvanEki='Ms.' and Sehir='London'
Örnek: Doğum tarihi 01/01/1955 ten büyük olan kişilerin kayıtlarını göster
select * from personeller where DogumTarihi>'1955-01-01'
Örnek: Doğum tarihi 01/01/1955 ten büyük olan kişilerin Sehir kayıtlarını göster
select sehir from personeller where DogumTarihi>'1955-01-01'
WHERE ve ORDER BY 'ı birlikte kullanmak:
select * from personeller where DogumTarihi>'1955-01-01' order by adi
BETWEEN komutu: İki değer arasında kalan verilerin olduğu kayıtları göstermek için
kullanılır. İlk veri ile ikinci veri ‘and’ operatörü ile birleştirilir.
Örnek: Satislar tablosunda NakliyeUcreti 10 ile 15 arasında olanları göster
select * from satislar where NakliyeUcreti between 10 and 15
Örnek: Satislar tablosunda NakliyeUcreti 10 ile 15 arasında olanların PersonelID'siyle
birlikte göster
select PersonelID,NakliyeUcreti from satislar where NakliyeUcreti between 10 and 15
Örnek: nakliye ücreti 10-15 arasında olan satışların hangilerini personelid si 5 olan
personel yapmıştır
select PersonelID,NakliyeUcreti from Satislar where PersonelID='5' and NakliyeUcreti
between 10 and 15
Aşağıdaki iki sorgu satırı arasındaki fark nedir?
select PersonelID='5',NakliyeUcreti from Satislar where NakliyeUcreti between 10
and 15
select * from Satislar where PersonelID='5' and NakliyeUcreti between 10 and 15