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

Slides:



Advertisements
Benzer bir sunumlar
T sql-diğer komutlar Metin Akbulut.
Advertisements

Tablo oluşturma İlk olarak tabloları oluşturmamız gerekli..
VERİ TABANI YÖNETİMİ Ders 11: PL/SQL’e Giriş
SQL de Değişken Tanımlama
SQL Komutlar 5 Sibel SOMYÜREK.
Alt Sorgular Veritabanı 2.
Veri Tabanı Yönetim Sistemleri
BÖLÜM 6 SQL SERVER KOMUTLARI.
Tetikleyici. Nedir? Bir tablo üzerinde Ekleme silme ve güncellemeye bağlı olarak tetiklenip çalışan SQL kodlarıdır. Genel amacı veri bütünlüğünü korumaktır.
SQL (STRUCTURED QUERY LANGUAGE)
ÖRNEKLER. musteri Id adi soyadi mus_satis Id barkod adet Urunlar barkod urun_adi kodu fiyati Stok_hareket tarih barkod gelen giden.
SQL Dili ve MySQL Komutları
SQL de Değişken Tanımlama
SQL SERVER 2008 Yücel YILDIRIM.
SQL Sibel SOMYÜREK.
SQL Komutları (2) Uzm. Murat YAZICI.
VTYS Öğr. Gör. Engin DUTAR
SELECT CONVERT(CHAR(8), GETDATE(), 112)
Bilgisayar Mühendisliği Bölümü
ADRESİNDEN ÖRNEK VERİ TABANLARINI İNDİRİNİZ
Yeni Veritabanı Oluşturma
S ORGU / DML / DDL KOMUTLARı İbrahim Onur Sığırcı.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Arş. Gör. Pınar CİHAN.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Constraint-View-Sequence Union-Intersection-Except Exısts-In Arş. Gör. Pınar CİHAN.
BİLGİSAYAR PROGRAMLAMA DERSİ
BÖLÜM 9 VERİ TABANI NESNELERİ.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
Yapısal Sorgulama Dili SQL Hafta 6 Ders Notu
İSTATİSTİK II Hipotez Testleri 1.
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
VIEW lerle çalışmak 11.BÖLÜM.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Transaction ve Örnekler
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
TETİKLEYİCİLER ve HATA KONTROLÜ
14.DERS Örnekler, Sorular BUKET DOĞAN.
5. HAFTA Öğr. Gör. Yunus KÖKVER
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
SQL.
PARAMETRİK HİPOTEZ TESTLERİ
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
DML ile veri ekleme, silme ve değiştirme
Sorgu / dml / ddl komutları
RAISE RECORD/CURSOR TRIGGER
Bilgisayar Bilimi Koşullu Durumlar.
SQL (STRUCTURED QUERY LANGUAGE)
Stored Procedure Öğr.Gör.Metin Akbulut.
SQL Server - Triggers.
NİŞANTAŞI ÜNİVERSİTESİ
SQL Server - Stored Procedures
Bilgisayar Bilimi Fonksiyon Yazma.
SQL Server - Views.
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-4-DML
NİŞANTAŞI ÜNİVERSİTESİ
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-3-DDL
SQL VIEW.
Bellek içi raporlama sistemleri için denormalizasyon uygulaması
Sunum transkripti:

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

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

© 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

© 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

© 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

© 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

© 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

© 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

© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi DECLARE @ara varchar(40) set @ara='Türkiye'; WITH BolgeCTE AS ( --Aramanın kök kısmını burada oluşturduk SELECT BolgeID, BolgeAdi, AltBolgeID, BolgeTuru FROM Bolgelerim WHERE BolgeAdi = @ara 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

WHILE WHILE (ŞART) BEGIN --KODLAR END

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

Declare @say int Set @say=0 WHILE (SELECT AVG(Birimfiyati) FROM Urunler) < 100 BEGIN set @say=@say+1 UPDATE Urunler SET Birimfiyati = Birimfiyati * 1.25 END PRINT CONVERT(VARCHAR(10),@say) PRINT 'İşlem Tamam.' GO

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 DECLARE @counter int SET @counter = 1 WHILE @counter < =100 BEGIN UPDATE yenitablo SET a = a + 1 SET @counter = @counter + 1 END Go

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

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

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.

@@FETCH_STATUS @@FETCH_STATUS 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 @@FETCH_STATUS = 0 ifadesi ile hata olmadığı sürece bir sonraki kayıt elde edilir.

use northwind DECLARE deneme CURSOR FOR SELECT Birimfiyati from Urunler GO DECLARE @stok INT OPEN deneme FETCH deneme INTo @stok WHILE (@@FETCH_STATUS=0) BEGIN PRINT @stok END DEALLOCATE deneme

use northwind DECLARE deneme2 CURSOR FOR SELECT BirimFiyati,UrunAdi from Urunler GO DECLARE @stok INT DECLARE @ad nvarchar(40) OPEN deneme2 FETCH deneme2 INTo @stok,@ad WHILE (@@FETCH_STATUS=0) BEGIN PRINT convert(varchar(10),@stok)+ ' ' + @ad END CLOSE deneme2 DEALLOCATE deneme2

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

© 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