You are on page 1of 14

TRANSACT SQL PROGRAMLAMA DL

SQL, dzeltilmesi veya deitirilmesi istenen bilgileri aka belirtmeye izin veren ve
yerine getirilebilecek balca ilemleri tanmlamamz salayan bir komut takmdr. Bu
komutlarn oluturduu yapya T-SQL dili denir. T-SQL ile veri ve sorgulara eriebilir,
gncelleyebilir ve ilikisel veri taban sistemi ynetilebilir. T-SQL komutlar kullanm
amalarna gre genel kategoriye ayrlr.
Veri kaynaklarndan bilgi isteme olay iin SELECT ve QUERY komutlar kullanlr.
Select ifadesi bir tablodan verileri semek iin kullanlr. Elde edilen veriler sonu
kmesi olarak adlandrlr ve yine bir tablo grnts eklinde grntlenir.

Sentax (Sz dizimi):

SELECT <stun ad> FROM <tablo ad>


T-SQL komutlar kullanm amalarna gre genel kategoriye ayrlr.

SQL Veri leme Dili (Data Manipulation Language DML)

SQL veri ileme dili veri girmek, deitirmek, silmek ve verileri almak iin kullanlan DML
komutlarnn tmdr. En sk kullanlan DML komutlar ve kullanm amalar aadaki
gibidir:

SELECT: Veri semek
DELETE: Veri silmek
UPDATE: Veri gncellemek
INSERT: Veri girmek


SQL Veri Kontrol Dili (Data Control Language DCL)

SQL veri kontrol dili bir veri taban kullancs veya rol ile ilgili izinlerin dzenlenmesini
salar. DCL komutlar ve fonksiyonlar yledir:


GRANT: Kullancya yetki verir.
DENY: Kullanc, grup veya rol herhangi bir eylem iin engeller.
REVOKE: Daha nce atanm olan yetki veya engeli kaldrr.

SQL Veri Tanmlama Dili (Data Definition Language DDL)

SQL Veri tanmlama dili verilerin tutulduu nesneler olan tablolarn yaratlmasn, silinmesini
ve baz temel zelliklerinin dzenlenmesini salar. En sk kullanlan baz DDL komutlar ve
kullanm amalar aadaki gibidir:

CREATE TABLE: Yeni bir tablo yaratmak
ALTER TABLE: Tabloda deiiklik yapmak
DROP TABLE: Tabloyu silmek
CREATE INDEX: Tabloda dizin oluturmak



Uygulama 1
1. New Query komutu ile yeni bir veri taban oluturalm.





2. Yazdmz sorguyu altralm.

Klavyeden F5 tuuna basabilir veya Execute komutuna tklayabilirsiniz


3. Object Explorer penceresinde sorgusunu yazdnz veri tabannn oluturulup
oluturulmadn kontrol edelim.




TRANSACT-SQL DLNN YARDIMCI
BLEENLER:
Lokal deikenler, fonksiyonlar, operatrler gibi yardmc bileenler ile bu dili daha etkin bir
ekilde kullanabiliriz.



UYGULAMA 2

Sras ile veritabanna tklayalm, altnda bulunan "Tables" sekmesine sa tklayalm ve "New
Table" diyelim. Aada grnen pencere alacaktr.






Gelen ekranda bulunan 'Column Name' altna stun admz, 'Data Type' altna veri tipimizi ve
'Allow Nulls' blmnde ise eer iaretlersek 'Null' deer alr iareti kaldrrsak 'Not Null'
deeri alr.



imdi yeni oluturacamz tablomuzun alanlarn aadaki resimdeki gibi dolduralm.







Alanlar aadaki gibi oluturduktan sonra 'Id' stunumuza 'Primary Key' atayalm ve identity
zellii vererek birer birer artmasn salayalm. Bunun iin nce 'Id' stununa sa tklayp
'Set Primary Key'e tklayalm.




Bylelikle 'Id' stununa birincil anahtar tanmladk. imdi sra artan saysal deer
vermeye yani identity atamaya geldi. Bunun iin 'Id' stunu seili iken 'Column Properties'de
'Identity Specification' sekmesinin yannda bulunan ' + ' ya tklayalm ve (Is Identty)
seeneini 'Yes' olarak deitirin. Hemen altnda bulunan 'Identity Increment' art miktarn,
'Identity Seed' ise balang deerini belirler. Bu ayarlar da yaptktan sonra tablomuzu
'prestige' adnda kaydedelim.





Tablomuzu oluturduktan sonra 'Object Explorer' iinde bulunan veri tabanmzn altndaki
'Tables' sekmesine sa tklayp 'Refresh' derseniz oluturduumuz tabloyu grebilirsiniz.




LOCAL DEKEN TANIMLAMA
SQL Server'da deikenler DECLARE ifadesi kullanlarak oluturulur.

Yazm ekli

DECLARE @degisken_adi <veri_tipi> [(boyut)]



rnek:

DECLARE @ogr_no VarChar(10)
DECLARE @tckimlik_no int

Aralara virgl koyarak da birden fazla deikeni tek bir DECLARE ifadesi ile
Oluturabilir siniz.

rnek:

DECLARE @ogr_no varchar(10),@tckimlik_no int

Varchar, int trlerinde deiken tanmlayabildiiniz gibi tablo trnde deiken de
Tanmlaya biliriz.

rnek:

DECLARE @deiken_ad TABLE (tablo tanm) eklindedir. Bir deiken oluturulduunda
NULL deere sahiptir. Deikenlere deer atamann SET, SELECT ve tablolar iin INSERT
INTO gibi birka farkl ekli vardr.

SET ifadesi kullanlarak deikene deer atama

SET @deiken_adi=deer

eklinde yaplr.






lem Operatr Trleri
T-SQLde ilem yapabilmek iin baz operatrlere ihtiya duyulur.

i. Karlatrma Operatrleri

Karlatrma ifadesinde karlatrlan verilerin tr ayn olmaldr. Yani karakter veri tr ile
ancak karakter trnde baka bir veri; bir saysal veri ile ancak saysal olan baka bir veri
karlatrlabilir.

OPERATR ANLAMI
< Kk
> Byk
= Eit
<= Kk veya eit
>= Byk veya eit
<> Eit deil
!= Eit deil
LIKE Metin Karlatrma Operatr




rnek:

renci veri tabannda Tablo 2deki ikinci notu 56dan kk olan rencileri
listeleyen T-SQL kod satrlardr.

SELECT *FROM tablo2
WHERE nt2<=56


rnek:

Ad Ali olmayan kaytlar listelemek iin kullanlan T-SQL kod satrlardr.

SELECT *FROM Personel
WHERE ad<>Ali

Joker Karakterler

Sadece LIKE operatryle kullanlan joker karakterler, bir veya daha fazla harfin
yerine geer. Belirli aralklardaki belli harfle balayan ve biten sorgularda joker karakterler
kullanlr.





Joker Karakterler Anlam

% Birden fazla harf ya da rakamn yerini tutar.
_ Bir tek harf veya rakamn yerini tutar.
[HARF] Herhangi bir harf yerine gelebilecek harfleri belirtir.
[^HARF] Herhangi bir harf yerine gelemeyecek harfleri belirtir.
[A-Z] A ile Z arasndaki harfleri belirtir.


rnek:


tablo1 tablosundaki ad alan iinde ba taraf Er ile balayan isimleri listeleyen TSQL
kodlardr.

SELECT *FROM tablo1 WHERE ad LIKE '%Er%'

rnek:
tablo1 tablosundaki soy ad alan iinde ba taraf DE ile balayan soyadlar listeleyen
T-SQL kodlardr.

SELECT *FROM tablo1 WHERE soy ad LIKE '%DE%'





ii. Mantksal Operatrler


NOT, OR ve AND mantksal operatrleri yardm ile birden ok koulun Gereklemesine
bal olarak ifade edilebilecek karmak ya da birleik koullu listelemeleri gerekletirmek
mmkn olmaktadr. BETWEEN ifadesi de AND operatr ile ayn ilemi
gerekletirebilmektedir.

rnek:

Doum tarihi 1970ten nce olan, maa 700 1200 arasnda olan personeli listeleyen
kodlardr.

SELECT * FROM Person
WHERE dogum_tarih<{01/01/70} AND
Maas>=700 AND maas<=1200


rnek:

BETWEEN..AND yapsyla, maa 700 ile 1200 YTL arasnda olanlar gsteren
T_SQL kodlardr.

SELECT * FROM Person
WHERE maas BETWEEN 700 AND 1200


rnek:

Doum tarihi 1970ten byk ve cinsiyeti erkek olan veya doum tarihi 1975ten
byk ve cinsiyeti kadn olan personeli listeleyen T-SQL kodlardr.

SELECT *FROM Person
WHERE dogum_tarih>={01/01/70} AND cinsiyet=Erkek
OR dogum_tarih>={01/01/75} AND cinsiyet=Kadn

NOT: AND operatr OR operatrne gre daha nceliklidir.


rnek:

Sinif tablosunda ad Ali olmayanlar listeleyen T-SQL kodlardr.

SELECT * FROM Sinif
WHERE NOT ad=Ali





rnek:

SELECT * FROM Ogrenci
WHERE bolum=Bilgisayar OR bolum=Elektronik OR bolum=Elektrik
OR operatr yerine In operatr de kullanarak kod satrlarn yazabiliriz.

SELECT * FROM tablo1
WHERE bolum In ('Bilgisayar','Elektronik','Elektrik')


iii. Aritmetiksel Operatrler

T-SQLde kullanlan aritmetiksel operatrler unlardr

OPERATR LEV

% Mod alma
* arpma
/ Blme
+ Toplama
- karma

SELECT komutu ile veri tabannda mevcut tablolardan listeleme yaparken tabloda
ayr bir stun (alan) olarak yer almam ve ancak bir hesaplama sonucunda retilebilecek
bilgileri de listeleme iine almak mmkndr.

rnek:

Ogr_Notlar tablosunda notlarn not ortalamasn hesaplayan T-SQL kodlardr.

SELECT (nt1+nt2+nt3) /3
FROM Ogr_Notlar


ncelik sras, matematikte ve dier bilgisayar dillerinde olduu gibidir. s alma,
hepsinden ncedir. Sonra arpma (*) ve blme (/) gelir. Toplama (+) ve karma (-) en son
nceliklidir. Parantez kullanlarak ncelik sras deitirilebilir.


DNG VE SQL KOMUTLARI
A. F-ELSE-BEGN-END

IF ELSE karar yaps dier programlama dillerinden de hatrlanaca gibi gelen deer ya da
deerlere gre bir kararn verilmesini salayan bir yapdr. Bu yapnn T-SQL deki genel
kullanm biimi yledir.



IF (artlar)

BEGIN

Komutlar1

END

ELSE

BEGIN

Komutlar2

END

UYGULAMA 3


rencilerin vize not ortalamalar 50 den byk ise snfn durumu iyi, dk ise snfn
durumu kt olarak uyar veren bir T-SQL program yazalm.









B. CASE-WHEN

CASE yaps herhangi bir deikenin birden fazla durumla karlatrmak iin
kullanlmaktadr. Genel yaps yledir.

CASE

WHEN art_ifadesi1 THEN Deer1

WHEN art_ifadesi2 THEN Deer2

ELSE Deer3

END


UYGULAMA 4
Bir snftaki rencilerin not ortalamalarna bakarak Geti ya da Kald eklinde ekrana
listeleyen T-SQL cmlecii yle olacaktr.


YAPININ DNAMK OLARAK KULLANILMASI:

Veri taban ad, tablo ad gibi bilgileri; deiken olarak tanmlayp kullanabiliriz. Bu
ekilde tanmlanan Transact-SQL yapsn altrmak iin EXECUTE komutu kullanlr.
alma prensibi




TRANSACTION

"Transaction", daha kk paralara ayrlamayan en kk ilem ynna denir. Belirli bir
grup ilemin arka arkaya gereklemesine ramen, ilemlerin seri ya da toplu halde
deerlendirilip hepsinin dzgn bir ekilde ele alnmas gerektiinde kullanlr.
"Transaction", prensip olarak ya btn ilemleri gerekletirir ya da hibirini
gerekletirmez. lemlerden biri dahi baarsz olursa, bu prensip nedeniyle hibir ilem
olmam kabul edilir; ancak tm ilemler baarl olduunda" transaction", iinde gerekleen
tm veri deiikliklerini onaylam demektir.


Aadaki ekil "transaction" mekanizmasn anlatmaktadr:




"Transaction" aada tablolar ve kodlar kullanlarak adm adm anlatlmtr:
1. Kolon isimleri ve zellikleri aadaki gibi bir tablo oluturulur.


2. Oluturulan tabloya kullanlacak olan veriler girilir.



3. Belirlenen kurala uygun bir "transaction" yazlr. Aadaki kod rneinde "transaction"
sra says kuralna uyulmad iin "commit" kodu almaz, "rollback" komutu alr
ve istenilen hibir deiiklik tablo zerinde yaplamaz.
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
4. Aadaki kod rneinde olduu gibi istenilen kural uygunsa, tablo iin istenilen
deiikliklerin hepsi gerekletirilir.
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
5. Tablonun yeni ekli aadaki gibi elde edilir. isim1 ve isim2 yerine srasyla yazdrlmak
istenilen isim5 ve isim6 yazdrlr.

You might also like