Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Benzer bir sunumlar


... konulu sunumlar: "© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi"— Sunum transkripti:

1 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
HAFTA 8 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

2 GEÇEN DERSLERDE NELER ÖĞRENDİK?
Veritabanı tasarımı Normalizasyon Join içinde group by kullanmak LIKE içinde operatörler TOP, TOP PERCENT, IN, BETWEEN…AND SOME-ALL-EXISTS, Tarih saat fonkdiyonları, metin fonksiyonları View kullanımı Kümeleme Fonksiyonları, veri ekleme,silme, güncelleme saklı yordamlar, görünümler,karar yapıları © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

3 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
CTE nedir SQL Server 2005 ile birlikte sunulan CTE (Common Table Expression – Ortak Tablo İfadeleri), bir sorgunun yürütülmesi anında elde edilmiş geçici sonuçlar bir veya daha fazla kere kullanılmasını sağlayan ifadelerdir. CTE bir table veya view olmayıp sadece bir sorgu ifadesidir. Yani geçici ve kalıcı tablolar gibi herhangi bir veri içermezler. Bir CTE’nin basit yazım biçimi aşağıdaki gibidir; © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

4 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
CTE CTE’ler WITH sözcüğüyle tanımlanır. CTE’lerin en önemli özelliği kendi kendini çağırabiliyor olması ve aynı sorgu içerisinden birden fazla çalıştırılabiliyor olmasıdır. Bu özelliğiyle CTE’ler daha çok recursive(Öz-yinelemeli) işlemler için geliştirilmiştir diyebiliriz. Örnek olarak hiyerarşik listeler için tercih edilir. Bu tür işlemler için geçici tablolar kullanılabiliyor olsa da CTE’ler daha iyi bir performans sağlar. Sadece çağrıldıkları anda oluşan bir yapıdır. CTE’ler yalnızca SELECT değil INSERT, UPDATE ve DELETE yapılarında da kullanılabilir. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

5 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
WITH CTEİSMİ (Sütun ifadesi) ( Başlangıç Sorgusu UNION ALL ) SLECT CYEye Referans © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

6 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
WITH YüksekUrun(UrunID, UrunAdi,BirimFiyati) AS (   SELECT TOP 10 UrunID, UrunAdi,BirimFiyati   FROM Urunler   ORDER BY BirimFiyati ), DusukUrun(UrunID, UrunAdi,BirimFiyati) AS (   SELECT TOP 10 UrunID, UrunAdi,BirimFiyati   FROM Urunler   ORDER BY BirimFiyati DESC ) SELECT * FROM YüksekUrun UNION SELECT * FROM DusukUrun © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

7 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
CREATE TABLE [dbo].[Bolgelerim]( [BolgeID] [int] NOT NULL PRIMARY KEY, [BolgeAdi] [varchar](100) NOT NULL, [AltBolgeID] [int] NULL, [BolgeTuru] [varchar](20) NOT NULL, ) GO INSERT INTO dbo.Bolgelerim (BolgeID,BolgeAdi,AltBolgeID,BolgeTuru) VALUES(1, 'Türkiye', null, 'Ulke') VALUES(2, 'United States', null, 'Ulke') VALUES(3, 'Marmara ', 1, 'Bölge') VALUES(4, 'İstanbul', 3, 'Şehir') VALUES(5, 'Florida', 2, 'Eyalet') VALUES(10, 'Hollywood', 5, 'Şehir') VALUES(7, 'Bursa ', 3, 'Şehir') © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

8 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
WITH BolgeCTE AS ( --Aramanın kök kısmını burada oluşturduk SELECT BolgeID, BolgeAdi, AltBolgeID, BolgeTuru FROM Bolgelerim WHERE BolgeAdi = 'Türkiye' UNION ALL --Alt elemanlara da burada ulaşıyoruz SELECT b2.BolgeID, b2.BolgeAdi, b2.AltBolgeID, b2.BolgeTuru FROM Bolgelerim as b2 INNER JOIN BolgeCTE s ON b2.AltBolgeID = s.BolgeID ) --Türkiyedeki bölgelere ularak oradan şehir alanını sorguluyoruz SELECT * FROM BolgeCTE where BolgeTuru = 'Şehir' © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

9 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
varchar(40) WITH BolgeCTE AS ( --Aramanın kök kısmını burada oluşturduk SELECT BolgeID, BolgeAdi, AltBolgeID, BolgeTuru FROM Bolgelerim WHERE BolgeAdi UNION ALL --Alt elemanlara da burada ulaşıyoruz SELECT b2.BolgeID, b2.BolgeAdi, b2.AltBolgeID, b2.BolgeTuru FROM Bolgelerim as b2 INNER JOIN BolgeCTE s ON b2.AltBolgeID = s.BolgeID ) --Türkiyedeki bölgelere ularak oradan şehir alanını sorguluyoruz SELECT * FROM BolgeCTE where BolgeTuru = 'Şehir' © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

10 WHILE WHILE (ŞART) BEGIN --KODLAR END

11 WHILE (SELECT AVG(Birimfiyati) FROM Urunler) < 30
BEGIN UPDATE Urunler SET Birimfiyati = Birimfiyati * 1.25 END PRINT 'İşlem Tamam.' GO

12 int WHILE (SELECT AVG(Birimfiyati) FROM Urunler) < 100 BEGIN set UPDATE Urunler SET Birimfiyati = Birimfiyati * 1.25 END PRINT PRINT 'İşlem Tamam.' GO

13 IF NOT EXISTS(SELECT * FROM sysobjects WHERE name = ‘yenitablo')
begin CREATE TABLE yenitablo(a int) INSERT INTO yenitablo values (10) INSERT INTO yenitablo values (20) end int = 1 < =100 BEGIN UPDATE yenitablo SET a = a + 1 + 1 END Go

14 IF NOT EXISTS(SELECT * FROM sysobjects WHERE name = 'd1')
begin CREATE TABLE d1 (deger int) END GO int = 1 < =100 BEGIN INSERT INTO D1 + 1

15 1.Cursor tanimlanir: DECLARE cursor_adi CURSOR FOR SELECT IFADESI
Veritabanı sistemlerinde ise, cursor’ün bulunduğu yerdeki verileri yazdırma, ele alma gibi işlemleri yerine getirebiliriz. 1.Cursor tanimlanir: DECLARE cursor_adi CURSOR FOR SELECT IFADESI 2.Cursor açılır: OPEN cursor_adi 3. Cursor üstünde dolasmak için FETCH komutundan faydalanilir: 4. Cursor kapatılır CLOSE cursor_adi 5. Cursor hafizadan silinir: DEALLOCATE cursor_adi

16 Fetch Fetch cursor hareketlerini yönetir
Fetch First: ilk satıra gider. Fetch next: Sonraki satır. Fetch last: bir sonraki kayıta gider. Fetch absolute n  olarak ifade ettiğimizde ise kaç kayıt gidileceğini belirtir. Fetch Relative n olarak ifade ettiğimizde ise kayıt ilerleme miktarını o an bulunan kayıta göre yapar.

17 ifadesi döngünün kontrol birimidir. "Fetch" ifadesinin sonucuna göre üç farklı değer alabilir. Bunlar ; 0: Bir önceki "fetch" ifadesi başarılı -1: Bir önceki "fetch" ifadesi hata ile karşılaştı -2: Son kayıt. WHILE = 0 ifadesi ile hata olmadığı sürece bir sonraki kayıt elde edilir.

18 use northwind DECLARE deneme CURSOR FOR SELECT Birimfiyati from Urunler GO INT OPEN deneme FETCH deneme WHILE BEGIN END DEALLOCATE deneme

19 use northwind DECLARE deneme2 CURSOR FOR SELECT BirimFiyati,UrunAdi from Urunler GO INT nvarchar(40) OPEN deneme2 FETCH deneme2 INTo WHILE BEGIN PRINT ' ' END CLOSE deneme2 DEALLOCATE deneme2

20 DECLARE deneme2 SCROLL CURSOR for
SELECT BirimFiyati,UrunAdi from Urunler OPEN deneme2 --son kayit FETCH LAST FROM deneme2 --baþtan ikinci kayit FETCH ABSOLUTE 2 FROM deneme2 --bulunduðumuz yerden 3 kayit ileri FETCH RELATIVE 3 FROM deneme2 DEALLOCATE deneme2

21 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Öğrenci Numarası (otomatik artan olabilir), Adı Soyadı, Ders Adı, Vize, Final, Ortalama , Durum değerlerini içeren bir tablo oluşturunuz. İçerisine örnek değerler giriniz (en az 10 adet) Ortalama degeri Vizenin %40’ı ile finalin %60’ı alınarak hesaplanmaktadır. Durum alanı ise Ortalama ve Final değerleri kontrol edilerek hesaplanmaktadır. Ortalama>=50 ve Final>=50 ise GEÇTİNİZ yazılsın Final alanında -1 değeri varsa SINAVA GİRİLMEDİ yazılsın Bunların dışındaki durumda ise KALDINIZ yazılsın. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi


"© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi" indir ppt

Benzer bir sunumlar


Google Reklamları