T SQL
T SQL
MEGEP
(MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN
GÜÇLENDİRİLMESİ PROJESİ)
BİLİŞİM TEKNOLOJİLERİ
T-SQL
ANKARA 2008
Milli Eğitim Bakanlığı tarafından geliştirilen modüller;
Talim ve Terbiye Kurulu Başkanlığının 02.06.2006 tarih ve 269 sayılı Kararı ile
onaylanan, Mesleki ve Teknik Eğitim Okul ve Kurumlarında kademeli olarak
yaygınlaştırılan 42 alan ve 192 dala ait çerçeve öğretim programlarında
amaçlanan mesleki yeterlikleri kazandırmaya yönelik geliştirilmiş öğretim
materyalleridir (Ders Notlarıdır).
Modüller, bireylere mesleki yeterlik kazandırmak ve bireysel öğrenmeye
rehberlik etmek amacıyla öğrenme materyali olarak hazırlanmış, denenmek ve
geliştirilmek üzere Mesleki ve Teknik Eğitim Okul ve Kurumlarında
uygulanmaya başlanmıştır.
Modüller teknolojik gelişmelere paralel olarak, amaçlanan yeterliği
kazandırmak koşulu ile eğitim öğretim sırasında geliştirilebilir ve yapılması
önerilen değişiklikler Bakanlıkta ilgili birime bildirilir.
Örgün ve yaygın eğitim kurumları, işletmeler ve kendi kendine mesleki yeterlik
kazanmak isteyen bireyler modüllere internet üzerinden ulaşılabilirler.
Basılmış modüller, eğitim kurumlarında öğrencilere ücretsiz olarak dağıtılır.
Modüller hiçbir şekilde ticari amaçla kullanılamaz ve ücret karşılığında
satılamaz.
İÇİNDEKİLER
AÇIKLAMALAR ...................................................................................................................iii
GİRİŞ ....................................................................................................................................... 1
ÖĞRENME FAALİYETİ - 1 ................................................................................................... 3
1. T-SQL................................................................................................................................... 3
1.1. Transact SQL Kavramı ................................................................................................. 3
1.2. Veri Tanımlama Dili (DDL) ......................................................................................... 4
1.2.1. CREATE (Nesne Oluşturmak) .............................................................................. 4
1.2.2. ALTER (Nesnelerde Değişiklik 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 FAALİYETİ .............................................................................................. 11
ÖLÇME VE DEĞERLENDİRME .................................................................................... 15
ÖĞRENME FAALİYETİ - 2 ................................................................................................. 16
2. T-SQL İLE ÇALIŞMAK.................................................................................................... 16
2.1. Değişkenler ................................................................................................................. 16
2.1.1. Nesne ve Değişken İsimlendirme Kuralları......................................................... 16
2.1.2. Değişken Tanımlama ........................................................................................... 17
2.1.3. Açıklama Satırları................................................................................................ 18
2.2. Yığın Kavramı ............................................................................................................ 18
2.2.1. GO Komutu ......................................................................................................... 18
2.2.2. USE Komutu........................................................................................................ 19
2.2.3. PRINT Komutu.................................................................................................... 19
2.3. İşlem Operatör Türleri ................................................................................................ 19
2.3.1. Karşılaştırma Operatörleri ................................................................................... 19
2.3.2. Mantıksal Operatörler.......................................................................................... 21
2.3.3. Aritmetiksel Operatörler...................................................................................... 22
2.4. Fonksiyonlar ............................................................................................................... 23
2.4.1. Kümeleme Fonksiyonları..................................................................................... 23
2.4.2. T-SQL’de Gruplandırma ..................................................................................... 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 Yapısı.................................................................................................. 33
2.5.2. CASE Yapısı........................................................................................................ 34
2.5.3. WHILE Döngüsü ................................................................................................. 35
UYGULAMA FAALİYETİ .............................................................................................. 38
ÖLÇME VE DEĞERLENDİRME .................................................................................... 46
MODÜL DEĞERLENDİRME .............................................................................................. 48
i
CEVAP ANAHTARLARI ..................................................................................................... 49
KAYNAKÇA ......................................................................................................................... 50
ii
AÇIKLAMALAR
AÇIKLAMALAR
KOD 481BB0044
ALAN Bilişim Teknolojileri
DAL/MESLEK Veri Tabanı Programcılığı
MODÜLÜN ADI T-SQL
T-SQL kullanarak veri tabanı işlemleri yapabilmeyle ilgili
MODÜLÜN TANIMI
öğrenme materyalidir.
SÜRE 40/32
ÖN KOŞUL Ağ Veri Tabanı Kurulumu modülünü bitirmiş olmak
YETERLİK
Genel Amaç
Gerekli ortam sağlandığında T-SQL’i kullanabileceksiniz.
MODÜLÜN AMACI
Amaçlar
1. T-SQL komutlarını kullanabileceksiniz.
2. T-SQL elemanlarını kullanıp çalışabileceksiniz.
Ortam:
Atölye, laboratuar, bilgi teknolojileri ortamı ( internet ) vb.
kendi kendinize veya grupla çalışabileceğiniz tüm ortamlar
EĞİTİM ÖĞRETİM
ORTAMLARI VE
Donanım:
DONANIMLARI
Ağ veri tabanını çalıştırabilecek yeterlikte bilgisayar,
yedekleme için gerekli donanım (cd yazıcı, flash bellek),
raporlama için yazıcı, kâğıt ve kalem
iii
iv
GİRİŞ
GİRİŞ
Sevgili Öğrenci,
Son yıllarda yapılan birçok proje, çok sayıda bilgisayar tarafından kullanılabilecek
şekilde tasarlanmaktadır. Bu yüzden, ağ ortamında birden fazla kullanıcı aynı proje üzerinde
çalışabilmektedir. Bu işlemleri çok sık kullandığınız veri tabanı programıyla da
yapabilmenize rağmen ağ ortamında güvenlik ve hızlı erişim açısından en iyi sonucu veren
SQL Server veri tabanıyla da yapabilirsiniz. Bu programla milyonlarca kaydın olduğu
tablolar üzerinde işlem yaparken tüm kullanıcılara hitap ederek istenilen sorgu sonuçlarını da
en hızlı şekilde elde edebileceksiniz.
1
2
ÖĞRENME FAALİYETİ-1
ÖĞRENME FAALİYETİ - 1
AMAÇ
ARAŞTIRMA
1. T-SQL
1.1. Transact SQL Kavramı
Microsoft'un veri tabanı sorgulama dilidir. Transact-SQL, SQL Server ve istemci
(client) arasında iletişimi sağlayan SQL sorgulama dilinin gelişmiş bir versiyonudur.
Transact Structured Query Language kelimelerinin kısaltmasıdır.
T-SQL ile döngü veya mantıksal işlemler yapmak için bir derleyiciye gerek yoktur.
Herhangi bir programlama dili öğrenmeden de T-SQL ile tüm amaçlarınıza hitap edecek
projeler gerçekleştirebilirsiniz.
T-SQL ifadelerini çalıştırabilmek için bir Management Studio ile SQL Server’a
erişmeniz gerekir.
SQL deyimleri veritabanları üzerinde çeşitli işlemleri yerine getirir. Veri tabanından
sorgulama yapmak için SELECT, ekleme yapmak için INSERT güncelleme yapmak için
UPDATE, silme yapmak için DELETE, yeni tablo oluşturmak için CREATE TABLE gibi
komutlara sahiptir.
3
1.2. Veri Tanımlama Dili (DDL)
SQL Server içinde veri tabanı, tablo ve kullanıcı tanımlı veri tipleri gibi nesneler
oluşturmak ve bunları yapılandırmak için kullanılır. Temel komutları aşağıdaki şekildedir:
Genel Yazımı
CREATE nesne_adi
Örnek:
CREATE DATABASE Person
Örnek:
CREATE TABLE PERSONEL(
PERSONEL_ID int,
AD varchar(10),
SOYAD varchar(10)
)
Bu şekilde bir yazımla PERSONEL adında bir tablo oluşturulur. Tablo sütunları da
PERSONEL_ID, AD, SOYAD’dır.
Örnek:
CREATE TABLE PERSONELYAKIN(
PERSONEL_ID int,
YAKIN_ID int,
YAKIN_AD varchar(10),
YAKIN_SOYAD varchar(10)
)
4
1.2.2. ALTER (Nesnelerde Değişiklik Yapmak)
Genel Yazımı
Örnek:
ALTER TABLE PERSONEL
ADD BABA_AD varchar(20) NOT NULL
Örnek
ALTER TABLE PERSONEL
ALTER COLUMN AD varchar(15) NOT NULL
Bir nesnenin silinmesini sağlayan komuttur. DROP komutu tüm nesneler için
kullanılır.
Genel Yazımı
Örnek:
DROP TABLE PERSONEL
Verilere erişmek için en sık kullanılan komuttur. Bir tablodaki bir veya daha çok alan
için SELECT komutu yazılabilir.
Genel Yazımı
Örnek:
SELECT * FROM PERSONEL
Örnek:
SELECT PERSONEL_ID, AD
FROM PERSONEL
Örnek:
SELECT AD+ ‘ ‘ + SOYAD
FROM PERSONEL
PERSONEL tablosunda yer alan AD ve SOYAD alanlarını tek bir sütun gibi
birleştirerek göstermeyi sağlayan SELECT ifadesidir.
Örnek:
SELECT ad FROM rehber
ifadesiyle rehber tablosundaki sadece “ad” alanı bilgilerinin elde edilmesini sağlar.
Örnek:
SELECT * FROM rehber WHERE ad=’Ali’
Örnek:
SELECT * FROM rehber WHERE ad=’Tuncay’ ORDER BY ad ASC
Verilen koşullara göre sütundaki bilgileri artan (ASC) ya da azalan (DESC) sırada
ekrana getirir. WHERE ile oluşturulan koşul ifadelerinde mantıksal operatörler de
kullanılabilir (and, or,not).
6
Örnek:
SELECT * FROM rehber ORDER BY ad, soyad
ifadesiyle ad alanına göre kayıtları, adı aynı olanları da soyad alanına göre seçme
işlemini gerçekleştirir.
Genel Yazımı
Örnek:
INSERT INTO PERSONEL (AD,SOYAD)
VALUES (‘Ceylin’,’Yılmaz’)
Kayıtları güncellemek için kullanılır. Hangi kayıtların güncelleneceği bir koşul veya
koşullarla belirtilebilir.
Genel Yazımı
Örnek:
UPDATE PERSONEL SET AD=’Ceylin’ WHERE SOYAD=’Yılmaz’
biçimindeki bir bildirim soyadı Yılmaz olan kayıtların ad bilgisini Ceylin olarak
değiştirir.
Eğer birden fazla Yılmaz soyadı olsaydı hepsinin ad alanı Ceylin olarak
değiştirilecekti.
7
Genel Yazımı
Örnek:
DELETE FROM PERSONEL
WHERE SOYAD=’Yılmaz’
DCL komutlarını kullanabilmek için SQL Server'da varsayılan değer (default) olarak
yetki sahibi olan gruplar: sysadmin , dbcreator , db_owner , db_securityadmin 'dir.
Sunucuya dışarıdan bir erişim sağlamak için bir giriş (login) oluşturulmalıdır.
Bunun için;
Bu rol ile veri tabanına bir kullanıcı olarak erişim için aşağıdaki satırlar yazılmalıdır:
Eğer User adı ile Login adı aynı ise FOR LOGIN satırına gerek kalmaz.
8
1.4.1. GRANT Komutu
Veri tabanı kullanıcısına, veri tabanı rolüne veya uygulama rolüne izinler vermek için
kullanılan komuttur.
Genel Yazımı
Örnek:
Tuncay1 adlı kullanıcıya tablo oluşturma izni şöyle verilebilir:
Örnek:
Bir kullanıcıya hem veri tabanı hem de tablo oluşturma izni şöyle verilir:
Genel Yazımı
Örnek:
DENY CREATE TABLE
TO Tuncay1
Örnek:
DENY SELECT ON PERSONEL TO Tuncay1
9
PERSONEL tablosunda Tuncay1 adlı kullanıcı SELECT komutuyla ilgili işlem
yapamaz.
Daha önce yapılan tüm kısıtlama ve izinleri iptal eden komuttur. Bir nesneyi oluşturan
kullanıcının REVOKE ile nesne üzerindeki yetkilendirme ve kullanma hakkı yok edilemez.
Genel Yazımı
Örnek:
REVOKE ALL TO PUBLIC
Örnek:
REVOKE SELECT ON PERSONEL TO PUBLIC
10
UYGULAMAFAALİYETİ
UYGULAMA FAALİYETİ
11
Oluşturduğunuz tabloya kendi
bilgilerinizi ve ailenizden iki kişinin
bilgilerini ekleyiniz.
Resim 1.5: Bilgilerin tabloya eklenmesi
12
Results penceresinden sonucu
kontrol ediniz.
Resim 1.11: Results penceresi
Sunucudaki Security/Logins
alanında Login’in oluşturulup
oluşturulmadığını kontrol ediniz.
13
“Kullanici” adlı user’a SELECT
ifadesinin kullanımını engelleyiniz.
Resim 1.17: DENY ile erişimin kısıtlanması
14
ÖLÇMEVE
ÖLÇME VEDEĞERLENDİRME
DEĞERLENDİRME
2. Veri tabanı kullanıcısına izin vermek için Revoke komutu kullanılır (D/Y).
3. Eğer User (kullanıcı) ile Login (giriş) adı aynıysa ……………………. satırını
yazmaya gerek yoktur.
6. Bir veri tabanıyla ilişkili kullanıcıları ve rollerin izinlerini değiştirmek için kullanılan
dile ...........................….................. denir.
7. Bir kullanıcının veri tabanı veya tabloya erişimini engellemek için DENY komutu
kullanılır. (D/Y)
10. Kullanıcıya verilen tüm kısıtlamaları kaldırmak için GRANT komutu kullanılır. (D/Y)
DEĞERLENDİRME
15
ÖĞRENME FAALİYETİ-2
ÖĞRENME FAALİYETİ - 2
AMAÇ
ARAŞTIRMA
SQL Server'da da değişkenler yerel ve genel olmak üzere ikiye ayrılır. Yerel
değişkenler, "@" ön eki ile tanımlanır (@değişken). Genel değişkenler ise SQL Server
tarafından tanımlanmıştır ve kullanıcı tarafından oluşturulamaz. "@@" ön eki ile
tanımlanırlar (@@SERVERNAME). Genel değişkenler genellikle SQL Server hakkındaki
bilgileri verir. SQL Server'da tanımlanmış birçok genel değişken vardır.
Yazım Şekli
Ö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
Örnek:
DECLARE @değişken_adı TABLE (tablo tanımı)
şeklindedir.
SET @değişken_adi=değer
şeklinde yapılır.
17
SELECT ifadesiyle değer atama
SELECT @değişken_adı=değer
şeklinde yapılır.
ifadesi ile person tablosunun adı ve soyadı sütunlarının içerdiği değerlerden oluşan bir
tabloyu @tablo_değişken adlı değişkene atamış olursunuz.
Örnek:
-- CREATE TABLE ogrenci
veya
2.2.1. GO Komutu
Bir yığının sonunu belli etmek için GO komutu kullanılır. Bir yığın SQL Server’da
işlenmeye başladığı anda önce Parse(ayrıştırma) edilir. Daha sonra derlenerek (Compile)
çalıştırılır(Execute).
Genel Yazımı
Komutlar
Komutlar
GO
şeklindedir.
18
2.2.2. USE Komutu
Genel Yazımı
USE Veritabani_Adi
şeklindedir.
Örnek:
USE master
Değişkenlerin değerlerini, hataları vb. diğer ihtiyaç duyulan olaylarda PRINT komutu
kullanılır. DEBUG işlemi için ihtiyaç duyulan bir komuttur.
Genel Yazımı
PRINT @degisken_adi
şeklindedir.
Örnek:
USE Deneme
GO
PRINT @ad
GO
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.
19
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ü
Örnek:
Öğrenci veri tabanında Tablo 2’deki ikinci notu 56’dan küçük olan öğrencileri
listeleyen T-SQL kod satırlarıdır.
SELECT *
FROM tablo2
WHERE nt2<=56
Örnek:
Adı Ali olmayan kayıtları listelemek için kullanılan T-SQL kod satırlarıdır.
SELECT *
FROM Personel
WHERE ad<>’Ali’
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.
Örnek:
tablo1 tablosundaki ad alanı içinde baş tarafı “Er” ile başlayan isimleri listeleyen T-
SQL kodlarıdır.
SELECT *
FROM tablo1 WHERE ad LIKE '%Er%'
20
Örnek:
tablo1 tablosundaki soyad alanı içinde baş tarafı “DE” ile başlayan soyadları listeleyen
T-SQL kodlarıdır.
SELECT *
FROM tablo1 WHERE soyad LIKE '%DE%'
Ö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
Örnek:
BETWEEN..AND yapısıyla, maaşı 700 ile 1200 YTL arasında olanları gösteren
T_SQL kodlarıdır.
SELECT *
FROM Person
WHERE maas BETWEEN 700 AND 1200
Örnek:
Doğum tarihi 1970’ten büyük ve cinsiyeti erkek olan veya doğum tarihi 1975’ten
büyük ve cinsiyeti kadın olan personeli listeleyen T-SQL kodlarıdır.
SELECT *
FROM Person
WHERE dogum_tarih>={01/01/70} AND cinsiyet=Erkek
OR dogum_tarih>={01/01/75} AND cinsiyet=Kadın
21
Örnek:
Sinif tablosunda adı Ali olmayanları listeleyen T-SQL kodlarıdır.
Örnek:
SELECT *
FROM Ogrenci
WHERE bolum=’Bilgisayar’ OR bolum=’Elektronik’ OR bolum=’Elektrik’
SELECT *
FROM tablo1
WHERE bolum In ('Bilgisayar','Elektronik','Elektrik')
OPERATÖR İŞLEVİ
% Mod alma
* Çarpma
/ Bölme
+ Toplama
- Çıkarma
SELECT komutu ile veri tabanında mevcut tablolardan listeleme yaparken tabloda
ayrı bir sütun (alan) olarak yer almamış ve ancak bir hesaplama sonucunda üretilebilecek
bilgileri de listeleme içine almak mümkündür.
Örnek:
Ogr_Notlar tablosunda notların not ortalamasını hesaplayan T-SQL kodlarıdır.
SELECT (nt1+nt2+nt3) /3
FROM Ogr_Notlar
22
2.4. Fonksiyonlar
2.4.1. Kümeleme Fonksiyonları
SQL, tablo içinden çeşitli matematiksel işlemlerin sonucunu otomatik olarak üretmeyi
sağlayan fonksiyonlara sahiptir.
SUM Fonksiyonu
Örnek:
Ogr_Notlar tablosunda nt1 sütununun not toplamını hesaplayan T-SQL kodlarıdır.
SELECT SUM(nt1)
FROM Ogr_Notlar
Örnek:
Maaşları 500 YTL’nin altında olan personelin maaşları toplamını hesaplayan T-SQL
kodlarıdır.
SELECT SUM(maas)
FROM Person
WHERE maas<500
AVG Fonksiyonu
Örnek:
İşçilerin maaşları ortalamasını veren T-SQL kodlarıdır.
SELECT AVG(maas)
FROM Person
MAX Fonksiyonu
23
Örnek:
Ogr_Notlar tablosu içindeki en yüksek öğrenci not ortalamasını veren T-SQL
kodlarıdır.
SELECT MAX(not_ortalama)
FORM Ogr_Notlar
MIN Fonksiyonu
Örnek:
Ogr_Notlar tablosu içindeki en düşük öğrenci not ortalamasını veren T-SQL
kodlarıdır.
SELECT MIN(not_ortalama)
FORM Ogr_Notlar
COUNT Fonksiyonu
Örnek:
Ogr_Notlar tablosu içindeki öğrenci not ortalamalarının sayısını veren T-SQL
kodlarıdır.
Örnek:
Bir okulda birden fazla bölüme kayıtlı öğrenci olabilir. Sadece okuldaki bölüm
adlarını listeleyen T-SQL kodlarıdır.
Örnek:
Bir okulda birden fazla bölüme kayıtlı öğrenci olabilir. Sadece okuldaki bölümlerin
sayısını listeleyen T-SQL kodlarıdır.
“GROUP BY” yardımcı sözcüğü bir alana göre kayıtları gruplamak için kullanılır.
Genel kullanımı aşağıdaki gibidir:
Örnek:
Öğrenci notları tablosunda öğrenci numarasına göre her bir öğrencinin almış olduğu
not ortalamalarını gösteren T-SQL kodlarıdır.
Örnek:
Öğrenci notları tablosunda öğrenci numarasına ve bölüm adına göre her bir öğrencinin
almış olduğu not ortalamalarını gösteren T-SQL kodlarıdır.
SELECT ogrno,bolum,MAX(ort)
FROM Tablo2
GROUP BY ogrno,bolum
25
Gruplandırarak kümeleme fonksiyonlarını uygularken koşul da verilebilir. Bu
durumda, grup üzerindeki hesaplamalarla ilişkili koşul belirtirken HAVING sözcüğünü
kullanmak gerekir.
Örnek:
Öğrenci notları tablosunda öğrenci numarasına göre her bir öğrencinin almış olduğu
not ortalamasını 70’den büyük gösteren T-SQL kodlarıdır.
SELECT ogrno,AVG(ort)
FROM Ogr_Notlar
GROUP BY ogrno
HAVING AVG(ort)>70
WHERE sözcüğü bir tablonun tek tek satırları üzerinde işlem yapan koşullar için
geçerli iken HAVING sözcüğü ,sadece gruplanmış veriler üzerindeki işlemlerde geçerlidir.
Örnek:
Öğrenci notları tablosunda öğrenci numarasına göre bölümü “Bilgisayar” ve
öğrencinin almış olduğu not ortalaması 65’ten büyük olanları gösteren T-SQL kodlarıdır.
SELECT ogrno,bolum,AVG(ort)
FROM Ogr_Notlar
WHERE bolum='Bilgisayar'
GROUP BY ogrno,bolum
HAVING AVG(ort)>65
26
COMPUTE ve COMPUTE BY Deyimleri
Toplama fonksiyonunu kullanarak sonuç olarak bir toplam değeri üretir. COMPUTE
deyimi her SELECT ifadesiyle kullanılır. COMPUTE BY ise ORDER BY deyimine gerek
duyar.
Örnek:
Öğrenci notları tablosundaki öğrenci numarasına göre ortalama sütunundaki değerleri
toplayarak bir sonuç üreten T-SQL kodlarıdır.
GETDATE () Fonksiyonu
Örnek:
SELECT GETDATE()
27
DATEADD () Fonksiyonu
Verilen bir tarihe istenilen sayıda bir tarih bilgisi eklemek için kullanılır.
DATEADD fonksiyonunda
dd gün
mm ay
yy yıl anlamındadır.
Örnek:
Belirtilen tarih bilgisine 90 gün ekleyen T-SQL kodudur.
DATEDIFF () Fonksiyonu
Örnek:
SELECT DATEDIFF(dd, '04.04.1974', '02.10.2007')
Ayrıca hafta için wk, saat için hh, dakika için mi, saniye için ss kullanılabilir.
28
DATEPART () Fonksiyonu
Örnek:
SELECT DATEPART(dd, '01.04.1974')
CHAR ()
CHARINDEX()
29
LEFT ()
LEN ()
SELECT LEN(@soyad)
LOWER ()
RIGHT ()
RTRIM ()
31
REVERSE ()
SUBSTRING ()
Bir metinde belirtilen karakterden itibaren belirli sayıda karakter almak için kullanılır.
UPPER ()
32
2.5. SQL Denetim Deyimleri
Birden fazla komutu aynı anda işletebilmek için SQL’de bloklar kullanılmaktadır.
Tüm programlama dillerinde olduğu gibi akış kontrollerinde ve döngü yapılarında kullanılan
komutlar birden fazla ise mutlaka BEGIN..END bloğunda yazılmalıdır.
Kullanımı
IF koşul
{ deyim }
[ ELSE
{ deyim} ]
Örnek:
Öğrencilerin not ortalamalarına göre ortalaması 85’in üzerinde olanların durumu için
“PEKİYİ”, 85’ten küçük olanlar için ise “İYİ” yazdıran T-SQL kod satırlarıdır.
Kullanımı
CASE değer
WHEN değer THEN işlem
WHEN değer THEN işlem
ELSE işlem
END
Örnek
Kütüphanedeki kitapların mevcut olup olmadığını gösteren basit bir T-SQL kodlarıdır.
34
2.5.3. WHILE Döngüsü
WHILE şart
BEGIN
Tekrarlanması gereken kodlar
END
Şart gerçekleşinceye kadar BEGIN ile END arasına yazılan kodlar işlem görür.
Örnek:
Sayaç değişkeni 5 değerini alıncaya kadar tanımlanan toplam değişkenini beşer beşer
arttıran programın T-SQL kod satırlarıdır.
35
BREAK Komutu
Örnek:
CONTINUE Komutu
36
Örnek:
Sayaç değişkenin 3 değeri hariç diğer değerleri ve toplamı yazdıran T-SQL kodlarıdır.
37
UYGULAMA FAALİYETİ
UYGULAMA FAALİYETİ -1
38
Yaşı 17’den büyük kız öğrencileri
seçiniz.
Resim 2.36:Yaşı 17’den büyük kız öğrenciler
39
Sadece öğrenci numaralarını ve
yaşlarını seçiniz.
Resim 2.44: Sadece öğrenci numaraları ve yaşların
seçimi
40
UYGULAMA FAALİYETİ - 2
41
@kelime3 değişkeninin sağından kullanabilirsiniz.
dört karakter seçiniz ve bu değişkene
atayınız.
Yeni değişkenin tüm karakterlerini
LOWER () fonksiyonunu kullanabilirsiniz.
küçük harfe çeviriniz.
@kelime3 değişkeninin altıncı
SUBSTRING () fonksiyonunu
karakterinden başlayarak 3 karakter
kullanabilirsiniz.
seçiniz.
42
UYGULAMA FAALİYETİ - 3
IF yapısını kullanabilirsiniz.
44
Sorgunun tümü aşağıda verilmiştir:
SET @sayi1=3
SET @sayi2=6
IF @sayi1>@sayi2
BEGIN
PRINT 'Birinci sayı ikinci sayıdan büyüktür'
END
ELSE
PRINT 'İkinci sayı birinci sayıdan büyüktür'
IF @Toplam>5
PRINT 'İki sayının toplamı 5 ten büyük'
ELSE
PRINT 'İki sayının toplamı 5 ten küçük'
SELECT @Toplam=
CASE
WHEN @Toplam>9 THEN @Toplam*10
WHEN @Toplam<10 THEN @Toplam*2
END
SET @sayac=0
SET @modtoplam=0
WHILE (@sayac<@toplam)
BEGIN
SET @sayac=@sayac+5
SET @modtoplam=@modtoplam+(@sayac%2)
END
45
ÖLÇMEVE
ÖLÇME VEDEĞERLENDİRME
DEĞERLENDİRME
1. Birden fazla komutu aynı anda işletebilmek için ……………… bloğu kullanılır.
3. T-SQL’de hangi veri tabanıyla çalıştığınızı belirtmek için ……….. komutu kullanılır.
5. Metni küçük harfe çevirmek için LOWER(), büyük harfe çevirmek için UPPER()
fonksiyonu kullanılır (D/Y).
11. Metnin solundaki boşlukları atmak için LEFT(), sağındaki boşlukları atmak için
RIGHT() fonksiyonu kullanılır. (D/Y)
13. DEBUG işlemi için ihtiyaç duyulan ve sonuçları mesaj penceresinde yazan komut
……………’tir.
14. Aşağıdakilerden hangisi belirtilen iki tarih arasındaki gün sayısını elde etmek için
kullanılan tarih fonksiyonudur?
A) GETDATE() B) DATEADD()
C) DATEDIFF() D)DATEPART()
46
15. Metni ters çevirmek için aşağıdaki fonksiyonlardan hangisi kullanılır?
A) REVERSE () B) TURN () C) ROTATE () D) TRANSLATE ()
18. Bir deyimin işletilmesini bir koşula bağlayan yapı ………….. yapısıdır.
19. Tablodaki kayıtları gruplamak için GROUP BY, koşul vermek için HAVING ifadeleri
kullanılır. (D/Y)
DEĞERLENDİRME
47
MODÜL DEĞERLENDİRME
MODÜL DEĞERLENDİRME
PERFORMANS TESTİ (YETERLİK ÖLÇME)
Modül ile kazandığınız yeterliği, öğretmeniniz işlem basamaklarına göre 0 ile 4 puan
arasında olacak şeklinde değerlendirecektir.
DEĞERLENDİRME
48
CEVAP ANAHTARLARI
CEVAP ANAHTARLARI
ÖĞRENME FAALİYETİ-1 CEVAP ANAHTARI
1 B
2 Yanlış
3 FOR LOGIN
4 C
5 B
6 Veri Kontrol Dili
7 Doğru
8 Login
9 D
10 Yanlış
1 BEGIN-END
2 COUNT()
3 USE
4 Değişken
5 Doğru
6 C
7 D
8 C
9 Doğru
10 BREAK
11 Yanlış
12 DECLARE ve @
13 PRINT
14 C
15 A
16 Yanlış
17 Doğru
18 IF-ELSE
19 Doğru
20 LEN()
49
KAYNAKÇA
KAYNAKÇA
GÖZÜDELİ Yaşar, “Yazılımcılar için SQL Server 2005 ve Veri Tabanı
Programlama”, Seçkin Yayıncılık, Ankara, 2006.
[Link]
[Link]
50