3. SQL, düzeltilmesi veya değiĢtirilmesi
istenen bilgileri açıkça belirtmeye izin
veren ve yerine getirilebilecek baĢlıca
iĢlemleri tanımlamamızı sağlayan bir
komut takımıdır. Bu komutların
oluĢturduğu yapıya T-SQL dili denir.
4. T-SQL komutları kullanım amaçlarına
göre üç genel kategoriye ayrılır.Bunlar;
1. SQL Veri İşleme Dili (Data
Manipulation Language – DML)
2. SQL Veri Kontrol Dili (Data Control
Language – DCL)
3. SQL Veri Tanımlama Dili (Data
Definition Language – DDL
5. SQL Veri İşleme Dili (Data Manipulation
Language – DML)
SQL veri iĢleme dili veri
girmek, değiĢtirmek, silmek ve verileri almak
için kullanılan DML komutlarının tümüdür. En
sık kullanılan DML komutları ve kullanım
amaçları aĢağıdaki gibidir:
SELECT: Veri seçmek
DELETE: Veri silmek
UPDATE: Veri güncellemek
INSERT: Veri girmek
6. SQL Veri Kontrol Dili (Data Control
Language – DCL)
SQL veri kontrol dili bir veri tabanı kullanıcısı
veya rolü ile ilgili izinlerin düzenlenmesini
sağlar. DCL komutları ve fonksiyonları
Ģöyledir:
GRANT: Kullanıcıya yetki verir.
DENY: Kullanıcı, grup veya rolü herhangi bir
eylem için engeller.
REVOKE: Daha önce atanmıĢ olan yetki
veya engeli kaldırır.
7. SQL Veri Tanımlama Dili (Data
Definition Language – DDL)
SQL Veri tanımlama dili verilerin tutulduğu
nesneler olan tabloların
yaratılmasını, silinmesini ve bazı temel
özelliklerinin düzenlenmesini sağlar. En sık
kullanılan bazı DDL komutları ve kullanım
amaçları aĢağıdaki gibidir:
CREATE TABLE: Yeni bir tablo yaratmak
ALTER TABLE: Tabloda değiĢiklik yapmak
DROP TABLE: Tabloyu silmek
CREATE INDEX: Tabloda dizin oluĢturmak
8. New Query komutu ile yeni bir veri tabanı
oluĢturalım.
10. Object Explorer penceresinde
sorgusunu yazdığınız veri tabanının
oluĢturulup oluĢturulmadığını kontrol
edelim.
11. LOCAL DEĞĠġKEN TANIMLAMA
SQL Server'da değiĢkenler DECLARE
ifadesi kullanılarak oluĢturulur.
Yazım Şekli
DECLARE @degisken_adi <veri_tipi>
[(boyut)]
12. Örnek:
DECLARE @ogr_no VarChar(10)
DECLARE @tckimlik_no int
Aralara virgül koyarak da birden fazla değiĢkeni
tek bir DECLARE ifadesi ile oluĢturabilirsiniz.
Örnek:
DECLARE @ogr_no varchar(10),@tckimlik_no
int
Varchar, int türlerinde değiĢken
tanımlayabildiğiniz gibi tablo türünde değiĢken de
tanımlaya biliriz.
13. ĠĢlem Operatör Türleri
Karşılaştırma Operatörleri
KarĢılaĢtırma ifadesinde karĢılaĢtırılan verilerin türü aynı
olmalıdır. Yani karakter veri türü ile ancak karakter türünde
baĢka bir veri; bir sayısal veri ile ancak sayısal olan baĢka bir
veri karĢılaĢtırılabilir.
OPERATÖR ANLAMI
< Küçük
> Büyük
= EĢit
<= Küçük veya eĢit
>= Büyük veya eĢit
<> EĢit değil
!= EĢit değil
LIKE Metin KarĢılaĢtırma Operatörü
14. Joker Karakterler
Sadece LIKE operatörüyle kullanılan joker
karakterler, bir veya daha fazla harfin yerine geçer.
Belirli aralıklardaki belli harfle baĢlayan ve biten
sorgularda joker karakterler kullanılır.
Joker Karakterler Anlamı
% Birden fazla harf ya da rakamın yerini tutar.
_ Bir tek harf veya rakamın yerini tutar.
[HARF] Herhangi bir harf yerine gelebilecek harfleri
belirtir.
[^HARF] Herhangi bir harf yerine gelemeyecek
harfleri belirtir.
[A-Z] A ile Z arasındaki harfleri belirtir.
15. Mantıksal Operatörler
NOT, OR ve AND mantıksal operatörleri
yardımı ile birden çok koĢulun
GerçekleĢmesine bağlı olarak ifade
edilebilecek karmaĢık ya da birleĢik koĢullu
listelemeleri gerçekleĢtirmek mümkün
olmaktadır. BETWEEN ifadesi de AND
operatörü ile aynı iĢlemi
gerçekleĢtirebilmektedir.
16. Örnek:
Doğum tarihi 1970’ten önce
olan, maaĢı 700 – 1200 arasında olan
personeli listeleyen kodlardır.
SELECT * FROM Person WHERE dogum_tarih<{01/01/70}
AND Maas>=700 AND maas<=1200
18. Örnek:
Ogr_Notlar tablosunda notların not
ortalamasını hesaplayan T-SQL
kodlarıdır.
SELECT (nt1+nt2+nt3) /3 FROM
Ogr_Notlar
19. NOT
Öncelik sırası, matematikte ve diğer
bilgisayar dillerinde olduğu gibidir. Üs
alma, hepsinden öncedir. Sonra çarpma (*)
ve bölme (/) gelir. Toplama (+) ve çıkarma (-
) en sonönceliklidir. Parantez kullanılarak
öncelik sırası değiĢtirilebilir.
20. DÖNGÜ VE SQL KOMUTLARI
İF-ELSE-BEGİN-END
IF – ELSE karar yapısı diğer programlama dillerinden de
hatırlanacağı gibi gelen değer ya da değerlere göre bir
kararın verilmesini sağlayan bir yapıdır. Bu yapının T-SQL
deki genel kullanım biçimi Ģöyledir.
IF (şartlar)
BEGIN
Komutlar1
END
ELSE
BEGIN
Komutlar2
END
21. Öğrencilerin vize not ortalamaları 50 den büyük ise “sınıfın
durumu iyi”, düĢük ise “sınıfın durumu kötü” olarak uyarı veren
bir T-SQL programı yazalım.
22.
23. CASE-WHEN
CASE yapısı herhangi bir değiĢkenin birden fazla
durumla karĢılaĢtırmak için kullanılmaktadır. Genel
yapısı Ģöyledir.
CASE
WHEN Şart_ifadesi1 THEN Değer1
WHEN Şart_ifadesi2 THEN Değer2
ELSE Değer3
END
24. Bir sınıftaki öğrencilerin not ortalamalarına bakarak “Geçti” ya da “Kaldı”
Ģeklinde ekrana listeleyen T-SQL cümleciği Ģöyle olacaktır.
25. YAPININ DĠNAMĠK OLARAK KULLANILMASI
Veri tabanı adı, tablo adı gibi bilgileri; değiĢken
olarak tanımlayıp kullanabiliriz. Bu Ģekilde
tanımlanan Transact-SQL yapısını çalıĢtırmak için
EXECUTE komutu kullanılır.
ÇalıĢma prensibi örnekle açıklayalım
26.
27. TRANSACTION
"Transaction", daha küçük parçalara ayrılamayan
en küçük iĢlem yığınına denir. Belirli bir grup
iĢlemin arka arkaya gerçekleĢmesine
rağmen, iĢlemlerin seri ya da toplu halde
değerlendirilip hepsinin düzgün bir Ģekilde ele
alınması gerektiğinde kullanılır.
"Transaction", prensip olarak ya bütün iĢlemleri
gerçekleĢtirir ya da hiçbirini
gerçekleĢtirmez. ĠĢlemlerden biri dahi baĢarısız
olursa, bu prensip nedeniyle hiçbir iĢlem olmamıĢ
kabul edilir; ancak tüm iĢlemler baĢarılı olduğunda"
transaction", içinde gerçekleĢen tüm veri
değiĢikliklerini onaylamıĢ demektir.
28.
29. "Transaction" aĢağıda tablolar ve kodlar kullanılarak
adım adım anlatılmıĢtır:
Kolon isimleri ve özellikleri aĢağıdaki
gibi bir tablo oluĢturulur.
31. Belirlenen kurala uygun bir "transaction" yazılır.
AĢağıdaki kod örneğinde "transaction" sıra sayısı
kuralına uyulmadığı için "commit" kodu
çalıĢmaz, "rollback" komutu çalıĢır ve istenilen
hiçbir değiĢiklik tablo üzerinde yapılamaz.
32. BEGIN TRAN
UPDATE deneme
SET isim = 'isim5'
WHERE id = 'DE38C434-5D30-4B28-81A8-
5B1A191C1501'
UPDATE deneme
SET isim = 'isim6'
WHERE sehir = 'sehir2'
IF @@ROWCOUNT = 2 COMMIT TRAN
ELSE
ROLLBACK TRAN
33. AĢağıdaki kod örneğinde olduğu gibi istenilen
kural uygunsa, tablo için istenilen
değiĢikliklerin hepsi gerçekleĢtirilir.
BEGIN TRAN
UPDATE deneme
SET isim = 'isim5'
WHERE id = 'DE38C434-5D30-4B28-81A8-
5B1A191C1501'
UPDATE deneme
SET isim = 'isim6'
WHERE sehir = 'sehir2'
IF @@ROWCOUNT = 1 COMMIT TRAN
ELSE
ROLLBACK TRAN
34. Tablonun yeni Ģekli aĢağıdaki gibi elde edilir.
isim1 ve isim2 yerine sırasıyla yazdırılmak
istenilen isim5 ve isim6 yazdırılır.