Sayfa 1 / 8. Tabo yapıları

Benzer belgeler
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.

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

«BM364» Veritabanı Uygulamaları

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

KULLANICI TANIMLI FONKSİYONLAR (Devam)

KULLANICI TANIMLI FONKSİYONLAR (Devam)

KULLANICI TANIMLI FONKSİYONLAR

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.

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

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

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.

//bu ifadelerin ikisi de gerçekleşiyorsa havale işlemi gerçekleşmiştir fakat 1 tanesini çalışmazsa havale olmamıştır.

Veri Tabanı Programlamaya Giriş

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

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

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

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

1. GİRİŞ 2. YENİ TABLO EKLEME

Tetikleyiciler (TRIGGER) Tetikleyiciler ne zaman kullanılırlar. Ardı Sıra Tetikleyiciler (After Triggers) Örnek

EXISTS VE NOT EXISTS fonksiyonları

Veri Tabanı ve Yönetimi

VERİ TABANI YÖNETİM SİSTEMLERİ II. 4. SQL PROGRAMLAMADA PROCEDURE ve FUNCTION

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

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

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

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

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

VERİ TABANI ve YÖNETİMİ

C#.Net & Linq (Language Integrated Query)

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

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

VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER)

PostgreSQL ve PL/pgSQL

Mysql Veritabanı Komutları

Oracle da kullanılan veri tipleri:

PostgreSQL ve PL/pgSQL

SQL TRIGGERS (Tetikleyiciler)

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

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

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

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

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

VERİ TABANI YÖNETİM SİSTEMİ 2

YAPISAL SORGULAMA DİLİ (SQL)

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

BÖLÜM- 11: BÜYÜK VERİ KÜMELERİ

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

Cursor. Bir veri tipi olarak da ele alınabilen Transact-SQL Sunucu Cursor şu aşamalardan geçirilerek kullanılır.

STORED PROCEDURE LER (Saklı Yordamlar)

SQL Komutları (2) Uzm. Murat YAZICI

Veri Tabanı-I 9.Hafta

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

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

VERİ TABANI YÖNETİM SİSTEMLERİ II. 3. SQL PROGRAMLAMA BLOKLARI ve AKIŞ DENETİMİ

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

SELÇUK ÜNİVERSİTESİ BOZKIR MESLEK YÜKSEKOKULU VERİTABANI-II DERSİ FİNAL SINAVI

SQL Kod ile Tablo Oluşturma

EROL AKGÜL

Bir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir.

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

SQL Server genel olarak iki tip veritanını yönetmek için kurulur.

Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu tabloya göre yapacağız.

Veri Tabanı Hafta Dersi

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

BAYİLERİMİZE ÖZEL. 13 Ağustos İlgili Modül/ler : Genel. İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL

İNTERNET TABANLI PROGRAMLAMA- 10.ders GRIDVIEW İÇERİSİNDE YENİ KAYIT EKLEME, FOTOGRAF LİSTELEME, SIRALAMA YAPMA VE DROPDOWN EKLEME

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

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

Gruplama (aggregate) fonksiyonları bir dizi değer üzerinde hesaplama yaparlar ve bir sonuç

«BM364» Veritabanı Uygulamaları

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Birden Çok Tabloda Sorgulama (Join)

Bölüm 3: DML Veri İşleme Dili

MOBİL UYGULAMA GELİŞTİRME

ACCESS PLATFORMUNDA SQL

VERİTABANI ve YÖNETİMİ

MSSQL. 4. Hafta Uygulama - 1 BPR255 Veritabanı CREATE DATABASE OKUL GO USE OKUL GO

MODÜL. Verileri Sorgulamak" Yaşar GÖZÜDELİ.

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

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

Veri Tabanı II Alt Sorgular

BÖLÜM- 13: ALT SORGULAR İLE VERİ İŞLEME

Kişiler tablosundan AD kolonu yusuf olan tüm satırları siler. ORDER BY deyimi bir tablodan SELECT ile seçilen verileri sıralamak için kullanılır.

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

BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ DERSİ

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

SQL FONKSİYONLARI SQL lisanında hesaplama ve sayma işlemlerinde kullanılmak üzere bir çok fonksiyon vardır.

İNTERNET TABANLI PROGRAMLAMA- 12.ders

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

2.2 Örnek Veritabanı Tasarımı. Veritabanı 1

SQL Stored Procedure

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

PostgreSQL Veritabanı Sunucusu. 8.2 neler getiriyor?

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

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

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

DĐNAMĐK ve STATĐK SQL KULLANMANIN PERFORMANSA ETKĐSĐ

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

Transkript:

Tabo yapıları KullanTur KullanTurNo INT Birincil anahtar(kullanıcının türü 0 : Öğrenci, 1: Öğretim elemanı KullanTurAd VARCHAR(20 NOT NULL GecikmeCeza MONEY NOT NULL DEFAULT(0 Kullanıcı türü için uygulanacak günlü k ceza OduncSure INT NOT NULL DEFAULT(0 Kullanıcı türü için gün olarak ödünç süresi Kullanıcı KullanNo INT Birincil anahtar KullanAd VARCHAR(20 NOT NULL Sistemi kullanmak için kullanılan kimlik. Örneğin öğrenci no Ad VARCHAR(20 NOT NULL Soyad VARCHAR(20 NULL Adres VARCHAR(50 NULL KullanTurNo INT NOT NULL (KullanTur tablosunun KullanTurNo kolonuna bağlı yabancı anahtar Yazar YazarNo INT Birincil anahtar, IDENTITY(1,1 AdSoyad VARCHAR(20 NOT NULL Kitap KitapNo INT Birincil anahtar, IDENTITY(1,1 KitapAd VARCHAR(255 NOT NULL ISBN VARCHAR(20 NOT NULL KopyaSay INT NOT NULL DEFAULT(1 YazarKitap YazarNo INT NOT NULL (YAZAR tablosunda YazarNo kolonuna bağlı yabancı anahtar KitapNo INT NOT NULL (KITAP tablosunda KitapNo kolonuna bağlı yabancı anahtar Odunc OduncNo INT Birincil anahtar, IDENTITY(1,1 KitapNo INT NOT NULL(KITAP tablosunun KitapNo kolonuna bağlı yabancı anahtar KullanNo INT NOT NULL (KULLANICI tablosunun KullanNo kolonuna bağlı yabancı anahtar VerilişTarihi SMALLDATETIME NOT NULL BitişTarihi SMALLDATETIME NOT NULL İadeTarihi SMALLDATETIME NULL Ceza MONEY NOT NULL DEFAULT(0 Sayfa 1 / 8

Kullanıcı Fonksiyonlarına Örnekler Skaler Değerli Kullanıcı Fonksiyonları CREATE FUNCTION fn_duzelt (@S VARCHAR(50 RETURNS VARCHAR(50 DECLARE @A VARCHAR(100, @N INT SET @S = LTRIM(@S SET @S = Lower(@S SET @N=Charindex(' ',@S,1 SET @A = ' ' IF @N<>0 SET @A =Substring(@S, @N, LEN(@S SET @S =Substring(@S, 1, @N-1 SET @A = LTRIM(@A SET @S = UPPER(LEFT(@S,1+Substring(@S,2,LEN(@S SET @A = UPPER(LEFT(@A,1+Substring(@A,2,LEN(@A RETURN @S + ' '+ @A CREATE FUNCTION fn_kitaplar (@YazarNo int returns Varchar(255 as declare @s as varchar(255 set @s='' SELECT @s = CE WHEN @s='' THEN B.KitapAd ELSE @s +', '+B.KitapAd WHERE YazarKitap A INNER JOIN kitap B ON A.KitapNo = B.KitapNo (A.YazarNo = @YazarNo return @s CREATE FUNCTION fn_yazarlar (@KitapNo int returns Varchar(255 as declare @s as varchar(255 set @s='' SELECT @s = CE WHEN @s='' THEN B.AdSoyad ELSE @s +', '+B.AdSoyad YazarKitap A INNER JOIN Yazar B ON A.YazarNo = B.YazarNo WHERE (A.KitapNo = @KitapNo Sayfa 2 / 8

return @s CREATE FUNCTION fn_kitapvekategori (@KitapNo INT RETURNS VARCHAR(255 return ( SELECT B.KategoriAd + ' ' + A.KitapAd Expr1 Kitap A INNER JOIN KitapKategori B ON A.KategoriNo = B.KategoriNo WHERE (A.KitapNo = @Kitapno CREATE FUNCTION fn_kullanıcıtoplamceza (@KullanNo INT RETURNS MONEY DECLARE @M MONEY SELECT @M = sum(ceza Odunc WHERE KullanNo = @KullanNo IF @M IS NULL SET @M = 0 RETURN @M CREATE FUNCTION fn_kullanıcıveturu (@KullanNo INT RETURNS VARCHAR(255 Declare @KullanTurAd Varchar(20,@KullanTurNo Int,@S varchar(50 Select @KullanTurNo=KullanTurNo,@S= Ad+' '+ Soyad From Kullanıcı where KullanNo= @KullanNo Select @KullanTurAd=KullanTurAd from dbo.kullantur where KullanTurNo=@KullanTurNo return @KullanTurAd + ' ' + @S CREATE FUNCTION fn_oduncalansay (@KitapNo INT RETURNS VARCHAR(255 DECLARE @N INT, @S VARCHAR(255 SELECT @N = COUNT(* dbo.odunc Sayfa 3 / 8

WHERE KitapNo = @KitapNo SELECT @S = KitapAd from Kitap WHERE KitapNo = @KitapNo SET @S = @S +' isimli kitab ' + CT(@N VARCHAR(5 +' defa ödünç alındı RETURN @S Tablo Değerli Kullanıcı Fonksiyonları CREATE FUNCTION fn_kitap ( @KitapNo Int SELECT C.KitapAd, D.KategoriAd, B.AdSoyad, C.ISBN YazarKitap A INNER JOIN Yazar B ON A.YazarNo = B.YazarNo INNER JOIN Kitap C INNER JOIN KitapKategori D ON C.KategoriNo = D.KategoriNo ON A.KitapNo = C.KitapNo WHERE (C.KitapNo = @KitapNo CREATE FUNCTION fn_kullanbilgi(@kullanno INT SELECT A.KullanAd, B.KullanTurAd, B.GecikmeCeza, B.OduncSure Kullanıcı A INNER JOIN KullanTur B ON A.KullanTurNo = B.KullanTurNo WHERE (A.KullanNo = @KullanNo CREATE FUNCTION fn_kullanbilgi(@kullanno INT SELECT A.KullanAd, B.KullanTurAd, B.GecikmeCeza, B.OduncSure Kullanıcı A INNER JOIN KullanTur B ON A.KullanTurNo = B.KullanTurNo WHERE (A.KullanNo = @KullanNo CREATE FUNCTION fn_kullanıcı ( @KullanNo Int Sayfa 4 / 8

SELECT A.Ad, A.Soyad, A.Telefon, A.Adres, B.KullanTurAd, A.Etkin Kullanıcı A INNER JOIN KullanTur B ON A.KullanTurNo = B.KullanTurNo WHERE (A.KullanNo = @KullanNo CREATE FUNCTION fn_kullanoduncbilgi(@kullanno INT SELECT B.KitapAd, CONVERT(VARCHAR(10, A.VerilişTarihi, 104 Veriliş_Tarihi, CONVERT(VARCHAR(10, A.BitişTarihi, 104 Bitiş_Tarihi, CE WHEN A.İadeTarihi IS NULL THEN 'Kitap henüz iade edilmedi' ELSE CONVERT(VARCHAR(10, A.İadeTarihi, 104 İadeTarihi Odunc A INNER JOIN Kitap B ON A.KitapNo = B.KitapNo WHERE (A.KullanNo = @KullanNo CREATE FUNCTION fn_oduncbilgi (@KullanNo INT return( SELECT B.KitapAd, CONVERT(VARCHAR(10, A.VerilişTarihi, 104 VerTarih, CONVERT(VARCHAR(10, A.BitişTarihi, 104 BitTarih, CONVERT(VARCHAR(10, A.İadeTarihi, 104 İadeTarih Odunc A INNER JOIN Kitap B ON A.KitapNo = B.KitapNo WHERE (A.KullanNo = @KullanNo AND (NOT (A.İadeTarihi IS NULL UNION SELECT B.KitapAd, CONVERT(VARCHAR(10, A.VerilişTarihi, 104 VerTarih, CONVERT(VARCHAR(10, A.BitişTarihi, 104 BitTarih, 'Kitap henüz iade edilmedi' İadeTarih Odunc A INNER JOIN Kitap B ON A.KitapNo = B.KitapNo WHERE (A.KullanNo = @KullanNo AND (A.İadeTarihi Sayfa 5 / 8

Stored Procedure Örnekleri CREATE PROC sx_kitapekle @KategoriAd VARCHAR(50, @KitapAd VARCHAR(50, @ISBN VARCHAR(50, @KopyaSay INT, @Reserve INT DECLARE @KategoriNo INT IF @KopyaSay<0 RETURN -3 SELECT @KategoriNo = KategoriNo KitapKategori WHERE KategoriAd = @KategoriAd IF @KategoriNo IS NULL --Kategori adini bulamadim ekleyeleim. bu katorinin numarasini kullanalim INSERT INTO KitapKategori(KategoriAd VALUES(@KategoriAd SELECT @KategoriNo = @@IDENTITY IF EXISTS(SELECT * Kitap WHERE ISBN = @ISBN UPDATE Kitap SET KategoriNo = @KategoriNo, KitapAd = @KitapAd, KopyaSay = @KopyaSay, Reserve = @Reserve WHERE ISBN = @ISBN RETURN 0 ELSE INSERT INTO Kitap(KategoriNo, KitapAd, ISBN, KopyaSay, Reserve VALUES(@KategoriNo, @KitapAd, @ISBN, @KopyaSay, @Reserve RETURN @@IDENTITY CREATE PROC sx_kitapgir @KategoriNo INT, @KitapAd VARCHAR(50, @ISBN VARCHAR(30, @KopyaSay INT, @Reserve INT IF EXISTS(SELECT * dbo.kitapkategori WHERE KategoriNo = @KategoriNo Sayfa 6 / 8

AND NOT EXISTS(SELECT * Kitap WHERE KitapAd = @KitapAd INSERT INTO Kitap(KategoriNo, KitapAd, ISBN, KopyaSay, Reserve VALUES(@KategoriNo, @KitapAd, @ISBN, @KopyaSay, @Reserve RETURN @@ROWCOUNT CREATE PROC sx_oduncver @KullanNo Int, @KitapNo Int As if NOT EXISTS ( select * from Kitap where Kitapno=@KitapNo select 'verilen kitap numarasinda bir kitap yoktur.' return -1 if NOT EXISTS ( select * from Kullanıcı where KullanNo=@KullanNo select 'verilen KULLANICI YOK.' return -2 if EXISTS ( select * from Odunc where BitişTarihi<getdate( and İadeTarihi is null AND KitapNo=@KitapNo select 'bu KİTAP ÖDÜNÇTEN GERİ GELMEDİ' return -3 DECLARE @BitişTarihi SMALLDATETIME, @OduncSure INT, @KullanTurNo INT SELECT @KullanTurNo = KullanTurNo Kullanıcı WHERE ( KullanNo = @KullanNo SELECT @OduncSure = OduncSure KullanTur where KullanTurNo = @KullanTurNo select @BitişTarihi = DATEADD(DAY, @OduncSure, GETDATE( INSERT INTO Odunc(KitapNo, KullanNo, VerilişTarihi, BitişTarihi VALUES(@KitapNo, @KullanNo, GetDate(, @BitişTarihi create proc sx_yazarsil @YazarNo int as If Exists(select * from YazarKitap where YazarNo=@YazarNo select 'Yazarİn yazdiði kitaplar var. Yazarİ silemem' return -1 delete from dbo.yazar where YazarNo=@YazarNo Sayfa 7 / 8

create Proc sx_yazarkitapgir @YazarNo Int,@KitapNo Int As if not exists(select KitapNo Kitap WHERE (KitapNo = @KitapNo return -1 if not exists(select YazarNo Yazar WHERE (YazarNo = @YazarNo return -2 Insert Into YazarKitap(YazarNo, KitapNo values(@yazarno,@kitapno return 0 Sayfa 8 / 8