SİTE
İÇİ ARAMA |
|
Blogroll |
|
|
|
SQL Dilinde Select, Insert, Update, Delete Komutları |
|
Gönderiliyor lütfen bekleyin... |
|
|
Veri Düzenleme Komutları DML(Data
Manuplation Language)
DML komutları var olan kayıtlar
üzerinde işlem yapılmasını sağlar. Veri listeleme , yeni kayıt ekleme , var olan
kaydı değiştirme veya silme işlemleri yapmak için kullanılır.
SELECT ifadesi :
Tablolarda bulunan bilgileri elde etmenin en sık kullanılan biçimidir. Select
ifadesi diğer ek ifadeler ile birlikte veriyi filtrelemeyi yada daha
anlamlı kılmayı sağlar.
SELECT
[DISTINCT][ALL] FROM Tablo_Adi [WHERE Kosul] [GROUP
BY Kosul] [HAVING Kosul] [UNION Kosul] [
ORDER BY Alanlar [ASC]
[DESC]]
Sorgu sonucunda tablonun bütün alanlarındaki verilerin elde edilmesi isteniyorsa *
karakteri kullanılmalı. Eğer tabloda belli kolonlardaki bilgiler isteniyorsa, istenilen alanlar aralarına virgül konularak
sıralanır.
SELECET Alan1, Alana2, Alan3
FROM
Tablo_Adi
|
Örnek : SQL cümlesinde bütün alanların
görüntülenmesi ve sadece istenilen alanların gösterilmesi.
Where (Koşul) İfadesi : Select
cümlelerinde veriyi çeşitli koşullar sonucunda filtrelemek
için kullanılır.
SELECT * FROM Tablo_Adi WHERE Koşul
|
Örnek : Personel tablosunda maaşı 1200den
büyük olan personeller.
SQL de Operatörler:
Mantıksal Operatörler : İki yada
daha fazla ifade arasında mantıksal sorgu yapılır.
() işlemleri gruplandırma ve
öncelik belirleme
AND VE her iki ifade doğru
ise işlem gerçekleşir
OR VEYA
ifadelerden biri doğru ise işlem gerçekleşir
NOT DEĞİL ifadenin yanlış olması durumunda
işlem yapılır
Karşılaştırma Operatörleri:
< .. den daha
küçük
> .. den daha büyük
>= Büyük veya eşit
<= Küçük veya eşit
= Eşit
<> Eşit degil
!= Eşit degil
!< .. den küçük değil
!> .. den büyük değil
Örnek : Maaşı 1200 den büyük ve DepartmanId si 1
olmayan ve Adi Feryat olan personelin bilgileri.
Matematiksel Operatörleri:
SQL cümlelerinde
matematiksel operatörler normal işlevlerini gerçekleştirirler.
+ Toplama
-
Çıkarma
* Çarpma
/ Bölme
Örnek
: Personel tablosundan DepartmanId si 2 den farklı olan personellerin
id, adı, soyadı, maaşı ve maaşının 25 ile toplamının
listelenmesi.
IN
(İçinde) Operatörü : Bir koşulun
başka bir veri kümesi içinde olup olmaması durumu.
Örnek: Personel tablosunda PersonleId
si 2 ,3 ve ya 5 olan personeller. Burda (2, 3 ,5 ) bir kümesi olarak
görebiliriz.
In ifadesi sabit bir veri kümesini sorguladığı gibi
başka bir sql cümlesi sonucu dönen değerler içinde de arama yapabilir.
Özellikle iç içe select ifadelerinde bu yapı kullanılır.
Örnek : Başka bir tablodan sorgu sonucu
elde edilin veri kümesi içinde sorgulama. Departmanın kuruluş tarihi 01.01.1999
dan büyük olan departmanlarda bulunan personellerin listesi.
BETWEEN (Arasında) İfadesi :
Koşulun belirtilen iki değer arasında olup olmaması için kullanılır. Between
ifadesi >= ve <= ifadesi yerinde kullanılabilir.
Örnek : Personle tablosunda maaşları 1000 ve
1300 arasındaki personellerin adı ve soyad ve maaşlarının gösterilmesi.
Bu örnekte AS ifadesi ile Ad ve Soyad alanlarını birleştirip
tek olarak gösterdik.
LIKE (Benzer) İfadesi : Bir veri
kümesi içerisinde belirtiğimiz değere benzeyen verilerin olup olmadığını
kontrol etmek için kullanılır. Bu ifade genellikle karakter içeren bilgilerde
yani char, varchar, binary vb. tipli alanlar için kullanılır.
%
0 veya daha fazla karakter
_
Sadece tek bir karakter
[]
Belirtilen karakterler arasında sadece tek bir karakter
[^]
Belirtilen karakterler arasında olmayan tek bir karakter
Örneğin SELECT * FROM Personel WHERE Adi
+ aşağıdaki like ifadeleri ile kullanılabilir. Adi alanı
LIKE
‘Al%’ Al ile
başlayan tüm isimler
LIKE ‘%n’ en
ile biten tüm isimler
LIKE ‘%y%’ y
karakterlerini içeren tüm isimler
LIKE ‘____n’ en ile biten tüm 5
karakterli isimler
LIKE ‘[FH]%’ F veya H ile
başlayan tüm isimler
LIKE ‘[^U]%’ Başharfi U olmayan tüm isimler
Örnek : Adresi Barbaros içeren personellerin
PeronelId leri.
SQL Fonksiyonları : SQL bulunan
standart fonksiyonlar.
AVG Verilen
alanın aritmetik ortalamasını alır .
SUM Verilen
alanların toplamını alır.
MAX Verilen alanın
kayıtlar arasındaki en büyük değerini verir
MIN Verilen alanın
kayıtlar arasındaki en küçük değerini verir.
ROUND Verilen alanın virgülden sonraki
değerini yuvarlarlar
COUNT Verilen alanın kayıtlar arasında
kaç defa yazıldığını bulur.
GROUP BY İfadesi : Elde edilen
verilerin belli kriterlere göre gruplandırılması. Group by da dikkat edilmesi
gereken durum select ifadesinden sonra yazdığımız ve fomksiyonlar
dışındaki bütün kolonların group by ifadesinden sonra
sıralanması gerekir.
Örnek : Personel Tablosundan departmana göre
ortalama maaş . Ortalaması alınan maaşı ROUND fonksiyonu ile virgülden sonraki
iki rakamına göre yuvarladık. Bu örnekte select te PDepartmanId ve Round
fonksiyonunu kullandık. Round fon ksiyon olduğu için GROUP BY ifaseinde sonra
sadece PDepartmanId yi ekledik.
HAVING (Sahiplik) İfadesi : Gruplandırılmış
verilerin var olan koşula sahip olup olmadı kontrolu yapılır. Bu ifade
genellikle sum(), avg, min(), max() , vs. gibi ifadeler ile kullanılır.
Örnek : PersonelMal taplosunda mal toplamı 40
tan büyük olanlar
UNION (Birleşim) ifadesi :Veri
kümelerinde birleştirme işlemi yapar. Ancak veri kümelerinde aynı sayıda kolon
bulunmalı ve birbirine karşılıklı gelen kolonların veri tipleri ve
uzunlukları aynı olmalıdır. Union ALL ifadesi ile de kullanılır. ALL ifadesi
ile kullanıldığında birleştime sonucunda çift kayıt oluşursa hepsini getirir.
Union yanlız kullanıldığında çift kayıtları göz ardı eder.
Örnek : Emlak vergisi için bina ve arsa için
ayrı ayrı tabloların oluşturalım.Tablo yapısı aşağıdaki gibi olsun.Bu iki tablo
arasında birleştime işlemi yapacağız. 2005 yılındaki bina ve arsaların
sahiplerId lerine göre raiç bedellerini bulacağız
ORDER BY (Sırala) İfadesi: Sql
sorgusu sonucunda elde edilen veriyi verilen kritere göre sıralar. ASC ek
ifadesi ile küçükten büyüğe DESC ile de büyükten küçüğe sıralar
Örnek : PersonelMal Tablosunda PPersonleId
si 1 olan personelin mal varlığını küçükten büyüğe ve büyükten küçüğe
sıralama
DISTINCT İfadesi : Sql sorgu
sonucunda veri tekrarı oluşabilir.Bu durumlarda veri tekrarını önlemek
için DISTINCT ifadesi kullanılır.
JOIN (İlişkilendir)İfadesi :
Tablolar arasında mantıksal olarak ilişki kurmayı sağlar.Join ifadesi ek
ifadelerler daha kullanışlı hale getirilmiştir
SELECT Tablo1.*, Tablo2.*
FROM Tablo1 , Tablo2 WHERE Tablo1.Alan = Tablo2.Alan
|
Örnek : Personel ve PersonelMal tablolarını
birleştirme işlemi yapıldı ve Personel Tablosundan PersonelId, Adi ,Soyadi;
PersonelMal Tablosundan da Malın Adını ve Bedelini aldık. Burda dikkat edilmesi
gereken önemli bir nokta Personel Tablosunda da Adi isimli bir alan var
PersonelMal tablosunda da bu durumda TabloAdi.AlanAdi şeklinde yapılır. Yada
tabloya daha kısa isim verilim kısa ismi ile de kullanılabilir.Biz aşağıda
Personele P PersonelMal da PM adı verdik.
INNER JOIN İfadesi : T-SQL de var
olan bir ifadedir. Tabloların bire bir ilikkilendirilmesini sağlar. Inner
joinde join yapılan tabloda ilgili kayıt yok ise boş kayıt geri döner.
Örnek : Yukardaki örneği inner joinle
yapalım; PersonelId si 4 olan personel ait bilgiler gelsin.
LEFT JOIN İfadesi : Bu ilişki
biçimi de inner joindeki gibi sadece T-SQL de bulunmaktadır. Bu ifadede sol
taraf değeri NULL yada boş olması durumunda da; sql cümlesinin istediği veri
kümesini geri döndürür.
RIGHT JOIN İfadesi :Right
joinde sağ taraf değeri NULL yada boş olması durumunda da sql
cümlesinin istediği veri kümesini geri döndürür.
Örnek :Tablo yapısı aşağıdaki gibi olan
tablolardan left join ve right joinle sql cümlesi yazılacak. Bina
tablosundan CaddeId ile Cadde isimlerine ulaşılacak. Ve hangi binanın hangi
caddede olduğunu bulunacak. EmlakBina tablosundaki CaddeId alanı boş
geçilebilir. Ve Cadde tablosuyla arasında ikincil (foreing key) olmadığı için
mantıklı kayıtlarda girilmemiş olabilir.
Şekil
- Tablonun yapısı Şekil - Tablodaki
kayıtlar
Left joinde sadece 2 kayıtta mantıklı veri olmasına
rağmen EmlakBina tablosunda bulunan kayıt sayısı kadar kayıt geri
döndü.Right joinde de bu durum sağ tarataki tablo için geçerlidir.Sağ taraftaki
yani Cadde tablosundaki kayıt sayısı kadar kayıt geri döndürdü.
T-SQL CASE İfadesi: Var olan
alanlarda bir alanda bir değeri sorgulayacak ve dönecek olan değere göre işlem
yapılacaksa case ifadesi kullanılır.
SELECT Alanlar CASE Kosul
WHEN VarolabilecekDeğer THEN ELSE OlamayacakDeğer END
|
Örnek : Personel Tablosunda çocuk sayısına
göre maaşını belli katsayılarla hesaplanması.
INSERT komutu:
Tabloya veri eklemek için kullanılır.
INSERT INTO Tablo veya View([Kolon
listesi]) VALUES(Değerler)
Örnek : Tabloda bulunun bütün
kolonların teker teker yazılması ve değerlerinin atanması.
INSERT INTO EmlakArsa(ArsaId, SahipId, Ada, Pafta,
Parsel, IslemYili, RaicBedel) VALUES (9, 2,150-52,45821-hb,15, 2005,
2000)
|
Örnek
: İkinci insert ifadesi ise tablodaki bütün alanlara kayıt yapılacağı
için kolon isimlerini yazmaya gerek kalmıyor. Ama dikkat edilmesi gereken durum
atanacak değerlerin doğru sırada yazılması.
INSERT INTO
Departman VALUES (3, Genel Müdürlük, 01.01.2000)
|
Örnek : Başka bir tablodan
select ifadesi ile bilgi alıp tablomuza ekleme. BinaId si 5 olan EmlakBina
tablosundaki bilgilerin bir kısmı EmlakArsa tablosuna eklenmesi .
INSERT INTO
EmlakArsa(ArsaId, SahipId, Ada, Pafta, Parsel, IslemYili, RaicBedel)
SELECT BinaId, SahipSicil, Ada,
Pafta, Parsel, IslemYili, RaicBedel FROM EmlakBina WHERE BinaId = 5
|
UPDATE komutu: Tablo
veya viewde bulunan kayıt yada kayıtların değiştirilmesi için kullanılır.
Değiştirilmesi istenen kolonların teker teker yazılıp değerlerin atanması
gerekmekte.
UPDATE TabloAdi veya ViewAdi SET
(Kolonlar = Değerleri ,...) [WHERE Kosul ]
Örnek :Departman tablosunda
DepartmanId 4 olan departmanın bütün alanlarının değiştirilmesi.
UPDATE Departman
SET DepartmanId = 5,DAdi = Halkla İlişkiler,
KurulusTarihi=01.01.2001 WHERE DepartmanId =
4
|
Örnek : EmlakArsa tablosunda
işlem yılı 2005 olan kayıtlarda Raic bedeli 0.02 oranında artılılması.
UPDATE EmlakArsa
SET RaicBedel = RaicBedel + RaicBedel * 0.02 WHERE IslemYili =
2005
|
Örnek :Koşulsuz update işlemi.
EmlakArsa tablosundaki bütün ArsaId değerlerinin 1 artırılması.
UPDATE EmlakArsa
SET ArsaId = ArsaId +
1
|
Delete Komutu: Tablo
veya viewde bulunan kayıt yada kayıtların silinmesi amacı ile
kullanılır.
DELETE FROM TabloAdi [WHERE Koşul ]
Örnek : Cadde tablosundaki
bütün kayıtların silinmesi.
Örnek :EmlakBina tablosunda BinaId si 1 olan
kaydın silinmesi.burda where koşulu daha kompleks de yazılabilir.
DELETE FROM
EmlakBina WHERE BinaId =
1
|
Bir sonraki makalemizde T-SQL de fonksiyon,
saklı yordam(stored procedur), tetikleyiciler (trigger) ları
inceleyecez.
Makale:
SQL Dilinde Select, Insert, Update, Delete Komutları ADO.NET ve SQL Feryat Olcay
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|
|