FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BİLGİSAYAR SİSTEMLERİ LABORATUVARI- DENEY NO:3 CLIENT SERVER ORTAMINDA VERİTABANI KULLANIMI



Benzer belgeler
Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

SQL Komutları (2) Uzm. Murat YAZICI

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

«BM364» Veritabanı Uygulamaları

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

SORGULAR. Öğr.Gör.Volkan Altıntaş

SQL e Giriş. Uzm. Murat YAZICI

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

SQL Kod ile Tablo Oluşturma

SQL TRIGGERS (Tetikleyiciler)

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır.

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

VERİ TABANI ve YÖNETİMİ

Veritabanı. SQL (Structured Query Language)

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

VERİTABANI Veritabanı Yönetimi

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

Oracle da kullanılan veri tipleri:

STORED PROCEDURE LER (Saklı Yordamlar)

ACCESS PLATFORMUNDA SQL

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

«BM364» Veritabanı Uygulamaları

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları

VERİTABANI ve YÖNETİMİ

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

VERİTABANI. SQL (Structured Query Language)

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

BLG4134 Görsel Programlama III. Öğr. Grv. Aybike ŞİMŞEK

VERİ TABANI ve YÖNETİMİ

Veri Tabanı Tasarım ve Yönetimi

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

VERİ TABANI YÖNETİM SİSTEMLERİ-II

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

KULLANICI TANIMLI FONKSİYONLAR (Devam)

Lıke Joker Karakterler, Is [not] Null, Order By, Group By, As

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

KULLANICI TANIMLI FONKSİYONLAR

PocketRest Kullanımı

Mysql Veritabanı Komutları

Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek.

BİLİŞİM TEKNOLOJİLERİ

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Tavsiye Edilen Önhazırlık Temel veritabanı kavramlar hakkında bilgi sahibi olmak. Hedefler Temel veritabanı güvenlik işlemlerini gerçekleştirebilmek

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

SQL Stored Procedure

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Veri Tabanı Hafta Dersi

EXISTS VE NOT EXISTS fonksiyonları

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

KULLANICI TANIMLI FONKSİYONLAR (Devam)

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

Bilgisayar Uygulamaları. MySql

Bölüm 4: DDL Veri Tanımlama Dili

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

T-SQL NEDİR? Microsoft T-SQL Transact-SQL

Veri Tabanı Hafta Dersi

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

VERİ TABANI YÖNETİM SİSTEMLERİ I

PostgreSQL ve PL/pgSQL

Veri Tabanı-I 9.Hafta

Microsoft SQL Server Sorgulama

Veri tabanı içinde bulunan tablolardakibazı sütunlarda bulunan bilgilerin, herkes tarafından görülmesi istenmeyebilir.

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

1 - Adi A Harfi İle Biten Kişilerin Listesi İçin Hangisi Kullanılmalıdır? Select * From Kisiler Where Adi End A Select * From Kisiler Where Adi Like

2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir?

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

1. Araçların tüm bilgilerini ve bağlı oldukları kiralama noktasının adres ve telefonunu içeren tam listesi:

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

Veritabanına Uygulanması

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

YAPISAL SORGULAMA DİLİ (SQL)

MT487_2005guz_final_cevaplar (cevaplar vurgulu ve koyu yazılmıştır)

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

SQL DİĞER Deyimler ve Komutlar

PostgreSQL ve PL/pgSQL

Veri Tabanı-I 1.Hafta

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir.

SORGULAR VE ÇEŞİTLERİ II

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

Transkript:

FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BİLGİSAYAR SİSTEMLERİ LABORATUVARI- DENEY NO:3 CLIENT SERVER ORTAMINDA VERİTABANI KULLANIMI Arş. Gör. Ertan BÜTÜN ÖNEMLİ: Deney föyünde deneyle ilgili genel bilgiler verilmiştir. Deneye hazırlanırken deney föyü ile yetinilmemelidir. Son kısımda verilen uygulama konularına iyice hazırlanılmalıdır. DENEY SONLANDIRMA TARİHLERİ: I.Öğretim A ve B grubu 10 Kasım Pazar 9:00 II.Öğretim A ve B grubu 16 Kasım C.tesi 8:00 SQL (STRUCTURED QUERY LANGUAGE) E GİRİŞ İlişkisel veritabanı modeli 1970 i yıllarda Dr. Edgar F. Codd tarafından geliştirilmiştir. IBM ve Dr. Codd çalışmaları sonucunda SQL (Structure Query Language Yapısal Sorgulama Dili) ortaya çıkmıştır. SQL bugün ilişkisel veritabanı sistemlerinde bir standart haline gelmiştir. Bugün internet ortamında program geliştirmek için kullanacağınız ASP, JSP, PHP, ASP.NET ve Java gibi dillerle veritabanı işlemleri yapacak olursanız SQL kullanmanız gerekecektir. SQL veriye erişmenin ve sorgulamanın en hızlı yoludur. SQL geliştirildiği 1970 li yıllardan günümüze gelene kadar birçok değişikliğe uğramıştır. SQL dilinde bir standardizasyona gidilmesi için ISO ( International Standard Organization) çalışma başlatmış ve en son SQL-92, ANSI SQL veya SQL 2 diye adlandırılan standart kabul edilmiştir. ANSI SQL, C, Basic, Pascal gibi dillerde gördüğünüz döngü ifadelerine ve şart yapılarına sahip değildir. Bu yüzden SQL e bir programlama dili diyemeyiz. Fakat bazı firmalar ANSI SQL e bağlı kalarak bir kısım eklemeler yapmış ve SQL i kendilerine göre değiştirmişlerdir. Örneğin Microsoft SQL Server in Transaction SQL (TSQL) dili döngü yapılarına ve şart ifadelerine de sahiptir. TSQL KOMUTLARI TSQL veritabanı ile ilgili tanımlamalarda bulunmak, verilere erişip onları yönetmek ve veriye erişimi kontrol etmek için ayarlamalarda bulunmak üzere ifadeler içerir. Bu ifadeler için aşağıdaki tablo göz önüne alınmıştır. URUN TABLOSU UrunID UrunAdi Fiyati Stok_adedi Eklenme_tarihi EC200 Klavye 100 10 01.10.2010 BE121 Buzdolabı 1.000 32 12.03.2009 EL358 Telefon 535 45 28.03.2010 TSQL deyimleri üç aşağıdaki üç grupta incelenebilir: 1

Veri Tanımlama Dili: Nesne oluşturma, silme ve nesneler üzerinde değişiklik yapma (CREATE, ALTER ve DROP). Nesne oluşturmak: CREATE CREATE deyimi ile veritabanındaki nesnelerden herhangi biri oluşturulabilir. Kullanımı: CREATE nesne_tipi nesne_adi [varsa_nesneye_ait_tanimlamalar] Veritabanı oluşturma Tablo oluşturma Create database bslab Use bslab; Create table urun( UrunID varchar(10) not null, UrunAdi varchar(20), Fiyati int, Stok_adedi int, Eklenme_tarihi Datetime, Primary key(urunid)) Nesnelerde Değişiklik Yapma: ALTER Genel kullanımı: ALTER nesne_tipi nesne_adi degisiklik_ifadesi USE bslab Go ALTER TABLE urun ALTER COLUMN UrunAdi varchar(40) NOT NULL Nesne Silmek: DROP Genel Kullanımı: DROP nesne_tipi nesne_adi DROP TABLE urun Veri İşleme Dili: Veri ekleme, silme, seçim ve güncelleme işlemleri (INSERT, DELETE, SELECT ve UPDATE) Veri Eklemek: INSERT Genel Kullanımı: INSERT INTO tablo_adi(sutun1 [,sutun2, ]) VALUES(deger1 [, deger2,.]) Örnek: use bslab go insert into Urun(UrunID,UrunAdi,Fiyati,Stok_adedi,Eklenme_tarihi) values( BL300, Bilgisayar,1250,10, 01.15.2010 ) Veri Silmek:DELETE Genel Kullanımı: DELETE FROM tablo_adi WHERE şart_ifadesi Örnek: DELETE FROM Urun where UrunID= BL300 Veri Güncellemek: UPDATE Genel Kullanımı: UPDATE tablo_adi SET alan1=deger1, alan2=deger2 where şart_ifadesi Örnek: UPDATE Urun SET Fiyati=1500 WHERE UrunID= BL300

Veri Seçimi ve Filtreleme: SELECT sutun_adi1 [, sutun_adi2, ] * FROM tablo_adi WHERE şart Tüm alanları seçmek için SELECT * FROM Urun Sadece Urunadi ve fiyatlarini göstermek için SELECT UrunAdi, Fiyati FROM Urun Fiyatı 500 den büyük olan ürünleri göstermek için SELECT * FROM Urun where Fiyati>500 Urun adi Bilgisayar olan ürünleri göstermek için SELECT UrunAdi, Stokadedi FROM Urun WHERE UrunAdi= Bilgisayar Sonucu sıralı olarak göstermek için SELECT * FROM Urun WHERE Fiyati>50 ORDER BY Fiyati ASC Buradaki ASC sözcüğü Ascend yani artan şekilde harf için A dan Z ye rakam için küçükten büyüğe doğru sıralama anlamındadır. DESC sözcüğü ise bu işlemin tersini yapar. Eğer Fiyatı 1000 ile 2000 arasındaki ürünleri listelemek isteseydik BETWEEN sözcüğün kullanmamız gerekirdi. SELECT * FROM Urun WHERE Fiyati BETWEEN 1000 AND 2000 Gruplama fonksiyonları: SUM, AVG, MAX, MIN, COUNT Ürünlerin toplam fiyatını bulmak için SELECT SUM(Fiyati) FROM urun Kayıt sayısını bulmak için SELECT count(*) FROM Urun Veri Kontrol Dili: Kullanıcılar ile ilgili yetki ve izinlerin kontrolü Yetki Verme: GRANT Genel Kullanımı: GRANT {ALL izinler} ON {izinebaglanabilenler} TO {hesaplar} Örnek: GRANT CREATE TABLE TO Ahmet komutu ile Ahmet kullanıcısı için tablo oluşturma yetkisi verilir. Erişimi Engellemek: DENY Genel Kullanımı: DENY {ALL izinler} TO {Kullanıcılar} Örnek: DENY SELECT ON bslab TO Ahmet komutu ile bslab tablosu üzerinde Ahmet kullanıcısının SELECT komutunu çalıştırmasını engelliyoruz. Erişim Tanımını Kaldırmak: REVOKE Genel Kullanımı: REVOKE {ALL izinler} {TO FROM} {hesaplar} Örnek: REVOKE ALL TO public örneği ile public rolüne verilen bütün yetkileri kaldırırız. TSQL İN PROGRAMLAMA YETENEKLERİ Değişken Tanımlama: TSQL de değişkenler tanımlanıp sorgulardan elde edilen sonuçlar bu değişkenlerde tutulabilir. Bir değişken aşağıdaki şekilde tanımlanabilir. DECLARE @degisken_adi veritipi [(boyut)] Örnek: DECLARE @pahaliurunadi VARCHAR(20); Değişkenlere değer atamak için SET veya SELECT ifadesi kullanılır. İki ifadenin kullanımı ile ilgili örnek aşağıda verilmiştir: Örnek: SET @pahaliurunadi= LCD TV DECLARE @yuksekfiyat MONEY -------------------------------------------

SELECT @yuksekfiyat=max(fiyat) FROM bslab SELECT @yuksekfiyat Print Komutu: TSQL ile kod yazarken bazen hata mesajları ve değişken değerlerini mesaj olarak göstermek için kullanılır. Örnek: DECLARE @sonuc MONEY SELECT @sonuc=sum(fiyat) from urun PRINT CAST(@sonuc as VARCHAR(10)) Akış Kontrolleri: TSQL de akış kontrolleri BEGIN END blokları arasına yazılır. IF karar yapısı, Case deyimi, While döngüsü ve break ile continue deyimleri TSQL de kullanılmaktadır. IF Karar Yapısı: Kullanımı Örnekler IF ELSE Karar yapısı IF(SELECT MAX(Fiyat) FROM Urun)>=20000 IF(şartlar) BEGIN BEGIN PRINT pahallı ürünler var Kodlar END. ELSE END BEGIN ELSE PRINT Pahallı ürün yok BEGIN END IF NOT EXISTS(SELECT * FROM urun) END PRINT Stokta ürün yok CASE Deyimi: Kısa kodlar ile birçok duruma dallanan akış yapılarını kodlamakta kullanılır. Kullanımı Örnek CASE SELECT Fiyat, urunadi, Durum= WHEN şart THEN değer CASE [ELSE değer] WHEN Fiyat>100 THEN PAHALLI END WHEN Fiyat<100 AND Fiyat>50 THEN ORTA ELSE UCUZ FROM Urun While Döngüsü ve Break Continue deyimleri: While ile bir işlemi istediğimiz kadar tekrarlatabiliriz. Break ve Continue deyimleri döngüyü kesme veya sonraki adımdan devam ettirmede kullanılır. Kullanımı Örnek WHILE şart DECLARE @sayac INT BEGIN SELECT @sayac=1 Tekrarlanacak kodlar WHILE(@sayac<15) END SELECT @sayac=@sayac+1

SELECT sayac=, @sayac İLİŞKİSEL VERİTABANI TASARIMI Herhangi bir veritabanı sistemi tasarlanırken veriler farklı ilişkisel tablolarda tutularak hem veritabanı boyutunun aşırı artması engellenir hem de veri bütünlüğü sağlanır. Tabloları birlikte sorgulamak, normalizasyon gibi ilişkisel veritabanının temelini oluşturur. TSQL de üç çeşit birleştirmeden (JOIN) bahsedilebilir. Bunlar aşağıda verilmiştir. JOIN türü Açıklama INNER JOIN İki tablo birlikte sorgulanırken, her iki tabloda da sadece uyuşan kayıtlar sonuçta gösterilir. OUTER JOIN İki tablo birlikte sorgulanırken, tablolardan herhangi birinde veya sadece birinde yer alan kayıtları sorgulamak için kullanılır. LEFT, RIGHT ve FULL olmak üzere üç alt türden oluşur. CROSS JOIN İki tablonun Kartezyen çarpımını bulmak için kullanılır. Tablolar arasındaki ilişkileri belirlemek için diyagramlar kullanılır. Diyagramlar görsel ortamda tablolar arasında ilişki kullanmayı sağlar. Daha önce Microsoft Access ile tablolar arasında ilişkiler tanımladıysanız bu nesneyi rahatlıkla kullanabilirsiniz. Sonradan tablo alanları üzerinde yaptığınız değişiklikler otomatikman bu diyagramlara yansıtılır. Aşağıda örnek bir veritabanı diyagramı verilmiştir. Veritabanı diyagramı şu şekilde oluşturulur: 1. SQL Server Managament Studio da ilgili veritabanı içerisinde Database diagrams a sağ tıklanır. 2. New Database Diagram seçeneği seçilir.

3. İlişkili olacak tablolar Add Table penceresinden eklenir. 4. Hangi alanlar arasında ilişki kurulacaksa bir alan üzerinden diğerine doğru sol Mouse tuşu sürüklenerek bırakılır. 5. Birleştirme türü (Primary Key-Foreign Key) belirlenir ve diyagram kaydedilir. Diyagram oluşturmak ilişkisel veritabanlarında veri bütünlüğünü sağlar. Örneğin kullanıcı veritabanında olmayan bir ürün hakkında yorum yazamaz. INNER JOIN işlemi en çok kullanılan birleştirme işlemidir. İki tablo arasında birleştirme yaparken, tablolardan her ikisinde de yer alan değerler seçilir, tablolardan sadece birinde yer alan Genel kullanımı aşağıdaki gibidir. FROM tablo1 [INNER] JOIN tablo2 ON tablo1.alan1 karsilastirma_isareti tablo2.alan2; Karşılaştırmadan kasıt genellikle = işaretidir. Örnek: SELECT U. UrunKod, U. UrunAd, U.Fiyat, M. Umarka from Urun U INNER JOIN marka M ON U.markakod=M.markakod Yukarıdaki sorgu ile Marka ve Urun tabloları markakod alanaları üzerinden birleştirilmiştir. OUTER JOIN işlemi, aynı anda her iki tabloda da yer almayan kayıtlardan tek tablodakileri veya her iki tablodakileri de diğer sütunları NULL olmak üzere sonuçta gösterebilmek için kullanılır. Genel kullanımı şu şekildedir:. FROM tablo1 JOIN_TIPI OUTER JOIN tablo2 ON tablo1.alan1=tablo2.alan2 Burada JOIN_TIPI LEFT, RIGHT veya FULL olabilir. LEFT JOIN de soldaki tabloda yer alan kayıtlar, sağdaki tabloda karşılıkları olmasa bile getirilirler. Tam tersi durum RIGHT JOIN de geçerlidir. FULL JOIN de ise her iki tabloda karşılıklı olarak eşit satırı olmayan kayıtlar da getirilir. FULL JOIN de ise her iki tablodaki karşılıklı olarak eşit olmayan kayıtlar getirilir. Genel kullanımı aşağıdaki gibidir:.. FROM tablo1 {LEFT RIGHT FULL} [OUTER] JOIN tablo2 ON tablo1.alan1=tablo2.alan2 Örneğin müşterilerden sipariş verenlerin fatura kodlarını ve isimlerini, sipariş vermeyenlerin ise sadece isimlerini göstermek için; SELECT faturakod, isim+ +soyad as ad FROM Kullanici K LEFT JOIN siparis S ON K.kullanicikod=S.kullanicikod CROSS JOIN ise her iki tabloda yer alan kayıtları çaprazlamak için kullanılır. Genel kullanımı. FROM tablo1 CROSS JOIN tablo2 Saklı Yordamlar (Stored Procedures)

Veritabanında saklanabilen ön derlemesi yapılmış Transact SQL deyimlerdir. Stored Procedurlar daha önce derlendiği için hızlı çalışırlar. Uygulamalar tarafından stored procedurlara erişerek kullanabilirsiniz. Örneğin bir Stored Procedure oluşturup; Java ile bu Stored Procedure erişip kullanabilirsiniz. Java, C#, Visual Basic gibi diller ile yazılan çok kullanıcı veritabanı programları stored procedure leri oldukça yoğun kullanmaktadır. Genel kullanım şekli aşağıdaki gibidir: CREATE PROC[EDURE] prosedur_adi( @parametre_adi veri_tipi [=varsayılan değeri] --Giriş parametreleri... ) AS TSQL deyimleri GO Stored procedur ü çalıştırmak için ise aşağıdaki şekilde yapılabilir. EXEC prosedur_ismi @parametre_ismi=deger [, =.] veya EXEC prosedur_ismi parametre_degeri [, ] Aşağıda urun_ara isimli bir Stored Procedure oluşturulmaktadır. CREATE PROC urun_ara @urunid varchar(20) AS SELECT UrunAd, Fiyat, Adet FROM urun WHERE Urun.UrunKod=@urunID GO Bu procedure nin çalıştırılması için EXEC urun_ara BL300 veya EXEC urun_ara @UrunID= BL300 yazılmalıdır. Burada UrunUD si parametre olarak geçirilmiş ve ürün bilgileri listelenmiştir. Tetiklemeler(Triggers) Tetiklemeler de bir store procedure dir. Fakat bir farkı tetiklemeler otomatik çalışırlar. Ancak UPDATE, INSERT, ve DELETE deyimlerini kullanarak bir tetikleme otomatik olarak başlatabilirsiniz. Genel kullanımı aşağıdaki gibidir: CREATE TRIGGER tirger_adi ON tablo_adi {FOR AFTER INSTEAD OF} {INSERT UPDATE DELETE} AS Otomatik_çalışacak TSQL ifadeleri GO Örneğin stoktan çıkan bir malın, fatura tablosundan da düşülmesi işlemini bir tetikleme oluşturarak yapabilirsiniz. Tablodan bir stok kartı silinecekse ve bu stok kartının stok hareketleri varsa DELETE işlemi ile ilgili bir tetikleme oluşturarak hareket gören stoğun silinmesini önleyebilirsiniz.

CREATE TRIGGER tetik01 dbo.stok FOR DELETE AS Declare @ STOKKOD varchar(15), @STOKSAYI int SELECT @ STOKKOD=HRK.STOKKOD,@STOKSAYI=HRK.STOKSAYI from deleted HRK update FATURA set miktar=miktar+@stoksayi WHERE skod=@stokkod GO View (Görünüm) Oluşturmak Viewlerde tablolara erişmenin bir yoludur. Viewler sayesinde çok kolonlu bir tablonun sadece belli kolonları listelenebilir ve kolonlar üzerinde hesaplamalar yaptırabilirsiniz. Örneğin tablonuzda diğer iki kolonun çarpımı olan yeni bir kolonu view ile rahatlıkla oluşturabilirsiniz. Gerçek tabloyla hiç ilişkisi olmayan tablolar oluşturup kullanıcıların bu tablo üzerinde işlem yapmasını sağlayabilirsiniz. Birden fazla tabloyu bir view ile birleştirebilirsiniz. Bu özellikle ilişkisel bir yapı kurduğunuzda oldukça yararlı olmaktadır. Şimdi adı Bilgisayar olan ürünlerin listesini veren bir view oluşturalım. create view deneme as SELECT TOP (100) PERCENT UrunKod, UrunAd FROM dbo.urun WHERE (UrunAd = 'Bilgisdayar') ORDER BY UrunAd CREATE VVIEW deyiminin CHECK ve WITH ENCRYPTION adında iki parametresi daha vardır. CHECK ile veri değişikliklerini kontrol edebilir, WITH ENCRYTION ile oluşturulan görünüm metnini şifrelenmesi işlemini yapabilirsiniz. CREATE personel_zam_view WİTH ENCRYTION AS SELECT Adı, Kademesi, Gorevi, Maasi*1.2 FROM Personel WHERE Kademesi=2 Yukarıda Personel tablosunda yer alan ve kademesi 2 olan memurların maaşlarına %20 zam yaptık ve bu metni SQL serverin syscomment tablosuna şifrelenmiş olarak kaydetmiş olduk. Viewlerle güvenlik işlemini daha kolay sağlayabiliriz. Kullanıcılara view üzerinde izinler verdiğiniz zaman; onlara gerçek tablo üzerinde izin vermemiş oluyorsunuz. Diyelim ki sadece Öğrenci Adı ve Soyadı bilgilerini içeren bir view oluşturup, Öğrencilerin özel bilgilerini içermeyen bu tabloyu kullanıcılara açabilirsiniz SQL Server Uzak Bağlantı(Remote Connection) Uzaktan Bağlantı için Yapılması Gerekenler 1 - SQL Server Instance' ınızın ilgili protokolünün yapılandırılması, 2 - Eğer varsa ve etkinse, Windows Güvenlik Duvarının yapılandırılması

3 - SQL Server' ınıza bağlanabilmeniz için kullanacağınız Login. SQL Server Instance' ınız için hangi protokolü kullanacağınızı belirledikten sonra, bu protokolün yapılandırmasını gerçekleştirirsiniz. SQL Server protokollerinin yapılandırılması işlemleri için SQL Server ile birlikte gelen SQL Server Configuration Manager' ı kullanabilirsiniz. (Başlat\Programlar\Microsoft SQL Server (Sürüm)\Configuration Tools) TCP/IP protokolünü etkinleştirmek veya etkin olduğundan emin olmak için, Şekil' de de gösterildiği gibi Protocol Name alanındaki TCP/IP protokolünün Status değerine bakabilirsiniz. "Enabled" etkin olduğu anlamına gelir, "Disabled" ise etkin değil demektir. Bu değeri değiştirmek için TCP/IP protokolünün üzerinde fare ile çift tıklayın veya TCP/IP protokolünün üzerinde farenin sağ tuşuna tıklayarak, açılan menüden "Properties" seçeneğine tıklayarak "TCP/IP Properties" penceresini açın. "Protocol" sekmesindeki "Listen All", bilgisayara bağlı tüm Ağ Kartlarının (Örn: Ethernet) IP adreslerinin SQL Server tarafından dinlenip dinlenmeyeceğini belirler. Eğer bu seçeneğin değeri "No" yapılırsa, "IP Addresses" sekmesindeki her IP adresini tek tek yapılandırmanız gerekir ve tekrar aynı sekmede bulunan "IPAll" seçeneklerinin herhangi bir geçerliliği kalmaz. Eğer değeri "Yes" yaparsanız, o zaman gene "IP Addresses" sekmesindeki "IPAll" seçenekleri etkinleşir ve diğer tüm IP adreslerine uygulanır. TCP/IP protokolünün IP adresi veya Port ayarlarını yapılandırmak için, gene "TCP/IP Properties" penceresinde bulunan "IP Addresses" isimli sekmeye tıklayın.

Bu listede her Ağ Adaptörünüz için bir IP ayar bölümü listelenecektir. Hangisinin etkinleştirilmesini istiyorsanız, onun "Active" ve "Enabled" ayarlarının karşısındaki değerleri "Yes" durumuna getirin. "Active", o IP adresinin dinleneceğini belirtir. "Enabled" ise o IP adresinin kullanılıp kullanılmayacağını. "IP Address" bölümde ise IPv4 veya IPv6 değeri yer alır. Eğer "TCP Dynamic Ports" etiketinin değeri "0" ise, bunun anlamı bu IP adresi için kullanılacak portun dinamik bir şekilde belirleneceğidir. Bu durumda SQL Server, bu IP adresi için müsait olan bir port numarası atayacaktır. Eğer Windows Xp SP2 ve daha üstü bir sürüm kullanıyorsanız Windows güvenlik duvarına SQL Server ı eklemeniz gerekir. SQL Server' da Authentication Mode (Yetkilendirme Modu) olarak iki adet seçeneğimiz bulunuyor. Birisi Windows Authentication, diğeri ise SQL Authentication (veya Mixed Authentication).Windows Authentication' ı sadece güvenilir ortamlarda kullanabilirsiniz. SQL kullanıcısı olarak SQL Server a bağlanabilmek için ise SQL Server Management Studio ortamında SQL Server ınıza sağ tıklayıp Properties seçeneğinden Security sekmesini seçtiğinizde aşağıdaki ekran karşınız gelir.

Security sekmesinden SQL Server and Windows Authentication Mode seçildiğinde SQL Server kullanıcısı olarak SQL server a bağlanılabilir. Uygulama Sınavı İçin Tedarik Edilmesi Gerekenler Her grup Bilgisayar Sistem Laboratuvarında kendilerine belirlenmiş bilgisayarlara ya da her öğrenci kendi kişisel bilgisayarına görsel programlama dili için Microsoft Visual Studio 2012,2010 veya 2008 ya da Netbeans, SQL Server için MS SQL 2012 veya 2008 kuracak. http://northwinddatabase.codeplex.com/ adresindeki Northwind veritabanının yedeği indirilip SQL Server de restore edilecek. (Sınavda bu veritabanındaki tablolarla ilgili sorgular olabilir.) Uygulama Konuları 1. SQL Server e ASP.NET veya JSP dillerinden biri ile bağlanma. Veritabanından veri çekip gösterme, veri kaydetme, güncelleme ve silme işlemleri, Stored Procedure ve Trigger kullanımı

Örnek Soru: SQL Server da bir veritabanı oluşturarak içinde en az üç adet ilişkisel tablo oluşturunuz. Bu tablolar ile ilgili ilişkisel şemayı(diyagramı) SQL Server de oluşturunuz. Bu tablolara kayıtlar ekleyip güncelleyen Stored Procedure ler oluşturup ASP.NET veya JSP dilinde bunları çağırınız. Örnek Soru: ASP.Net veya JSP de bir web sayfası oluşturun. Bu sayfaya başlangıç ve bitiş tarihlerinin girileceği iki alan ve bir buton yerleştirin. Northwind veritabanında verilen iki tarih arasında alış veriş yapan müşterilerin bilgilerini getiren stored procedure yazınız. Oluşturulan web sayfasında girilen tarihleri alıp stored procedure yi çalıştırıp gelen verileri sayfada gösteriniz. Örnek Soru: ASP.Net veya JSP de Northwind veritabanında Products tablosundaki ürünleri listeleyen bir web sayfası oluşturun.ürüne tıklanıldığında üsürünün detaylarını gösteren ayrı bir sayfa oluşturun. Bu sayfaya adet bilgisini girildiği bir alan ve siparişi bitir diye bir button ekleyin. Butona tıklanıldığında adet ve satın alınan ürünü ilgili tablolara kaydedin. Örnek Soru: Northwind veritabanında bir alış veriş olduğu zaman alınan ürünün miktarı kadar ürün tablosundaki ilgili ürünün stok sayısını azaltan trigger i yazınız. 2. Veritabanında karmaşık SELECT sorguları, içe içe (alt) SELECT sorguları (subqueries), Örnek Soru: Yukarıdaki tablolara göre Kemal Sunal ın oynadığı filmleri getiren sorguyu yazınız. Türü komedi olan sinemaların adlarını ve IMDB Puanlarını listeleyen sorguyu yazınız. Örnek Soru: Northwind veritabanında Suppliers (Tedarikçi) tablosundan Shelley Burke tedarikçisinin ürünlerinden alışveriş yapmış müşterileri listeleyiniz.

3. Group By, Having, Order By, Count, Sum, In, Exist, Between, Distinct, Inner Join, Left Outer Join, Right Outer Join IF, CASE, While, Cursor komutlarının kullanımı, Örnek Soru: Nortwind veritabanında USA deki her bir müşterinin (customer) yapmış olduğu siparişlerin (order) toplam sayısı ve siparişlerde alınan ürünlerin toplam sayısını listeleyen sorguyu yazınız. Bu sorgu için kullanılacak tablolar: Customers, Orders, Order Details Yazdığnız sorgu şu listeyi getirmeli. Örnek Soru: Northwind veritabanında sipariş (orders) yapmayan müşterileri (customers) listeleyiniz. Yazdığınız sorgu şu listeyi getirmeli: Örnek Soru: Northwind veritabanında Products tablosundaki ürünlerin adlarını fiyatlarını ve stokta olanlar için stok sayısını olmayanlar için Stokta yok ifadesini gösteren sorguyu yazınız. Yazdığınız sorgu şu tabloyu döndürmeli:

Örnek Soru: Northwind veri tabanında tedarikçileri ve tedarikçilerin ürünlerini cursor kullanarak aşağıdaki gibi yazdırın: 4. SQL Management Studio kullanarak yedek (backup) alma ve restore etme, T-SQL komutları kullanarak backup alma ve restore etme, differential ve full backup alma, Örnek Soru: Hem SQL Management Studio hem de T-SQL komutları ile Northwind veritabanının yedeğini alıp bu veritabanını başka bir isimde restore ediniz. Örnek Soru: Northwind veritabanın yedeğini her hafta Pazar gece 2:00 da alan işlemi SQL Server de yapınız. (Not: SQL in Express sürümü yüklü ise bakcup alan bir script yazılır. Bu script i sqlcmd komutu ile çağıran bir batch dosya oluşturulur. Windows un görev zamanlayıcısından bu batch dosyası görev olarak eklenir, ne zaman çalıştırılacağı belirlenir.) 5. SQL Server de güvenlik yönetimi, Windows Autentication, SQL Server Autentication, Login, User, Veritabanını farklı kullanıcılara farklı şekillerde yetkilendirme, Örnek Soru: SQL Server de Windows Autentication, SQL Server Autentication, Login ve User nedir ne amaçla kullanılır.

Örnek Soru: Nortwind veritabanı için iki kullanıcı oluşturun. Bu kullanıcılardan birinin yetkileri full olsun, diğerinin ise sadece veri okuma yetkisi olsun. Örnek Soru: Nortwind veritabanında Employee tablosundaki bilgileri çeken bir stored procedure oluşturun. Yeni bir user oluşturun bu user Nortwind veri tabanında sadece bu stored procedure yi çalıştırabilsin bunu dışında veri tabanı ile ilgili hiçbir şey göremesin. 6. SQL Server de coğrafik (GEOGRAPHY) ve geometrik (GEOMETRY) veri tipleri kullanımı, coğrafik sorgu kullanımı (coğrafik sorgular için coğrafik verilerle ilgili metotlar (STDistance, STIntersect, ) bilinmelidir. Bu metotlarla ilgili yardımcı doküman bulundurulabilir.) Örnek Soru: Bir kargo şirketinin şubeleri için şu şekilde bir tablo oluşturun Subeler(SubeId (int), SubeAd (nvarchar(30)), SubeKoordinat (geography)). Verilen bir noktaya en yakın şubeyi döndüren stored procedure yi yazınız. (Not: STDistance metodu bir noktanın bir noktaya uzaklığını döndürmektedir.) 7. SQL Server de Kilitlenmeyi izleme (Deadlock monitor), Kilitlenme yönetimi Örnek Soru: SQL Server de bir kilitlenme(deadlock) örneği yapınız ve bu kilitlenme SQL Server de nasıl izlenilir gösteriniz. 8. Rollback kullanımı Örnek Soru: Northwind veritabanında bir alışveriş için Orders ve Order Details tablosuna eklenen kayıtları geri alan rollback programını yazınız.