You are on page 1of 56

T.C.

MLL ETM BAKANLII

MEGEP
(MESLEK ETM VE RETM SSTEMNN GLENDRLMES PROJES)

BLM TEKNOLOJLER

T-SQL

ANKARA 2008

Milli Eitim Bakanl tarafndan gelitirilen modller; Talim ve Terbiye Kurulu Bakanlnn 02.06.2006 tarih ve 269 sayl Karar ile onaylanan, Mesleki ve Teknik Eitim Okul ve Kurumlarnda kademeli olarak yaygnlatrlan 42 alan ve 192 dala ait ereve retim programlarnda amalanan mesleki yeterlikleri kazandrmaya ynelik gelitirilmi retim materyalleridir (Ders Notlardr). Modller, bireylere mesleki yeterlik kazandrmak ve bireysel renmeye rehberlik etmek amacyla renme materyali olarak hazrlanm, denenmek ve gelitirilmek zere Mesleki ve Teknik Eitim Okul ve Kurumlarnda uygulanmaya balanmtr. Modller teknolojik gelimelere paralel olarak, amalanan yeterlii kazandrmak koulu ile eitim retim srasnda gelitirilebilir ve yaplmas nerilen deiiklikler Bakanlkta ilgili birime bildirilir. rgn ve yaygn eitim kurumlar, iletmeler ve kendi kendine mesleki yeterlik kazanmak isteyen bireyler modllere internet zerinden ulalabilirler. Baslm modller, eitim kurumlarnda rencilere cretsiz olarak datlr. Modller hibir ekilde ticari amala kullanlamaz ve cret karlnda satlamaz.

NDEKLER
AIKLAMALAR ...................................................................................................................iii GR ....................................................................................................................................... 1 RENME FAALYET - 1 ................................................................................................... 3 1. T-SQL................................................................................................................................... 3 1.1. Transact SQL Kavram ................................................................................................. 3 1.2. Veri Tanmlama Dili (DDL) ......................................................................................... 4 1.2.1. CREATE (Nesne Oluturmak) .............................................................................. 4 1.2.2. ALTER (Nesnelerde Deiiklik Yapmak)............................................................. 5 1.2.3. DROP (Nesne Silmek)........................................................................................... 5 1.3. Veri leme Dili (DML) ................................................................................................ 5 1.3.1. SELECT Komutu .................................................................................................. 6 1.3.2. INSERT Komutu ................................................................................................... 7 1.3.3. UPDATE Komutu ................................................................................................. 7 1.3.4. DELETE Komutu .................................................................................................. 7 1.4. Veri Kontrol Dili (DCL) ............................................................................................... 8 1.4.1. GRANT Komutu ................................................................................................... 9 1.4.2. DENY Komutu ...................................................................................................... 9 1.4.3. REVOKE Komutu ............................................................................................... 10 UYGULAMA FAALYET .............................................................................................. 11 LME VE DEERLENDRME .................................................................................... 15 RENME FAALYET - 2 ................................................................................................. 16 2. T-SQL LE ALIMAK.................................................................................................... 16 2.1. Deikenler ................................................................................................................. 16 2.1.1. Nesne ve Deiken simlendirme Kurallar......................................................... 16 2.1.2. Deiken Tanmlama ........................................................................................... 17 2.1.3. Aklama Satrlar................................................................................................ 18 2.2. Yn Kavram ............................................................................................................ 18 2.2.1. GO Komutu ......................................................................................................... 18 2.2.2. USE Komutu........................................................................................................ 19 2.2.3. PRINT Komutu.................................................................................................... 19 2.3. lem Operatr Trleri ................................................................................................ 19 2.3.1. Karlatrma Operatrleri ................................................................................... 19 2.3.2. Mantksal Operatrler.......................................................................................... 21 2.3.3. Aritmetiksel Operatrler...................................................................................... 22 2.4. Fonksiyonlar ............................................................................................................... 23 2.4.1. Kmeleme Fonksiyonlar..................................................................................... 23 2.4.2. T-SQLde Gruplandrma ..................................................................................... 25 2.4.3. Tarih ve Zaman Fonksiyonlar............................................................................. 27 2.4.4. Karakter Fonksiyonlar ........................................................................................ 29 2.5. SQL Denetim Deyimleri ............................................................................................. 33 2.5.1. IF..ELSE Yaps.................................................................................................. 33 2.5.2. CASE Yaps........................................................................................................ 34 2.5.3. WHILE Dngs ................................................................................................. 35 UYGULAMA FAALYET .............................................................................................. 38 LME VE DEERLENDRME .................................................................................... 46 MODL DEERLENDRME .............................................................................................. 48

CEVAP ANAHTARLARI ..................................................................................................... 49 KAYNAKA ......................................................................................................................... 50

ii

AIKLAMALAR AIKLAMALAR
KOD ALAN DAL/MESLEK MODLN ADI MODLN TANIMI SRE N KOUL YETERLK 481BB0044 Biliim Teknolojileri Veri Taban Programcl T-SQL T-SQL kullanarak veri taban ilemleri yapabilmeyle ilgili renme materyalidir. 40/32 A Veri Taban Kurulumu modln bitirmi olmak Genel Ama Gerekli ortam salandnda T-SQLi kullanabileceksiniz. MODLN AMACI Amalar 1. T-SQL komutlarn kullanabileceksiniz. 2. T-SQL elemanlarn kullanp alabileceksiniz. Ortam: Atlye, laboratuar, bilgi teknolojileri ortam ( internet ) vb. kendi kendinize veya grupla alabileceiniz tm ortamlar Donanm: A veri tabann altrabilecek yeterlikte bilgisayar, yedekleme iin gerekli donanm (cd yazc, flash bellek), raporlama iin yazc, kt ve kalem Her faaliyet sonrasnda o faaliyetle ilgili deerlendirme sorular ile kendi kendinizi deerlendireceksiniz. Modl sonunda uygulanacak lme aralar ile modl uygulamalarnda kazandnz bilgi ve beceriler llerek deerlendirilecektir.

ETM RETM ORTAMLARI VE DONANIMLARI

LME VE DEERLENDRME

iii

iv

GR

GR
Sevgili renci, Okul yaantnzda reneceiniz her konu, yaptnz uygulama ve tamamladnz her modl; bilgi daarcnz gelitirecek ve ileride atlacanz i yaantnzda size baar olarak geri dnecektir. Eitim srecinde daha zverili alr ve alma disiplinini kazanrsanz baarl olmamanz iin hibir neden yoktur. Son yllarda yaplan birok proje, ok sayda bilgisayar tarafndan kullanlabilecek ekilde tasarlanmaktadr. Bu yzden, a ortamnda birden fazla kullanc ayn proje zerinde alabilmektedir. Bu ilemleri ok sk kullandnz veri taban programyla da yapabilmenize ramen a ortamnda gvenlik ve hzl eriim asndan en iyi sonucu veren SQL Server veri tabanyla da yapabilirsiniz. Bu programla milyonlarca kaydn olduu tablolar zerinde ilem yaparken tm kullanclara hitap ederek istenilen sorgu sonularn da en hzl ekilde elde edebileceksiniz. Bu modlle T-SQL kullanarak veri taban ilemlerini ve T-SQL elemanlarn kullanmay reneceksiniz.

RENME FAALYET-1 RENME FAALYET - 1


AMA
T-SQL iin kullanlan dilleri ve bu dillerle ilgili komutlar reneceksiniz.

ARATIRMA
T-SQLin bir nceki SQL Server srmlerine gre yeniliklerini aratrnz.

1. T-SQL
1.1. Transact SQL Kavram
Microsoft'un veri taban sorgulama dilidir. Transact-SQL, SQL Server ve istemci (client) arasnda iletiimi salayan SQL sorgulama dilinin gelimi bir versiyonudur. Transact Structured Query Language kelimelerinin ksaltmasdr. T-SQL kullanarak veri tabanna kayt eklenebilir, silinebilir, gncellenebilir ya da sorgulama ve raporlama yaplabilir. T-SQL ile dng veya mantksal ilemler yapmak iin bir derleyiciye gerek yoktur. Herhangi bir programlama dili renmeden de T-SQL ile tm amalarnza hitap edecek projeler gerekletirebilirsiniz. T-SQL ifadelerini altrabilmek iin bir Management Studio ile SQL Servera erimeniz gerekir. SQL deyimleri veritabanlar zerinde eitli ilemleri yerine getirir. Veri tabanndan sorgulama yapmak iin SELECT, ekleme yapmak iin INSERT gncelleme yapmak iin UPDATE, silme yapmak iin DELETE, yeni tablo oluturmak iin CREATE TABLE gibi komutlara sahiptir. Bu komutlar, ilevlerine gre u ekilde ayrlr: DDL (Data Definition Language): Veri tanmlama dili DML (Data Manipulation Language) : Veri ileme dili DCL (Data Control Language): Veri kontrol dili

1.2. Veri Tanmlama Dili (DDL)


SQL Server iinde veri taban, tablo ve kullanc tanml veri tipleri gibi nesneler oluturmak ve bunlar yaplandrmak iin kullanlr. Temel komutlar aadaki ekildedir:

Temel Komutlar CREATE ALTER DROP

Aklama Nesne oluturmak iin kullanlr. Nesneler zerinde deiiklik yapmak iin kullanlr. Nesneleri silmek iin kullanlr.

1.2.1. CREATE (Nesne Oluturmak)


Veri tabanndaki nesnelerin oluturulabilmesi iin CREATE komutu kullanlr. Oluturulacak nesnenin zellikleri dikkate alnarak farkl parametreler kullanlmaldr. Genel Yazm CREATE nesne_adi rnek: CREATE DATABASE Person Person adnda bir veri taban oluturulur. rnek: CREATE TABLE PERSONEL( PERSONEL_ID int, AD varchar(10), SOYAD varchar(10) ) Bu ekilde bir yazmla PERSONEL adnda bir tablo oluturulur. Tablo stunlar da PERSONEL_ID, AD, SOYADdr. rnek: CREATE TABLE PERSONELYAKIN( PERSONEL_ID int, YAKIN_ID int, YAKIN_AD varchar(10), YAKIN_SOYAD varchar(10) ) Bu rnekte de PERSONELYAKIN adnda bir tablo oluturulmutur. Tablo stunlar da PERSONEL_ID, YAKIN_ID, YAKIN_AD, YAKIN_SOYAD dr.

1.2.2. ALTER (Nesnelerde Deiiklik Yapmak)


Daha nceden oluturulmu bir nesne zelliinin deitirilmesini salar. Genel Yazm ALTER nesne nesne_adi deiim_cmlesi rnek: ALTER TABLE PERSONEL ADD BABA_AD varchar(20) NOT NULL Bu ekildeki bir yazmla PERSONEL tablosuna BABA_AD stunu eklenmitir. NOT NULL ile de bu stuna veri girii zorunlu hle getirilmitir. rnek ALTER TABLE PERSONEL ALTER COLUMN AD varchar(15) NOT NULL Bu yazm ile de varolan AD stununun alabilecei karakter says 15 olarak deitirilmi ve veri girii zorunlu hle getirilmitir.

1.2.3. DROP (Nesne Silmek)


Bir nesnenin silinmesini salayan komuttur. DROP komutu tm nesneler iin kullanlr. Genel Yazm DROP nesne nesne_adi rnek: DROP TABLE PERSONEL Bu ekilde bir yazmla PERSONEL tablosu silinmi olur.

1.3. Veri leme Dili (DML)


Veri taban iindeki veriler ile ilgili ilemler yaplmasn salar. Temel komutlar aadaki ekildedir. Temel Komutlar SELECT INSERT UPDATE DELETE Aklama Veri tabanndaki verileri semeyi salar. Veri tabanna yeni veriler eklemek iin kullanlr. Veriler zerinde deiiklik (gncelleme) yapmak iin kullanlr. Veri tabanndan veri silmek iin kullanlr.

1.3.1. SELECT Komutu


Verilere erimek iin en sk kullanlan komuttur. Bir tablodaki bir veya daha ok alan iin SELECT komutu yazlabilir. Genel Yazm SELECT stun_adi1, [stun_adi2],. [*] FROM tablo_adi rnek: SELECT * FROM PERSONEL Bu yazmla PERSONEL tablosundaki tm alanlar seilmi olur. rnek: SELECT PERSONEL_ID, AD FROM PERSONEL Bu yazm ile de PERSONEL tablosundaki PERSONEL_ID ve AD alanlar seilmi olmaktadr. rnek: SELECT AD+ + SOYAD FROM PERSONEL PERSONEL tablosunda yer alan AD ve SOYAD alanlarn tek bir stun gibi birletirerek gstermeyi salayan SELECT ifadesidir. rnek: SELECT ad FROM rehber ifadesiyle rehber tablosundaki sadece ad alan bilgilerinin elde edilmesini salar. rnek: SELECT * FROM rehber WHERE ad=Ali ifadesiyle ad alanndaki Ali ismindeki tm kaytlarn elde edilmesini salar. rnek: SELECT * FROM rehber WHERE ad=Tuncay ORDER BY ad ASC Verilen koullara gre stundaki bilgileri artan (ASC) ya da azalan (DESC) srada ekrana getirir. WHERE ile oluturulan koul ifadelerinde mantksal operatrler de kullanlabilir (and, or,not).

rnek: SELECT * FROM rehber ORDER BY ad, soyad ifadesiyle ad alanna gre kaytlar, ad ayn olanlar da soyad alanna gre seme ilemini gerekletirir.

1.3.2. INSERT Komutu


Veri tabanna yeni bir kayt eklemek iin kullanlr. Genel Yazm INSERT INTO tablo_adi (stunadi1 [,stunadi2,..]) VALUES (deger1 [,deger2, ..]) rnek: INSERT INTO PERSONEL (AD,SOYAD) VALUES (Ceylin,Ylmaz) eklindeki ifadeyle Personel tablosunun ad ve soyad alanlarna yeni deerler ekler.

1.3.3. UPDATE Komutu


Kaytlar gncellemek iin kullanlr. Hangi kaytlarn gncellenecei bir koul veya koullarla belirtilebilir. Genel Yazm UPDATE tablo_adi SET alan_adi=deger WHERE art rnek: UPDATE PERSONEL SET AD=Ceylin WHERE SOYAD=Ylmaz biimindeki bir bildirim soyad Ylmaz olan kaytlarn ad bilgisini Ceylin olarak deitirir. Eer birden fazla Ylmaz soyad olsayd hepsinin ad alan Ceylin olarak deitirilecekti. SET szc deitirilecek kolonlar ve deerleri belirtir. WHERE szc ise deitirilecek satr belirtir.

1.3.4. DELETE Komutu


Tablodan kayt silmek iin kullanlr.

Genel Yazm DELETE FROM tablo_adi WHERE art

rnek: DELETE FROM PERSONEL WHERE SOYAD=Ylmaz SOYAD deeri Ylmaz olan tm kaytlar siler.

1.4. Veri Kontrol Dili (DCL)


DCL, bir veri taban ile ilikili kullanclar ve rollerin izinlerini deitirmek iin kullanlr. Dier bir deyile verilere eriim yetkilerini dzenlemede kullanlr. Temel komutlar aadaki ekildedir. Temel Komutlar GRANT DENY REVOKE Aklama Bir kullancnn verileri kullanmasna ve T-SQL komutlarn altrmasna izin verir. Bir kullancnn verileri kullanmasn kstlar. Daha nce yaplan tm kstlama ve izinleri iptal eder.

DCL komutlarn kullanabilmek iin SQL Server'da varsaylan deer (default) olarak yetki sahibi olan gruplar: sysadmin , dbcreator , db_owner , db_securityadmin 'dir. Sunucuya dardan bir eriim salamak iin bir giri (login) oluturulmaldr. Bunun iin; CREATE LOGIN Tuncay1 WITH PASSWORD =123456 Bu rol ile veri tabanna bir kullanc olarak eriim iin aadaki satrlar yazlmaldr: CREATE USER Tuncay FOR LOGIN Tuncay1 Eer User ad ile Login ad ayn ise FOR LOGIN satrna gerek kalmaz. Veri tabannda uygulama rol oluturulmas iin de aadaki satrlar kullanlabilir: CREATE APPLICATION ROLE Lab1 WITH PASSWORD = sifre , DEFAULT_SCHEMA=Lab1;

1.4.1. GRANT Komutu


Veri taban kullancsna, veri taban rolne veya uygulama rolne izinler vermek iin kullanlan komuttur. Genel Yazm GRANT {ALL veya izinler} ON {izin_verilenler} TO {hesaplar} ALL ifadesi, tm haklarn verilebileceini gsterir. rnek: Tuncay1 adl kullancya tablo oluturma izni yle verilebilir: GRANT CREATE TABLE TO Tuncay1 Ayn anda Lab1 rolne de ayn izin verilebilir. GRANT CREATE TABLE TO Lab1, Tuncay1 rnek: Bir kullancya hem veri taban hem de tablo oluturma izni yle verilir: GRANT CREATE DATABASE, CREATE TABLE TO Ahmet

1.4.2. DENY Komutu


Kullanclarn haklarn kstlayan komuttur. Genel Yazm DENY { ALL veya izinler} TO {kullanclar} rnek: DENY CREATE TABLE TO Tuncay1 Tuncay1 adl kullancnn tablo oluturma yetkisi kstlanr. rnek: DENY SELECT ON PERSONEL TO Tuncay1

PERSONEL tablosunda Tuncay1 adl kullanc SELECT komutuyla ilgili ilem yapamaz.

1.4.3. REVOKE Komutu


Daha nce yaplan tm kstlama ve izinleri iptal eden komuttur. Bir nesneyi oluturan kullancnn REVOKE ile nesne zerindeki yetkilendirme ve kullanma hakk yok edilemez. REVOKE komutunu, sys_admin rolne veya db_owner, db_securityadmin sabit veri taban rollerine sahip kullanclar ve nesne iin dbo olan kullanc altrabilir. Genel Yazm REVOKE {ALL veya izinler} {TO veya FROM} {hesaplar} rnek: REVOKE ALL TO PUBLIC PUBLIC rolne verilmi olan tm yetkiler kaldrlr. rnek: REVOKE SELECT ON PERSONEL TO PUBLIC PUBLIC rolne PERSONEL tablosunda seim iin verilen izin kaldrlr.

10

UYGULAMA FAALYET UYGULAMA FAALYET


lem Basamaklar neriler CREATE DATABASE komutunu kullanabilirsiniz. T-SQLi kullanarak Ornek adnda bir veri taban oluturunuz.

Resim 1.1: Veri taban oluturma

Yazdnz sorguyu altrnz.

Klavyeden F5 tuuna basabilir veya Execute komutuna tklayabilirsiniz. Sorgu altrldktan sonra Database Refresh etmeyi unutmaynz.

Object Explorer penceresinde sorgusunu yazdnz veri tabannn oluturulup oluturulmadn kontrol ediniz.

Resim 1.2: Refresh

Ornek veri taban altnda Rehber adnda bir tablo oluturunuz. Tablo stunlar Ad VarChar(10), Soyad VarChar(20), Telefon VarChar (11) eklinde olsun.

Resim 1.3: Tablonun oluturulmas

Oluturduunuz tabloya Adres adnda bir stun ekleyiniz.


Resim 1.4: Yeni bir stun ekleme

11

Oluturduunuz tabloya kendi bilgilerinizi ve ailenizden iki kiinin bilgilerini ekleyiniz.


Resim 1.5: Bilgilerin tabloya eklenmesi

Tablo zerinde sa tklayarak Open Table komutunu tklayabilir ve tablonuzu aabilirsiniz.

Eklediiniz bilgilerin tabloya yazlp yazlmadn kontrol ediniz.

Resim 1.6: Open Table komutu

Resim 1.7: Tablo ierii

UPDATE komutunu kullanabilirsiniz. Kendi telefon numaranz baka bir telefon numarasyla deitiriniz.
Resim 1.8: Bilginin gncellenmesi

Ailenizden birinin bilgilerini siliniz.


Resim 1.9: Bilginin silinmesi

SELECT komutunu kullanabilirsiniz. Tablonuzda kalan bilgileri grntleyiniz.


Resim 1.10: Kaytlarn gsterilmesi

12

Results penceresinden sonucu kontrol ediniz.


Resim 1.11: Results penceresi

Tablonuzdaki bilgileri Ad stununa gre artan ve azalan srada grntleyiniz.

Resim 1.12: Artan ve azalan srada gsterim

Sunucuda Kullanici adnda bir login oluturunuz.

Resim 1.13: Login oluturulmas

Sunucudaki Security/Logins alannda Loginin oluturulup oluturulmadn kontrol ediniz.

Resim 1.14: Logins

Ayn isimde bir kullanc oluturunuz.

Resim 1.15: Kullanc oluturulmas

Ornek veri tabanndaki Security/Users alannda kullancnn oluturulup oluturulmadn kontrol ediniz.
Resim 1.16: Users

13

Kullanici adl usera SELECT ifadesinin kullanmn engelleyiniz.


Resim 1.17: DENY ile eriimin kstlanmas

14

LME VE DEERLENDRME LME VE DEERLENDRME


Aadaki sorular dikkatlice okuyarak doru/yanl seenekli sorularda uygun harfleri yuvarlak iine alnz. Seenekli sorularda ise uygun kk iaretleyiniz. Boluk doldurmal sorularda boluklara uygun cevaplar yaznz. 1. Aadakilerden hangisi veri tanmlama dili komutlarndan deildir? A) CREATE B) DELETE C) DROP D) ALTER Veri taban kullancsna izin vermek iin Revoke komutu kullanlr (D/Y). Eer User (kullanc) ile Login (giri) ad aynysa . satrn yazmaya gerek yoktur. Aadakilerden hangisi T-SQL ile yaplamaz? A) Kayt silinebilir. B) Kayt eklenebilir. C) Form oluturulabilir. D) Raporlama yaplabilir. Aadakilerden hangisi DML komutudur? A) SET B) UPDATE C) INTO

2. 3.

4.

5.

D) CREATE

6.

Bir veri tabanyla ilikili kullanclar ve rollerin izinlerini deitirmek iin kullanlan dile ............................................. denir. Bir kullancnn veri taban veya tabloya eriimini engellemek iin DENY komutu kullanlr. (D/Y) DCLde sunucuya dardan bir eriim iin oluturulur. Aadakilerden hangisi veri tabannda eitli ilemleri yerine getiren dillerden deildir? A) DCL B) DDL C) DML D) DSL Kullancya verilen tm kstlamalar kaldrmak iin GRANT komutu kullanlr. (D/Y)

7.

8. 9.

10.

DEERLENDRME Cevaplarnz cevap anahtar ile karlatrnz. Doru cevap saynz belirleyerek kendinizi deerlendiriniz. Yanl cevap verdiiniz ya da cevap verirken tereddt yaadnz sorularla ilgili konulara geri dnerek tekrar inceleyiniz. Tm sorulara doru cevap verdiyseniz dier modle geiniz.

15

RENME FAALYET-2 RENME FAALYET - 2


AMA
T-SQL deikenlerini, operatrlerini, deyim bloklarn ve fonksiyonlarn kullanp altrabileceksiniz.

ARATIRMA

T-SQLde deiken kullanmaya ihtiya duyulmasnn nedenlerini aratrnz.

2. T-SQL LE ALIMAK
2.1. Deikenler
Deiken, verilerin bellekte geici olarak kaydedilmesini ve gerektiinde kullanlmasn salayan deerdir. T-SQL kullanmann en byk kolaylklarndan biri de deiken kullanmna olanak tanmasdr. Burada ifade edilen; deiken dier tm programlama dillerinde yer alan bir veri tipi ile snrlandrlm, oluturulmasnn ardndan hafzada belli bir yer kaplayan, zerine veri atamas yaplabilen ve daha sonra ismi kullanlarak program ierisinden arlp kullanlabilecek yapdr. SQL Server'da da deikenler yerel ve genel olmak zere ikiye ayrlr. Yerel deikenler, "@" n eki ile tanmlanr (@deiken). Genel deikenler ise SQL Server tarafndan tanmlanmtr ve kullanc tarafndan oluturulamaz. "@@" n eki ile tanmlanrlar (@@SERVERNAME). Genel deikenler genellikle SQL Server hakkndaki bilgileri verir. SQL Server'da tanmlanm birok genel deiken vardr.

2.1.1. Nesne ve Deiken simlendirme Kurallar


Nesne veya deikene bir isimlendirme yaparken aadaki kurallara dikkat etmelisiniz: Harf veya alt izgi (_) ile balamaldr. Trke karakterler ve boluk isimlendirmede kullanlmamaldr. Deiken ismi SQLde zel anlam olan sembollerle (@, @@, #, ##, $) balamamaldr. T-SQL komutlar deiken ismi olarak verilmemelidir (SELECT,UPDATE vb).

16

SQL ifadeleri prensip olarak byk harfle yazlr. Nesne isimleri ksa ve anlaml olmaldr. Nesne isimlendirilirken ilerin kolaylatrlmas asndan tekil isim tercih edilmelidir (TabloOgrenciler yerine tblOgrenci gibi). NULL terimi, daha nce hibir ey girilmemi (deersiz) anlamndadr. Klavyedeki SPACE (ASCII 32) tuu ile NULL ayn deerleri iermez. NULL bo veya bilinmeyen deerler iin kullanlr.

2.1.2. Deiken Tanmlama


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 oluturabilirsiniz. rnek: DECLARE @ogr_no varchar(10),@tckimlik_no int Varchar, int trlerinde deiken tanmlayabildiiniz gibi tablo trnde deiken de tanmlayabiliriz. 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.

17

SELECT ifadesiyle deer atama

SELECT @deiken_ad=deer eklinde yaplr. Tablo deikenlere INSERT INTO ifadesi ile deer atama INSERT INTO @tablo_degisken SELECT adi, soyadi FROM person ifadesi ile person tablosunun ad ve soyad stunlarnn ierdii deerlerden oluan bir tabloyu @tablo_deiken adl deikene atam olursunuz.

2.1.3. Aklama Satrlar


T-SQL'de bir satrn dikkate alnmamasn istiyorsanz "--" kullanabilir ya da /*........*/ kullanabilirsiniz. rnek: -- CREATE TABLE ogrenci veya /* CREATE TABLE ogrenci */ eklindeki kullanmlardan birini seebilirsiniz.

2.2. Yn Kavram
SQL Serverda yn, sorgularn srayla ileme alnmas demektir. alma esnasnda SQL Servera gnderilen birden fazla sorgu ynlar hlinde ele alnr.

2.2.1. GO Komutu
Bir ynn sonunu belli etmek iin GO komutu kullanlr. Bir yn SQL Serverda ilenmeye balad anda nce Parse(ayrtrma) edilir. Daha sonra derlenerek (Compile) altrlr(Execute). Genel Yazm

Komutlar Komutlar GO eklindedir.

18

2.2.2. USE Komutu


T-SQLde alacanz veri tabann belirme ilemi iin bu komut kullanlmaldr. USE komutuyla hangi veri taban zerinde ilem yaplaca belirtilir. Genel Yazm

USE Veritabani_Adi eklindedir. rnek: USE master

2.2.3. PRINT Komutu


Deikenlerin deerlerini, hatalar vb. dier ihtiya duyulan olaylarda PRINT komutu kullanlr. DEBUG ilemi iin ihtiya duyulan bir komuttur. Genel Yazm PRINT @degisken_adi eklindedir. rnek: USE Deneme GO DECLARE @ad VARCHAR(10) SELECT @ad=Mustafa GO PRINT @ad GO ad deikeninin ierii PRINT ile gsterilmi olacaktr.

2.3. lem Operatr Trleri


T-SQLde ilem yapabilmek iin baz operatrlere ihtiya duyulur.

2.3.1. 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.

19

OPERATR < > = <= >= <> != LIKE

ANLAMI Kk Byk Eit Kk veya eit Byk veya eit Eit deil Eit deil 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 % _ [HARF] [^HARF] [A-Z] rnek: tablo1 tablosundaki ad alan iinde ba taraf Er ile balayan isimleri listeleyen TSQL kodlardr. SELECT * FROM tablo1 WHERE ad LIKE '%Er%' Anlam Birden fazla harf ya da rakamn yerini tutar. Bir tek harf veya rakamn yerini tutar. Herhangi bir harf yerine gelebilecek harfleri belirtir. Herhangi bir harf yerine gelemeyecek harfleri belirtir. A ile Z arasndaki harfleri belirtir.

20

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

SELECT * FROM tablo1 WHERE soyad LIKE '%DE%'

2.3.2. 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.

21

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')

2.3.3. 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.

22

2.4. Fonksiyonlar
2.4.1. Kmeleme Fonksiyonlar
SQL, tablo iinden eitli matematiksel ilemlerin sonucunu otomatik olarak retmeyi salayan fonksiyonlara sahiptir. SUM Fonksiyonu

Fonksiyonla belirtilen stun ile ilikili olarak toplama ilemini yapar. rnek: Ogr_Notlar tablosunda nt1 stununun not toplamn hesaplayan T-SQL kodlardr. SELECT SUM(nt1) FROM Ogr_Notlar rnek: Maalar 500 YTLnin altnda olan personelin maalar toplamn hesaplayan T-SQL kodlardr. SELECT SUM(maas) FROM Person WHERE maas<500 AVG Fonksiyonu

Aritmetiksel ortalama (avarage) hesaplamak iin kullanlr. rnek: ilerin maalar ortalamasn veren T-SQL kodlardr. SELECT AVG(maas) FROM Person Bu fonksiyon ile de koula bal olarak hesaplatma yaptrlabilir. MAX Fonksiyonu

Tablo iinde, belirtilen stun (alan) iindeki en byk deeri bulur.

23

rnek: Ogr_Notlar tablosu iindeki en yksek renci not ortalamasn veren T-SQL kodlardr. SELECT MAX(not_ortalama) FORM Ogr_Notlar MIN Fonksiyonu

Tablo iinde belirtilen stun (alan) iindeki en kk deeri bulur. rnek: Ogr_Notlar tablosu iindeki en dk renci not ortalamasn veren T-SQL kodlardr. SELECT MIN(not_ortalama) FORM Ogr_Notlar COUNT Fonksiyonu

Tablo ierisinde herhangi bir sayma ilemi gerekletirmek iin kullanlr. rnek: Ogr_Notlar tablosu iindeki renci not ortalamalarnn saysn veren T-SQL kodlardr. SELECT COUNT (not_ortalama) FROM Ogr_Notlar COUNT fonksiyonu, DISTINCT szc ile de kullanlabilir. DISTINCT, her bir kaydn tekil olarak yer almas istendiinde bu deyim kullanlr. Normalde SELECT ile ayn zellie sahip birden fazla kayt listelenebilir.

rnek: Bir okulda birden fazla blme kaytl renci olabilir. Sadece okuldaki blm adlarn listeleyen T-SQL kodlardr. SELECT DISTINCT bolum FROM Ogrenci rnek: Bir okulda birden fazla blme kaytl renci olabilir. Sadece okuldaki blmlerin saysn listeleyen T-SQL kodlardr. SELECT COUNT (DISTINCT bolum) FROM Ogrenci

24

COUNT komutunda, * karakterinin kullanlmas, btn stunlarn ileme sokulmasn salar.

2.4.2. T-SQLde Gruplandrma


GROUP BY yardmc szc bir alana gre kaytlar gruplamak iin kullanlr. Genel kullanm aadaki gibidir: SELECT [ DISTINCT | ALL ] <stun(lar)> FROM <tablo ad (lar)> [ WHERE <art (lar)> ] [ GROUP BY <stunlar>] rnek: renci notlar tablosunda renci numarasna gre her bir rencinin alm olduu not ortalamalarn gsteren T-SQL kodlardr. SELECT ogrno, AVG(ort) FROM tablo2 GROUP BY ogrno

Resim 2.1: Group By kullanm

rnek: renci notlar tablosunda renci numarasna ve blm adna gre her bir rencinin alm olduu not ortalamalarn gsteren T-SQL kodlardr. SELECT ogrno,bolum,MAX(ort) FROM Tablo2 GROUP BY ogrno,bolum

Resim 2.2: Group By kullanmnn dier grnm

25

Gruplandrarak kmeleme fonksiyonlarn uygularken koul da verilebilir. Bu durumda, grup zerindeki hesaplamalarla ilikili koul belirtirken HAVING szcn kullanmak gerekir. rnek: renci notlar tablosunda renci numarasna gre her bir rencinin alm olduu not ortalamasn 70den byk gsteren T-SQL kodlardr. SELECT ogrno,AVG(ort) FROM Ogr_Notlar GROUP BY ogrno HAVING AVG(ort)>70

Resim 2.3: HAVING kullanm sonucu ekran grnts

HAVING szc, SELECT komutunda GROUP BY szckleri bulunmad zaman geersizdir. HAVING szcn izleyen ifade iinde SUM, COUNT (*), AVG, MAX ya da MIN gibi kmeleme fonksiyonlarndan en az biri bulunmaldr. WHERE szc bir tablonun tek tek satrlar zerinde ilem yapan koullar iin geerli iken HAVING szc ,sadece gruplanm veriler zerindeki ilemlerde geerlidir.

rnek: renci notlar tablosunda renci numarasna gre blm Bilgisayar ve rencinin alm olduu not ortalamas 65ten byk olanlar gsteren T-SQL kodlardr. SELECT ogrno,bolum,AVG(ort) FROM Ogr_Notlar WHERE bolum='Bilgisayar' GROUP BY ogrno,bolum HAVING AVG(ort)>65

Resim 2.4: Sorgunun ekran grnts

26

COMPUTE ve COMPUTE BY Deyimleri

Toplama fonksiyonunu kullanarak sonu olarak bir toplam deeri retir. COMPUTE deyimi her SELECT ifadesiyle kullanlr. COMPUTE BY ise ORDER BY deyimine gerek duyar. rnek: renci notlar tablosundaki renci numarasna gre ortalama stunundaki deerleri toplayarak bir sonu reten T-SQL kodlardr. SELECT ogrno, ort FROM Ogr_Notlar ORDER BY ogrno COMPUTE SUM(ort)

Resim 2.5: COMPUTE BY deyiminin kullanmnn sonucu

2.4.3. Tarih ve Zaman Fonksiyonlar


Tarih ve zaman zerinde ilem yapmay salayan fonksiyonlardr. GETDATE () Fonksiyonu

imdiki tarih ve saat deerini gsterir. rnek: SELECT GETDATE()

Resim 2.6: Sistem tarih ve saatinin gsterilmesi

27

DATEADD () Fonksiyonu

Verilen bir tarihe istenilen sayda bir tarih bilgisi eklemek iin kullanlr. DATEADD fonksiyonunda dd gn mm ay yy yl anlamndadr. rnek: Belirtilen tarih bilgisine 90 gn ekleyen T-SQL kodudur. SELECT DATEADD(dd, 90, '02.10.2007')

Resim 2.7: Tarihe gn eklenmesi

SELECT DATEADD(mm, 2, '02.10.2007')

Resim 2.8:Tarihe 2 ay eklenmitir.

SELECT DATEADD(yy, 2, '02.10.2007')

Resim 2.9: Tarihe 2 yl eklenmitir.

DATEDIFF () Fonksiyonu

Belirtilen iki tarih arasndaki gn saysn gstermektedir. rnek: SELECT DATEDIFF(dd, '04.04.1974', '02.10.2007')

Resim 2.10: ki tarih arasndaki gn saysnn gsterimi

Ayrca hafta iin wk, saat iin hh, dakika iin mi, saniye iin ss kullanlabilir.

28

DATEPART () Fonksiyonu

Tarihle ilgili saysal bilgilerin alnmasn salar. rnek: SELECT DATEPART(dd, '01.04.1974') SELECT DATEPART(mm, '01.04.1974') SELECT DATEPART(yy, '01.04.1974')

2.4.4. Karakter Fonksiyonlar


Karakter alanlarla ilgili ilem yapmak iin bu fonksiyonlar kullanlr. CHAR ()

ASCII kodu verilen karakteri grntler. SELECT CHAR(65) SELECT ASCII(A) A harfini verir. 65 rakamn verir. Deer int tipindedir.

CHARINDEX()

Bir metin ierisindeki metin parasn istenilen konumdan itibaren arar. SELECT CHARINDEX ('bu',@soyad,1)

Resim 2.11: CHARINDEX () fonksiyonunun kullanm

29

LEFT ()

Metnin ba taraftan itibaren istenilen saydaki harflerini alr. SELECT LEFT (@ad,2)

Resim 2.12: LEFT () fonksiyonunun kullanm

LEN ()

Metnin uzunluunu veren fonksiyondur. SELECT LEN(@soyad)

Resim 2.13: LEN () fonksiyonunun kullanm

LOWER ()

Metni kk harfe evirir.

Resim 2.14: LOWER () fonksiyonunun kullanm

30

LTRIM ()

Metnin banda bulunan boluklar siler.

Resim 2.15: LTRIM () fonksiyonunun kullanm

RIGHT ()

Metnin sonundan istenilen kadar karakteri almak iin kullanlr.

Resim 2.16: RIGHT () fonksiyonunun kullanm

RTRIM ()

Metnin sonundaki boluklar siler.

Resim 2.17: RTRIM () fonksiyonunun kullanm

31

REVERSE ()

Metni ters evirir.

Resim 2.18: REVERSE() fonksiyonunun kullanm

SUBSTRING ()

Bir metinde belirtilen karakterden itibaren belirli sayda karakter almak iin kullanlr.

Resim 2.19: SUBSTRING () fonksiyonunun kullanm

UPPER ()

Metnin tmn byk harfe evirir.

Resim 2.20: UPPER () fonksiyonunun kullanm

32

2.5. SQL Denetim Deyimleri


Birden fazla komutu ayn anda iletebilmek iin SQLde bloklar kullanlmaktadr. Tm programlama dillerinde olduu gibi ak kontrollerinde ve dng yaplarnda kullanlan komutlar birden fazla ise mutlaka BEGIN..END blounda yazlmaldr.

2.5.1. IF..ELSE Yaps


Bir deyimin iletilmesini belli bir koula balar. Kullanm

IF koul { deyim } [ ELSE { deyim} ] rnek:

Resim 2.21: renci notlar tablosu

rencilerin not ortalamalarna gre ortalamas 85in zerinde olanlarn durumu iin PEKY, 85ten kk olanlar iin ise Y yazdran T-SQL kod satrlardr.

Resim 2.22: IF..ELSE yapsnn kullanlmas ve sonucu

33

2.5.2. CASE Yaps


Case yaps, birok durum iin dallanmaya msait bir yapdr. Kullanm

CASE deer WHEN deer THEN ilem WHEN deer THEN ilem ELSE ilem END rnek Ktphanedeki kitaplarn mevcut olup olmadn gsteren basit bir T-SQL kodlardr. Tablonun Resim 2.23teki gibi olduunu varsaynz.

Resim 2.23: Ktphane tablosu

Kitaplarn ktphanede olup olmad KitapDurumu stununda belirtilecektir.

Resim 2.24: Case yapsnn kullanm

Case yaps kullanlarak kitap durumlar KitapDurumu stununa yazdrlmtr.

34

2.5.3. WHILE Dngs


Tekrar gerektiren ilemlerde istenilen art gerekleinceye kadar ilem yapmaya olanak salar. While ile bir ilemi istenilen kadar tekrarlatabilirsiniz. Genel yaps u ekildedir: WHILE art BEGIN Tekrarlanmas gereken kodlar END art gerekleinceye kadar BEGIN ile END arasna yazlan kodlar ilem grr. rnek: Saya deikeni 5 deerini alncaya kadar tanmlanan toplam deikenini beer beer arttran programn T-SQL kod satrlardr.

Resim 2.25: Kod satrlar

Execute edilmesi sonucunda ekran grnts Resim 2.26daki gibi olur.

Resim 2.26: Sonu ekran

35

BREAK Komutu

stenilen art salandnda WHILE dngsnden kmak iin BREAK komutu kullanlr. Programn almas WHILEn ENDinin altndaki satrdan almaya devam eder. rnek: Sayacn 3 olmas durumunda WHILE dngsnden kp toplam ve sayacn deerini yazdran T-SQL kodlardr.

Resim 2.27: Kod satrlar

Execute edilmesi sonucunda ekran grnts Resim 2.28deki gibi olur.

Resim 2.28: Sonu ekran

CONTINUE Komutu

Programn almasn WHILE yapsnn bana gndermek iin kullanlan bir komuttur.

36

rnek: Saya deikenin 3 deeri hari dier deerleri ve toplam yazdran T-SQL kodlardr.

Resim 2.29: Kod satrlar

Execute edilmesi sonucunda ekran grnts Resim 2.30daki gibi olur.

Resim 2.30: Sonu ekran

Sonu ekrannda 3 deerinin yazlmadn grnz.

37

UYGULAMA FAALYET UYGULAMA FAALYET -1


lem Basamaklar

neriler Tablonun stun adlar ve veri trleri Ogr_No int, Ad VARCHAR(15), Soyad VARCHAR(20), Cinsiyet VARCHAR(1), Yas int olarak belirleyebilirsiniz.

Veri tabannzda Sinif adnda bir tablo oluturunuz.

Resim 2.31: Tablonun oluturulmas

Tabloya be adet kayt girii yapnz.

Resim 2.32: Tabloya kaytlarn eklenmesi

Ya 17den kk olan rencileri seiniz.


Resim 2.33: Ya 17den kk renciler

Cinsiyeti erkek olmayan rencileri seiniz.


Resim 2.34: Cinsiyeti E olmayan renciler

Soyad K ile balayan rencileri seiniz.


Resim 2.35: Soyad K ile balayanlar

38

Ya 17den byk kz rencileri seiniz.


Resim 2.36:Ya 17den byk kz renciler

Ad Aye olmayanlar seiniz.


Resim 2.37: Ad Aye olmayanlar

Snf tablosunda ya toplamlarn hesaplatnz.

Resim 2.38: Ya toplamlar

Yalar 17 olan rencilerin ya toplamlarn hesaplatnz.


Resim 2.39: Ya 17 olanlarn ya toplamlar

rencilerin ya ortalamasn hesaplatnz.

Resim 2.40: Ya ortalamalar

rencilerin yalar iinde en byk ya deerini seiniz.

Resim 2.41: En byk ya deeri

renciler yalar iinde en kk ya deerini seiniz.

SELECT MIN(Yas) FROM Sinif

Tabloda ka renci olduunu hesaplatnz.

Resim 2.42: renci saysnn bulunmas

Sadece renci numaralarn seiniz.


Resim 2.43: Sadece renci numaralarnn seimi

39

Sadece renci numaralarn ve yalarn seiniz.

Resim 2.44: Sadece renci numaralar ve yalarn seimi

Ya 17den kk olanlar, ad ve soyadlaryla beraber seiniz.


Resim 2.45: Ad ve soyadlaryla ya 17den kk olanlarn seimi

Ya 16dan byk olanlar, renci numaralar ve cinsiyetleriyle beraber seiniz.

Resim 2.46: renci numaralar ve cinsiyetleri ya 16dan byk olanlarn seimi

40

UYGULAMA FAALYET - 2
lem Basamaklar Sistem tarih ve saatini grntleyiniz. Sistem tarihine 120 gn ekleyiniz. Sistem tarihine 10 ay ekleyiniz. Sistem tarihine 1 yl ekleyiniz. 29 Ekim 1923 ile gnmz arasnda ka gn olduunu bulunuz. Karaktersel trde ve uzunluklar 50 olan deiken tanmlaynz. @kelime1 deikenine Pamuk deerini, @kelime2 deikenine Kale deikenini ataynz. @kelime1 ve @kelime2 deikenlerinin ieriini @kelime3 deikenine SET deyimini kullanarak ataynz. Deikenlerin ieriini mesaj penceresine yazdrnz. @kelime1 ve @kelime2 deikenlerinin ieriini birleik olarak mesaj penceresine yazdrnz. @kelime3 deikeninin ilk drt karakterini seiniz. Yeni bir deiken tanmlayarak @kelime3 deikeninin ilk drt karakterini bu deikene ataynz. Elde ettiiniz bu deeri mesaj penceresine yazdrnz. @kelime3 deikeninin ieriinin uzunluunu bulunuz. Tm deikenlerin ieriini byk harfe eviriniz. Yeni bir deiken tanmlayarak neriler GETDATE() fonksiyonunu kullanabilirsiniz. DATEADD () ve GETDATE()fonksiyonlarn ayn anda kullanabilirsiniz. DATEADD () ve GETDATE ()fonksiyonlarn ayn anda kullanabilirsiniz. DATEADD () ve GETDATE()fonksiyonlarn ayn anda kullanabilirsiniz. DATEDIFF () ve GETDATE()fonksiyonlarn ayn anda kullanabilirsiniz. DECLARE komutunu kullanabilirsiniz. Deiken adlar olarak da @kelime1, @kelime2 ve @kelime3 tanmlayabilirsiniz. SET deyimini kullanabilirsiniz. SET deyimiyle + operatrn kullanabilirsiniz. PRINT komutunu kullanabilirsiniz. PRINT komutuyla + operatrn kullanabilirsiniz. LEFT() fonksiyonunu kullanabilirsiniz. SET deyimini ve LEFT () fonksiyonunu ayn anda kullanabilirsiniz. PRINT komutunu kullanabilirsiniz. LEN() fonksiyonunu kullanabilirsiniz. UPPER () fonksiyonunu kullanabilirsiniz. SET deyimini ve RIGHT()fonksiyonunu

41

@kelime3 deikeninin sandan kullanabilirsiniz. drt karakter seiniz ve bu deikene ataynz. Yeni deikenin tm karakterlerini LOWER () fonksiyonunu kullanabilirsiniz. kk harfe eviriniz. @kelime3 deikeninin altnc SUBSTRING () fonksiyonunu karakterinden balayarak 3 karakter kullanabilirsiniz. seiniz.

42

UYGULAMA FAALYET - 3
lem Basamaklar int veri trnde iki tane deiken tanmlaynz. Bu iki deikene iki tam say ataynz. neriler DECLARE ifadesini kullanabilirsiniz.

SET ifadesini kullanabilirsiniz.

IF yapsn kullanabilirsiniz.

Eer birinci say ikinci saydan bykse mesaj penceresine Birinci say ikinci saydan byktr. cmlesini yazdrnz.

Resim 2.47: If yaps

Birinci say ikinci saydan byk olmayabilir. Bunun ELSE blouyla dier durumu da gz nne alarak Birinci say ikinci saydan kktr. cmlesini yazdrnz. Deer atanan iki deikenin toplamn yeni bir deiken tanmlayarak toplatnz.

Resim 2.48: ELSE blou

Resim 2.49: ki saynn toplam

Eer iki saynn toplam 5ten bykse ki saynn toplam 5 ten byktr. mesajn yazdrnz. ki saynn toplam 5ten kk olabilir. Bu yzden oluabilecek dier durumu da kontrol ettiriniz.

Resim 2.50: Toplamn karlatrlmas

Resim 2.51: Dier durum kontrol

43

ki saynn toplamnn 9dan byk olmas durumunda toplam deikenini 10 ile arpan, 10dan kk olmas durumunda 2 ile arpan CASE yapsn yaznz.

Resim 2.52: CASE yaps

CASE ilemi sonucunu mesaj olarak grntleyiniz.


Resim 2.53: lemin sonucu

int veri trnde sayac ve modtoplam adnda iki deiken tanmlaynz ve ilk deerlerini 0 (sfr) olarak ataynz.

Resim 2.54: Deiken tanmlama ve ilk deer atama

sayac deikeni yukarda hesapladnz toplam deikeninden kk olduu srece sayac deikenin 2ye gre modunu toplayan WHILE dngsn yaznz. sayac deikenini beer beer artrnz. Elde ettiiniz mod alma ileminin sonucunu, yani modtoplam deikeninin sonucunu mesaj olarak yazdrnz.

Resim 2.55: While dngs kullanm

Resim 2.56: Mod ilemi sonucu

SELECT 'Mod ilemi toplamlar sonucu='+ CONVERT(VARCHAR,@modtoplam) eklinde de yazlabilir. CONVERT() fonksiyonu veriyi bir formattan baka bir formata evirmek iin kullanlr. Bylece int trdeki @modtoplam deikeninin ierii karaktersel veri trne evrilmitir.

44

Sorgunun tm aada verilmitir:


DECLARE @sayi1 int DECLARE @sayi2 int SET @sayi1=3 SET @sayi2=6 IF @sayi1>@sayi2 BEGIN PRINT 'Birinci say ikinci saydan byktr' END ELSE PRINT 'kinci say birinci saydan byktr' DECLARE @Toplam int SET @Toplam=@sayi1+@sayi2 IF @Toplam>5 PRINT 'ki saynn toplam 5 ten byk' ELSE PRINT 'ki saynn toplam 5 ten kk' SELECT @Toplam= CASE WHEN @Toplam>9 THEN @Toplam*10 WHEN @Toplam<10 THEN @Toplam*2 END PRINT 'CASE ilemi sonucu :' PRINT @Toplam DECLARE @sayac int DECLARE @modtoplam int SET @sayac=0 SET @modtoplam=0 WHILE (@sayac<@toplam) BEGIN SET @sayac=@sayac+5 SET @modtoplam=@modtoplam+(@sayac%2) END PRINT 'Mod ilemi toplamlar sonucu=' PRINT @modtoplam

45

LME VE DEERLENDRME LME VE DEERLENDRME


Aadaki sorular dikkatlice okuyarak doru/yanl seenekli sorularda uygun harfleri yuvarlak iine alnz. Seenekli sorularda ise uygun kk iaretleyiniz. Boluk doldurmal sorularda boluklara uygun cevaplar yaznz. 1. 2. 3. 4. 5. Birden fazla komutu ayn anda iletebilmek iin blou kullanlr. Tablodaki kaytlarn saysn bulmak iin . fonksiyonu kullanlr. T-SQLde hangi veri tabanyla altnz belirtmek iin .. komutu kullanlr. Verileri bellekte geici olarak saklayan deerlere denir. Metni kk harfe evirmek iin LOWER(), byk harfe evirmek iin UPPER() fonksiyonu kullanlr (D/Y). Bir karaktersel bilgide arama yaparken aadaki operatrlerden hangisi kullanlr? A) * B) + C) % D) & Aadakilerden hangisi deikenlere deer atama ifadelerinden deildir? A) SET B) SELECT C) INSERT INTO D) DECLARE Aadakilerden hangisi <> operatr yerine geen mantksal operatrdr? A) AND B) OR C) NOT D) BETWEEN Sorgular nce ayrtrlr daha sonra altrlr. (D/Y) art salandnda dngden kmak iin . komutu kullanlr. Metnin solundaki boluklar atmak iin LEFT(), sandaki boluklar atmak iin RIGHT() fonksiyonu kullanlr. (D/Y) T-SQLde deiken tanmlarken ................. komutu ve deikenin nne .. n eki yazlr. DEBUG ilemi iin ihtiya duyulan ve sonular mesaj penceresinde yazan komut tir. Aadakilerden hangisi belirtilen iki tarih arasndaki gn saysn elde etmek iin kullanlan tarih fonksiyonudur? A) GETDATE() B) DATEADD() C) DATEDIFF() D)DATEPART()

6.

7.

8.

9. 10. 11.

12.

13.

14.

46

15.

Metni ters evirmek iin aadaki fonksiyonlardan hangisi kullanlr? A) REVERSE () B) TURN () C) ROTATE () D) TRANSLATE () Sorgularn srayla ileme tabi tutulmasna yt denir. (D/Y) Aritmetiksel ortalama almak iin AVG() fonksiyonu kullanlr .(D/Y) Bir deyimin iletilmesini bir koula balayan yap .. yapsdr. Tablodaki kaytlar gruplamak iin GROUP BY, koul vermek iin HAVING ifadeleri kullanlr. (D/Y) Belirtilen metnin uzunluunu bulmak iin . fonksiyonu kullanlr.

16. 17. 18. 19.

20.

DEERLENDRME Cevaplarnz cevap anahtar ile karlatrnz. Doru cevap saynz belirleyerek kendinizi deerlendiriniz. Yanl cevap verdiiniz ya da cevap verirken tereddt yaadnz sorularla ilgili konulara geri dnerek tekrar inceleyiniz. Tm sorulara doru cevap verdiyseniz dier renme faaliyetine geiniz.

47

MODL DEERLENDRME MODL DEERLENDRME


PERFORMANS TEST (YETERLK LME) Modl ile kazandnz yeterlii, retmeniniz ilem basamaklarna gre 0 ile 4 puan arasnda olacak eklinde deerlendirecektir. Deerlendirme ltleri 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Veri taban oluturabilme Sorguyu altrabilme Tablo oluturabilme Stunlar veri trleriyle beraber tanmlayabilme Stun ekleyebilme Tabloya bilgi girebilme Herhangi bir bilgiyi gncelleyebilme Bilgileri artan veya azalan srada grntleyip seebilme Login oluturabilme User oluturabilme Kstlama verebilme Tabloda sorgu yapabilme Stunlar zerinde matematiksel fonksiyonlar kullanabilme Gruplandrma ve koula gre gruplandrma yapabilme Tarih-saat fonksiyonlarn kullanabilme Deiken tanmlayabilme Deikenlere deer atayabilme Karaktersel fonksiyonlar kullanabilme IF-ELSE ve CASE yapsn kullanabilme WHILE dngsn kullanabilme Toplam (100 puan olabilir.) Puan

DEERLENDRME Yaptnz deerlendirme sonucunda eksikleriniz varsa renme faaliyetlerini tekrarlaynz. Modl tamamladnz, tebrik ederiz. retmeniniz size eitli lme aralar uygulayacaktr. retmeninizle iletiime geiniz.

48

CEVAP ANAHTARLARI CEVAP ANAHTARLARI


RENME FAALYET-1 CEVAP ANAHTARI
1 2 3 4 5 6 7 8 9 10 B Yanl FOR LOGIN C B Veri Kontrol Dili Doru Login D Yanl

RENME FAALYET-2 CEVAP ANAHTARI


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 BEGIN-END COUNT() USE Deiken Doru C D C Doru BREAK Yanl DECLARE ve @ PRINT C A Yanl Doru IF-ELSE Doru LEN()

49

KAYNAKA KAYNAKA
GZDEL Yaar, Yazlmclar iin SQL Server 2005 ve Veri Taban Programlama, Sekin Yaynclk, Ankara, 2006. www.verivizyon.com www.sqlnedir.com

50

You might also like