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

Ebat: px
Şu sayfadan göstermeyi başlat:

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

Transkript

1 VERİ TABANI YÖNETİM SİSTEMİ 2 Transaction: Birden fazla sql komutunun kullanımıdır. Transaction, özet olarak daha küçük parçalara ayrılamayan işlem demektir. Özellike bir grup işlemin arka arkaya gerçekleşiyor olmasına rağmen, seri işlemler halinde ele alınması gerktiğinde kullanılır. Transaction bloğu içerisindeki işlemlerin tamamı gerçekleşinceye kadar hepsi gerçekleşmemiş varsayılır. Update hesaplar set bakiye=bakiye-1500 where hesap_no= Update hesaplar set bakiye=bakiye+1500 where hesap_no= Commit: Kalıcı kayıt etme işlemi. Ancak kodda bir hata varsa başa döndürüyor kaydetmiyor. Rollbackten tek farkı komut derleme işlemini de yapmasıdır. Roolback: Yapılan işlemi geri almak. (iptal etmek) Eğer ki hesap numarasını yanlış yazmışsak rollback sayesinde işlemler iptal olur. En başa döndürüyor. En baştan itibaren iptal ediyor (doğru işlemi de) Yani işlemindeki hesap nosu doğru olsa da onu da iptal ediyor. Transaction log: Sql de yaptığımız tüm işlemler sırasıyla burada kaydediliyor. Bu bizim dosyamız. Start transaction: ISBN K_Adi Y_Tarih S_Sayisi Alritma VTYS Create table kitaplar (ISBN int, K_Adi varchar(45),y_tarih Date, S_Sayisi int); Start Transaction Update kitaplar Set S_Sayisi=0 Update kitaplar Set K_Adi= deneme Select*from kitaplar Rollback Bu kod sayesinde güncelleme işlemi yapacak ve select sayesinde görüntüleyecek. En son rollbackle bütün yaptığı işlemleri geri alacak. Burada yazdığımız Start Transaction kodu transaction işlemini başlatıyor. Bu sayede Roolback komutunu gerçekleştirebiliyoruz. Transaction Genel Yapısının Akış Diyagramı

2 Transaction başla SQL ifadeleri Hata varsa Rollback Commit Hata yoksa Savepoint: En başa değil de istediğimiz yere döner. Kayıt yaptığımız yerlere döner. Sistem geri yükleme mantığındaki gibi çalışır. Commit/Rollback to savepoint_ismi Transaction Ve Savepoint in birlikte Çalışma Alritması

3 Transaction başla Savepoint A SQL ifadeleri Hata varsa Rollback A Hata yoksa Savepoint B SQL ifadeleri Hata varsa Rollback B Hata yoksa Commit Start Transaction Savepoint deneme Update kitaplar Set S_Sayisi=0 where ISBN= Select*from kitaplar Rollback to deneme Select* from kitaplar Update kitaplar set K_Adi= Deneme Select* from kitaplar Rollback Select * from kitaplar Savepoint kayıt noktasıdır. Yukarıdaki kodlarda deneme adında bir kayıt noktası oluşturulmuştur. Bu işlemden sonra oluşturulan kayıt noktasına rollbackle dönüşler yapılmıştır. Bu kodlarda stransaction başlatılmış deneme adında bir kayıt noktası oluşturulmuştur. Sonrasında update işlemiyle sayfa sayısı sıfırlanmıştır. Sonrasında yapılan rollback işlemiyle kayıt noktasına dönülmüştür. Yani sayfa sayısı ilk Normalde kodda bu kadar Select ifadesi yoktur. Buradaki selectlerin anlamı yapılan her işlemden sonra kontrol ettir. Yani işlemi yapıp son hali görüntüler.

4 haline dönmüştür. Devamındaki update işlemleriyle de aynıları yapılmıştır. Ancak sondaki rollbacke to deneme demediğimiz için en başa dönecektir. Bir dönüş noktası yoktur. Tüm işlemleri geri alır. Kısacası Savepoint sayesinde bir kayıt noktası oluşturulur ve bu kayıt noktasına istediğimiz gibi dönüş yapılır. Transact SQL(T-SQL) Değişken Tanımlama: Sayi int, İsim varchar(20) Veritipi() int varchar(20) Örnek-1: int Set Bu örnekte üç adet sayısal türde değişken tanımlanmıştır. Daha sonra değişkenlere SET ifadesiyle değer ataması yapılmıştır. Son satırda da görüldüğü gibi değişkenlere atanacak değerler sabit olabileceği gibi diğer değişkenlerden de elde edilebilir. MONEY from personel ***Örnek1 de sanal tablo üzerinden sayılar üretilip işlemler yapılmıştır. Ancak örnek 2 de hazır tablo üzerinden en yüksek maaşı kisi bulmuştur. TABLE( nu int identity(1,1), ad varchar(50)); output alinacak_sutunlar into aktarilacak_sutun output kullanımının içinde inserted ve deleted kavramları var. İnserted ile ekleme işlemlerini deleted ile silme işlemlerini yönetiyoruz. tablo değişkenini tanımlayalım table( ad varchar(20), soyad varchar(30), maas int) yeni eklenen kaydı output işlemiyle eklenenler değişkenine ekleyip göstereceğiz. insert into personel output inserted.ad, inserted.soyad, inserted.maas values(10,"egemen","tekkanat",2300) (11, erdem, tekkanat,3000)

5 sonunda eklenenleri bu şekilde görüntüleyelim. Personel tablosundan silme işlemi için; table( ad varchar(20), soyad varchar(30), maas int) insert into personel output deleted.ad, deleted.soyad, deleted.maas values(10,"egemen","tekkanat",2300) KOŞUL İFADELERİ if koşul1 koşula bağlı kod else if koşul koşula bağlı kod else kod bloğu Örnek: if (select min(maas) from personel)>1500 print "maaşı 1000 den büyük olan personel yok" else select ad,soyad,maas from personel where maas<1500 if exists(select*from personel where maas>2000) print maaşı 200den büyük personel var sorgu sonucunda bir sonuç çıkıyorsa true çıkmıyorsa false değerini alır!!! ***Use ifadesi sayesinde kullanılacak veritabanı seçimi yapılmaktadır.

6 Use veritabani_adi use egemen varchar(25) from kitaplar print kitap sayisi print yetersiz kitap sayisi else if <=10) print kitap sayisi print Yeni kitaplar gerekli else print kitap sayisi print yeterli kitap sayisi Case ifadesi case kontrol edilecek değer when aldığı değer then değer1 when aldığı değer2 then değer2... else deger_n use egemen select ad,soyad,notu case when notu>84 then 5 when notu>69 then 4 when notu>54 then 3 when notu>44 then 2 when notu>24 then 1 else 0 use egemen select ad,soyad,cinsiyet =

7 case cinsiyet when "1" then "erkek" when "2" then "bayan" from personel ***Buradaki eşittir işareti ve caseden sonra gelen cinsiyet ifadesi case neye göre yapacağım sorusunun cevabıdır. use egemen select ad,soyad,rev,maas from personel order by case rev when "teknisyen" then maas desc case when rev "mühis then maas Burada iki farklı sütuna göre sıralama söz konusudur. İlkinde teknisyenlerin maaşlarını azalan sıralamada. Sonrasında mühislerin maaşını artan sıralamada sıralayacakır. Bu sıralamada önce ilk koşul göz önünde bulundurulacak sonra diğeri önemsenecektir. Update işlemi use egemen update personel set maas=( case when maas<1000 then maas +((maas*20)/100) when maas>=1000 and maas <2000 then maas +((maas*15)/100) else maas + ()maas*10)/100) ) tekrarlanması gereken işlemler için kullanılır. Fakat tek bir komut satır var ise e gerek yok. Tekrarlanmasını yani sürekli dönmesini istediğimiz komutları buna yazıyoruz. int print cast(@sayac as varchar(20))+"karesi"+ cast(@sayac*@sayac as varchar(20))

8 ***Buradaki cast tür değiştirme işlemi yapar. (varchar ataması) smallint yenile print "sayac as varchar(10)) set to yenile ***Burada sayaç 4 olana kadar yenile işlemine geri dönecektir. RETURN İFADESİ int int is NULL print "deger degiskeni NULL" Return else is not null WAITFOR Delay: Parametre olarak verilen zaman kadar sonra çalıştırır. Bekleme demektir. TIME: Parametre olarak verilen zamanda çalıştırır. Belli bir saattir. Waitfor time 16:20:00 //Bu saate kadar kodlarımı çalıştır. Waitfor delay 01:30:00 //Kodlarımı bu kadar saat sonra çalıştır. select *from sys.messages Bu komut sistem mesajlarını sıralar. Hangi kod ne işe yarıyor onu söyler. Buradaki return ifadesi programı sonlandırmayı sağlıyor. Yani burada null değer içeriyorsa program sonlandırılıyor. Try Catch Yapısı try sql ifadeleri try catch hata oluştuğunda yapılacak işlemler catch ERROR_NUMBER () Oluşan hatanın kodu ERROR_SEVERİTY () Hatanın önem derecesi ERROR_LİNE () hatanın meydana geldiği satır ERROR_MESSAGE () oluşan hatanın tanımı create database deneme şeklinde kod ile database oluşturabildiğimiz gibi şu şekilde de oluşturabiliriz.

9 Tablo oluşturmak içinse aşağıdaki kodları kullanabiliriz. create table ogrenci (id int,ad varchar(20),soyad varchar(20)) Ya da şu şekilde yaratabiliriz. Bu tabloya veri eklemek içinse insert into ogrenci(id,ad,soyad) values('1','egemen','tekkanat') insert into deneme.dbo.personel(id,ad) values('1','egemen') kodlarını kullanabiliriz. Yada;

10 Buradan ekleyebiliriz. Try catch yapısını şu şekilde kullanabiliriz. Örnek: try select 1/0 try catch select ERROR_NUMBER() as hata_no, ERROR_SEVERITY() as hata_önceliği, ERROR_LINE() as hata_satiri, ERROR_MESSAGE() as hata_mesajı catch bu kodları çalıştırdığımız da şu ekran çıktısını alacağız. Yukarıdaki örnekte sütun isimlerini kimiz belirliyoruz. try select * from ersonel try catch print 'hata mesajı:'+ Error_message() catch Bu örnekte ise sistem ki atıyor. create table urunler1 (urun_no int not null primary key, ad varchar(20)) create table fiyat1 (urun_no int null, fiyat money null) alter table fiyat with check add constraint FK_fiyat_urunler1 foreign key(urun_no)

11 references urunler1(urun_no) bu kodları yazıp çalıştırdığımızda tablolarımızı yaratmış oluruz. insert into urunler (urun_no,ad) values('1','bilgisayar'), ('2','Televizyon'), ('3','Tablet') insert into fiyat1(urun_no,fiyat) values('1','2000'),('2','1500'),('3','1800') Bu kodlarımızla da tablomuza verilerimizi ekliyoruz. delete from urunler1 where urun_no='3' bu kodlarla silmeye çalışıyoruz. Ancak foreign keyle diğer tabloyla ilişkisi olduğu için önce onu silmemizi söyleyen bir hata veriyor. Ancak kodları şu şekilde yazdığımızda hatayı açıkça belirtecektir. try varchar(20) delete from urunler where try catch if error_number()=547 print nolu ürünün fiyat bilgisini siliniz' else print error_number() catch Bu hatayı kaldırmak içinse güncelleme işlemi yapacağız. Bunu da şu şekilde yaparız; transaction save transaction basla update urunler set ad='deneme' rollback transaction basla commit update urunler set urun_no='10' rollback commit Burada update işlemi doğruysa aşağıdaki update işlemine geçer. Ama yanlışsa rollback sayesinde basla işlemine geri döner. try transaction try transaction save transaction basla update fiyat set ad='bilgisayar'

12 commit try catch rollback transaction basla print 'hata 1. güncellemede'+ error_message() catch update fiyat set fiyat='10554' commit try catch rollback print 'hata 2. güncellemede'+error_message() catch İki update işlemini iki try catch ile yaptık. Tek try catch ile yapılamadı Değişkenlerden ve diğer sql ifadelerinden elde edilen değerlere göre değerlenen komutlara dinamik sql ifadeleri diyoruz. Declare bildirmeye yarıyor. Birincisi tek bildirmelerde işe yaramaktadır ancak ikincisi birden fazla sorgu yaratmada işe yarar vce daha kullanışlıdır. varchar(20) //varolan dersler parametresiyle birleştirildi. execute ('select * from ' //çalışcak kodu yazdık veya select*from dersler varchar(20) varchar(20) 'select * from' +@tablo execute(@sorgu) //çalışacak parametreyi yazdık ('select * from ' ve select*from dersler aynı işlemi yapmaktadır. PROSEDÜRLER (YORDAM) Bir tane prosedür oluşturuyoruz. Değerlikten sonra çalışmaya başlıyor. Tek tek yapmaya gerek yoktur. Her defasında prosedürleri yaratmaya gerek yoktur. Bir defa yaratmak yeterlidir.

13 Buradaki klasörün içinde sistemin ki atadığı bir sürü prosedür vardır. (sp=system Prosedures) sp_addtype sayisal1, int create table btbs(id sayisal1) Bu bir tip atamadır. burada sayisal1'e integer vermiş oluyoruz. Sonrasında int yerine sayisal1 kullanabiliyoruz. Sp_addtype veri tipi atamak için kullanılır. sp_addmessage 50001,16, 'otomatik artan sütun için değer girişi yapılmış' Burada hata mesajlarını verdirtiyoruz. Artık nolu hata için bu mesajı verecektir. sp_detach_db deneme eklemeyi kaldır demektir. Sql kullandığımız sunucudan bunu kaldırır. Yani artık böyle bir veri tabanı yoktur. Eklemek 'C:\deneme_log.ldf' Varolan bir veri tabanını servera ekler. Database konfigüre ediyor yani ayarlıyor. sp_configure 'user options',5 sp_configure 'remote access',0 uzaktan prosedürlerime erişim için 0 yaparsam engellerim 1 yaparsam izin veririm. sp_addlogin 'egemen',12345 sp_adduser 'egemen1' burada egemen adında bir kullanıcı oluştururuz Kullanıcı oluşturduktan sonra şu adımları izleriz.

14 Burada kullanıcılarımız gözükmektedir. Üzerine tıklayıp Roller kısmından rollerini belirliyoruz.

15

16 User Mapping alanındansa kullanacağımız veri tabanlarını seçeriz. Bizim bir de genişletilmiş prosedürlerimiz var. Farklı diller için kullanılan dll lerdir.

17 sp_configure 'show advanced options',1 reconfigure sp_configure 'xp_cmdshell',1 reconfigure cmdshell:veritabanıyla birlikte komut ekranının kullanımının açılmasıdır. Burada sql serverın içinde msdos komutlarının kullanılmasına izin veriyoruz. xp_cmdshell 'dir C:' //C deki bütün dosyalarımı alt tarafta listeler. cp_cmdshell 'mkdir C:\deneme2' alt dizin oluşturur. xp_fileexist 'C:\deneme.mdf' deneme adında veritabanının olup olmadığını kontrol eder. xp_create_subdir 'C:\deneme2' deneme2 adında bir klasör oluşturur. C'nin içine Ki prosödürümüzü oluşturmak için bu adımları izleriz. CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName> AS BEGIN //Buraya oluşturacağımız prosedür komutlarını yazıyoruz. END GO Karşımıza gelen ekranı uygun şekilde dolduruyoruz. Bu karşımızdaki kod ekranına sağ tuş yapıp şu işlemi yapıyoruz.

18 Burada oluşturduğumuz tablolarımız çıkıyor. Bunların arasında ilişkileri kurarak otomatik olarak prosedürleri oluşturuyoruz. Yukarıdaki alanları kisi otomatik olarak dolduruyor. remove database egemen database ekledik sp_dbremove egemen database kaldırdık. (öğrenci tablosuna ders ıd diye bir kolon ekledik ) Alter table öğrenci Add ders_id int Select *from öğrenci PROSEDÜR YARATMA EL İLE: Create procedure ogr_ders (@ogr_ad varchar(30)) with encryption,recompile (şifreleme yapar sadece şifreyi yazan üzerinde değişiklik yapma hakkı verir diğerlerinde modifine seçeneği çıkmaz)(recompile:her çalıştığında derleme yapmasını sağlar) As Begin SELECT dersler.ders_id, dersler.ders_adi, ogrenci.soyad, öğrenci.ad, drsler.ders_hoca FROM dersler INNER JOİN öğrenci ON dersler.ders_id= öğrenci.ders_id Where (öğrenci.ad=@ ogr_ad) and(öğrenci.soyad=@ogr_soyad)

19 End Go (dizayna gelip tabloları seçtik ders ıd ler ile 2 tabloyu(dersler,öğrenci) birleştirdik.) PROSEDÜR SİLME Drop procedure dbp.dersler_student1 (prosedür silme) VAROLAN PROSEDÜRE ŞİFRE EKLEME Alter procedure Ders_Student1 With encryption As Begin End Go create procedure kitap_ekle (@kütüphane varchar(30)=null,@isbn varchar(30)=null) //3tane parametre tanımladık int from kutuphane where kutuphane_ismi=@kutuphane //kütüphane ismi parametresini birbirine eşitledik is null is null //ikiside bos degılse 0 döndürecek return 0 else is null or not exists //doluysa isbn parametresine eşitleyecek (select * from kitaplar where isbn=@isbn) print 'belirtilen kitap veya kütüphane bulunmadı' return 0 else if exists(select * from kitap_kütüphane where kutuphane_no=@kutuphane_no and isbn=@isbn else insert into kitap_kütüphane values(@kutuphane_no,@isbn,1) Aşağıdaki iki programda aynı işi yapmaktadır. Biri outputlu biri returnlu halidir. output=ortalamayı ekranda göstermek içindir. create procedure ortalama2 (@a int=0,@b decimal(10,2) output) as decimal(10,2) exec ortalama3 40,27,@sonuc output print ('Ortalama: '+cast(@sonuc as varchar(50)))

20 Output kullanarak sonucu çıkış parametresi yaptık. create procedure orta int=0) as decimal(10,2) 411,24 print('ortalama: ' as varchar(50))) exec derleme işlemi yapar. create procedure kitap_bul varchar(30)=null smalldatetime int output) as is not @s_sayisi=sayfa_sayisi from kitaplar where else print 'isbn degeri bos' //sadece ekranda output olanları gösterecek. Yanında output olanları gösterecek ama olmayanları göstermeyecek. İsbn yi göstermeyecek çünkü outputu yok.

21 Bu şekilde kimiz yeni bir fonksiyon yaratabiliyoruz. Şimdi biz upper (parametrelere girilen değerşeri büyük harfe çevirme) fonksiyonunu kimiz yazacağız. create function varchar(max)) returns varchar(max) as return Şimdi bu fonksiyonu kullanmayı gösterelim. select dbo.buyukharf(adi) from kitap //bizim yazdığımız fonksiyon select upper(adi) from kitaplar //sistemde varolan fonksiyon İkisi de aynı işlemi yapacaktır. create function isbn varchar(max)) returns int //fonksiyon sonucunda hangi tipte veri döndüreceğini gösterir. Yani int as int sayısını miktarın toplamı olarak aldık. from kitap_kütüphane where create function varchar(30)) returns table

22 as //kitap sütunu gelecek ve select ile gelenler burada listelenecek. return (select kitaplar.k_adi from kitaplar where isbn=kitap_yazar.isbn) as "kitap" from kitap_yazar where yazar_no in //yazarın no sunu girdiğimizde yazarın yazdığı tüm kitapları gösterecek. Yazar no da isbn ye göre gelecektir. ( select yazar_no from kitap_yazar where isbn=(select isbn from kitaplar where kitap_adi@k_adi Bu tablo sonuçlu fonksiyondur. Bu yüzden returns'den sonra table ifadesini kullandık. Bunda select ifadesi olacak ve bunun sonucunu döndürecek. create function varchar(30) /*geri dönecek olan tabloyu oluşturuyoruz*/ table( u_no int, uye_adisoyadi varchar(30), k_adi varchar(30) e_tarih smalldatetime, t_tarih smalldatetime, telefon varchar(40)) as /*gelen bilgilere göre emanet bilgilerini tablo değişkenine ekleyecek*/ emanet insert select uye_no select kitap_adi from kitaplar where kitaplar.isbn=emanet.isbn), emanet_tarihi,teslim_tarihi from where isbn=@isbn set uye_adisoyadi=(select uye_adi + ' '=+uye_soyadi from üyeler where üyeler.uye_no=u_no), telefon=(select telefon from üyeler where üyeler.uye_no)=u_no) return İMLEÇ (CURSOR) NEDİR? Transact SQL'de, SELECT sorguları bizlere sonuç kümeleri, yani tablolar geriye döndürürler. Bu çoğunlukla bizim işimizi görecek niteliktedir. Ancak kimi zaman elde ettiğimiz sonuç kümesi içinden bazı satırları alarak işlem yapmak mecburiyetinde kalabiliriz. Örneğin şu senaryoyu düşünelim:

23 Düzgün (alfabetik veya sayısal) bir şekilde sıralanmamış bir tablomuz olduğunu varsayalım.bu tablonun 17.satırındaki bir bilgiye ihtiyacımız olduğunda bu bilgiyi nasıl çekebiliriz? SELECT sorguları, bizlere belirlenen mantıksal kriterlere göre bilgiyi daraltma şansı verirler. Ancak bu daraltma işlemi sonucunda oluşan sonuç kümeleri, sorgu için bir bütün(birim) teşkil eder ve bu şekilde değerlirilir. Bize; oluşan sonuç kümelerinde gezintiler yapma ve sonuç kümesindeki her bir satıra ayrı ayrıerişebilme olanağını, imleç (cursor) denilen nesneler verir. İmleçleri kullanmanın iki yöntemi bulunmaktadır: Transact - SQL Veritabanı bağlantı arayüzleri (ADO, OLE DB, ODBC, DB-Library) Bu iki yöntemden herhangi birini tercih ederek imleçleri kullanmak olanaklıyken, bu yöntemlerin birlikte kullanımına izin verilmemektedir. (Makalede, T-SQL imleçleri temel alınmıştır.) İmleçlerin en önemli özelliklerinden biri de; (farklı türlere destek vererek) veri ekleme, güncelleme ve silme işlemlerine sınırlar ve farklı anlayışlar getirmesidir. Bu konu ve imleç türleri, imleçlerle ilgili bir sonraki makalemde işlenecektir. İmleçler, bize çok esnek programcılık olanağı sunmaktadır. Ancak bu olanağı sağlarken çok yüksek boyutlarda sistem kaynağını tüketmekte ve özellikle tempdb veritabanını yoğun olarak kullanmaktadır. Bu nedenle imleçler, yalnızca gerekli durumlarda kullanılmalıdır. İMLEÇLERİN KULLANIMI İmleçlerin yaşam süreci, aşağıdaki aşamalardan oluşmaktadır. Bir sonuç kümesine dayanarak (ve tabii ki türünü de düşünerek) imleci oluşturmak Oluşturulan imleci açarak, imlecin temelinde bulunan T-SQL sorgusunun canlanmasını sağlamak Açılan imleci kullanarak kayıtlar arasında dolaşmak Açılan imleci kullanarak belirli kayıtlarda düzenleme (güncelleme ve silme) işlemleri gerçeklemek İmleci kapatmak İmleci yok ederek, kullandığı kaynakları geri vermek İmleç tanımlaması yapmak için gereken Transact SQL kodu aşağıdaki şekildedir. DECLARE CalisanImleci CURSOR FOR SELECT FirstName, LastName FROM Employees Burada imleç bir değişken gibi tanımlanmakta ve imlecin temel aldığı T-SQL sorgusu FOR sözcüğünden sonra verilmektedir. Oluşturulan imleci kullanabilmek için, imleci açma gerekmektedir. Bunun için OPEN sözcüğü kullanılmaktadır. OPEN CalisanImleci

24 İmleç açıldıktan sonra, imleçteki kayıtlar arasındaki gezinmek için FETCH sözcüğünü kullanırız. FETCH NEXT FROM CalisanImleci Bu komut ile CalisanImleci adlı imleçte bir sonraki kayıda geçiş yapılır. Ayrıca kayıtlar arasında dolaşmak için FETCH komutunun farklı şekilleri kullanılabilir. FETCH PRIOR : İmlecin bir önceki kayda geçiş yapmasını sağlar. FETCH FIRST : İmlecin ilk kayda geçiş yapmasını sağlar. FETCH LAST : İmlecin son kayda geçiş yapmasını sağlar. FETCH ABSOLUTE n : İmlecin belirtilen sıradaki kayda geçiş yapmasını sağlar. FETCH RELATIVE n : İmlecin bulunan kayıttan belirtilen sıra ötesindeki kayda geçiş yapmasını sağlar. İmleç (Cursor): Satır satır işlem yapmaya yarar. declare imleç_ismi cursor [forward_only, scroll] [static, keyset, dynamic, fast_forward] [read_only, scroll_locks, optimistic] for select ifadesi veri kümesi üzerinde gezinmek için open ifadesi (açmak için) veri kümesinde son satıra gelene kadar satır satır gezmek için ise fetch ifadesi kullanılır. fetch next: bir sonraki satıra geçer fetch prior: bir önceki satıra geçer fetch last: son satıra gider fetch first: ilk satıra gider fetch absolute: n değeri pozitif ise n. satıra gider. n negatif ise sondan n. satıra geçer ve n 0 ise hiç bir işlem yapmaz fetch relative: n pozitif ise en son gidilen satırdan n satır sonrasına gider n negatif ise en son gidilen satırdan n satır öncesine gider. n 0 ise işlem yapmaz. Veri kümesinde gezinmeyi kapatmak için close ifadesi kullanılır. Deallocate: imleci hafızadan silmek için kullanılır. Aşağıdaki örnek Kitaplar tablosundaki kitapların adlarını ve sayfa sayılarını satır satır yazdırır. varchar(max) //parametre tanımladık int //parametre tanımladık cursor //imleç tanımladık for select kitap_adi, s_sayisi from kitaplar //imlecin neyleri saydıracağını yazdık open kitap_imleci fetch next from //bir sonraki satıra geç = 0 //eğer while başarılıysa. +' '+CAST(@sayfa as varchar(10)) //tür değiştirdi yazdırdı fetch next from kitap_imleci into //bir sonraki satıra geçerek yazdırıyor. close kitap_imleci deallocate kitap_imleci

25 Ürün_adi Fiyat A 15 B 80 C 40 Şimdi bu tablomuzu yaratalım. Create table urunler1 (urun_adi varchar(50), fiyat money) Bu tablomuza verilerimizi ekleyelim insert into urunler1 (urun_adi, fiyat) values ('A', 15),('B',80),('C',40) Şimdi bu ürünlerimizi güncelleyelim. Eğer 50 den küçükse %30 50 den büyükse %20 arttırıyor. update urunler1 set fiyat=fiyat+(fiyat*0.3) where fiyat < 50 update urunler1 sey fiyat=fiyat+(fiyat*0.2) where fiyat > 50 Select * from urunler1 dediğimiz de yeni ekran görüntüsü şu şekilde olacaktır. Bu işlemleri cursor yardımıyla yapmak istersek. Şu şekilde yapacağız. money declare fiyat_artis cursor for select fiyat from urunler1 open fiyat_artis fetch next from fiyat_artis update urunler1 set fiyat=fiyat+(fiyat*0.3) while current of fiyat_artis else update urunler1 set fiyat=fiyat+(fiyat*0.2) where current of fiyat_artis sağlıyor //update in sadece o satıra etki etmesini fetch next from fiyat_artis close fiyat_artis scroll imleç: Hem ileri hem geri hareket eder.

26 varchar(max) declare kitap_imleci cursor scroll for select kitap_adi from kitaplar open kitap_imleci fetch last from kitap_imleci while print k_adi fetch prior from kitap_imleci close kitap_imleci deallocate kitap_imleci Bu örnekte sondan başa doğru ilerleyerek işlemleri yapacaktır. Scroll olmazsa hata verir. Çünkü neye göre geri gideceğini bilemez. Static: Değişiklikler direk olarak veri kümesini etkilemez. Commit yaparak en sonunda kayıt yapılabilir. Dynamic: Veriyi doğrudan kaynağından kullanır. Keyset: Her değiştirilen satır için bir key oluşturur. Sonra o anahtara göre kodun değiştirilip değiştirilmediğini kontrol eder. Forward_only: Sadece fetch nextte izin verir.( Sadece satırı ileri almaya izin verir.) Read_only: Sadece okunur değişiklik yapılamaz. Scroll_locks: O anda satıra gelen update işlemini imleci kilitleyerek garanti altına alıyor. Aynı anda iki kullanıcı işlem yaparken kilitlenen satıra sadece o satırı kilitleyen kullanıcı değişiklik yapabiliyor. Optimistic: scroll_locks un tam tersidir. Eğer scroll_locks yapılmazsa sen o satırda işlem yaparken optimistic olur ve başkası o satırda işlem yapar senin yaptığın işlem kabul edilmez. Fast_forward: Hızlı bir şekilde yapar. Forward_only ve read_only özellikleri kullanılır. İşlemlerin hızlı yapılmasını sağlar. declare kitap_imleci cursor forward_only read_only for select kitap_adi from kitaplar declare kitap_imleci fast_forward for select kitap_adi from kitaplar Yukarıdakilerin ikisi de aynı işlemi yapacaktır. declare kitap_imleci cursor scroll scroll_locks for select kitap_adi from kitaplar Buradaki scroll sayesinde imleci hem ileri hem geri hareket ettirmeyi sağlar. Scroll_locks ise işlemlerdeki değişiklikler için imleci kilitliyor. Trigger (Tetikleyiciler) Trigger nedir?

27 Trigger tetikleyici anlamına gelir programlarımızda belirli bir işlem gerçekleştiğinde programımızı tetiklemeye yarar veya tablolar arası veri bütünlüğünü korumak için kullanılırlar. Aslında triggerlar bir store proceduredür fakat farkı kiliğinden çalışmasıdır. Triggerlarda ya hep ya hiç mantığı vardır yani program zorlukla karşı karşıya kaldıgında bütün işlem geri döner. Örneğin atmden para çekiyorsunuz parayı aldığınızda sizin hesabınızdan para düşülmemişse işlemin yarısında elektrik kesilmişşe vb. Olaylarda yapılan bütün işlemler iptal olur geri döner (transaction konusunda ayrıntılı anlatcağım)bu işlemi rollback transaction ifadesi ile gerçekleştirir trigger tanımlamamız içinde transaction blogu olması gerekir. Rollback transaction ifadesini minimum düzeyde kullanmamız önerilir çünkü büyük veritabanlarında bu işlemlerin yapılması çok büyük yük oluşturur buda performasın düşmesine sebep olur. Triggerlarla silme, güncelleme, ekleme işlemlerini yapabiliriz. Yani bir tabloda birden fazla trigger tanımlayabiliriz. Bir işlem yapılırken başka bir işlemin yapılmasını sağlıyor. Yapılan işlem diğerinin yapılmasını tetikleyebilir. Select, update, insert de tetikleyici olarak kullanılabiliyor. Ddl tetikleyiciler: ddl ifadeleri Create alter ve delete kullanıldığında devreye bu tetikleyiciler girer. İnserted ve deleted kullanılmaz. Rollback ve commit kullanılır. Allserver tüm sunucu üzerindeki işlemler, Database kullandığımız database üzerinde değişikliğe izin verir. All server içinde kullandıklarımız buradadır. Diğerleriyse database içinde yer alır. create trigger tetikleyici_ismi on (allserver / database) [with encryption] {for / after}

28 {create, delete, drop, deny, grant, revoke} as {sql ifadeleri} kodları bu şekildedir. create trigger silme_engeli on database for drop_table as print 'Tablo silme işlemi yasaklanmıştır!!!' Bu kodları çalıştırdığımızda database içerisindeki triggera bu tetikleyici eklenmektedir. Silme engeli olan bir trigger eklenmiştir. drop table urunler1 Bu kodu çalıştırdığımızda tablo işlemini engellediğimiz için şu uyarı çıkacaktır. create trigger silme_düzeltme_kont on database for drop_table alter_table as varchar(max) = 'kütüphane veri tabanı üzerinde bulunan tabloda değişiklik yapılmıştır!' + select EVENTDATA().value('/event_instance/TSQLCommand /CommandText) [1],','vvarchar(max)') exec xp_smail 'egementekkanat@trakya.edu.tr',@mesaj Bu kodlar sayesinde kodlarda herhangi bir değişiklik yapıldığında belirtilen adrese mail yollanıyor. EVENTDATA sayesinde ne tür bir değişiklik olduğu detaylı bir şekilde bilgiliriliyor. create trigger db_engeli on all server for create_database as print 'veritabnı oluşturmaya izin verilmiyor' rollback Bu kodlar sayesinde database yaratmaya engel koyulur. Veri tabanı yaratmaya çalıştığımızda şu hata ortaya çıkıyor. create database egemen2 Burada rollbackle ki hata mesajını verir. Bu yüzden kırmızı yazılardaki hatalar görüntülenmektedir.

29 create trigger tetikleyici_ismi on all server / database {for / after} lon as {sql_ifadeleri} LOGON TETİKLEYİCİLER Login olunca devreye girecektir. create login deneme with password='12345', check_expiration=on grant view server state to deneme //kullanıcının serverın durumunu görmesine izin veriyor. Sistemde üç kere oturum açmasını sağlayacak üçten sonra izin vermeyecektir. create trigger oturum_limit on all server for LOGON as if ORIGINAL_LOGIN()= 'deneme' and //Original Login sayesinde bizim kullanıcımızın sisteme girip girmediğini kontrol ediyoruz. (select count(*) from sys.dm_exec_sessions where is_user_process=1 and original_login_name='deneme')>3 //sisteme üç kere girip girmediğini kontrol ediyor rollback

30 Aşağıdaki gibi yazdığımız kodların çalışıp çalışmadığını deneme kullanıcısına üç hak verilip verilmediğini deneyebiliriz.

31 DML TETİKLEYİCİLER Tabloda değişiklik yapınca devreye giren tetikleyicilerdir. After(bu komutlar işlemi yaptıktan sonra devreye girer) ve instead of(komutlar çalıştığı sırada devreye girer.) komutlarında kullanılıyor. create trigger k_kontrol on kitaplar for insert //buradaki for yerine instead of ya da after da yazılabilir. Buradaki insert yerine delete, update yazarak diğer durumları da kontrol edebiliriz. as varchar(255) from inserted if exists (select * from kitaplar where k_adi=@k_adi) print 'aynı isimde kitap var' rollback Aynı isimde kitap girildiğinde aynı isimde kitap var hatası verecektir. Yukarıda var olan tabloya aşağıdaki gibi ekleme yapmaya çalıştığımızda hata verecektir.

32 Kalite kontrol trigger ının yardım kısmıdır. Sana bu trigger ın ne iş yaptığını anlatır. Burada Kitaplar tablosunda kullanılan triggerları ve bu trigger da kullanılanları gösterir. K_kontrol trigger ının etkilediği tablo ve sütunları gösterir. ÜRÜNLER URUN_KODU URUN_ADI FİYAT MİKTAR

33 1 A B C create table urunler(urun_kodu int, urun_adi varchar(25), fiyat MONEY, miktar int) insert into urunler values(1,'a',15,150), (2,'B',25,200), (3,'C',46,100); kodları sayesinde yukarıdaki tablomuzu yarattık ve eklemeleri yaptık. Create table satışlar (urun_kodu int, musteri varchar(50),tarih DATETIME,miktar int) insert into satışlar values(1,'ahmet',15/12/2010,150), (2,'Bülent',25/02/2010,200), (3,'Celal',10/10/2010,100); SATIŞLAR URUN_KODU MUSTERİ TARİH MİKTAR 1 Ahmet Bülent Celal Create table alımlar (urun_kodu int, cari varchar(50),tarih DATETIME,miktar int) insert into alımlar values(1,'200',15/12/2010,150), (2,'300',25/02/2010,200), (3,'400',10/10/2010,100); ALIMLAR URUN_KODU CARİ TARİH MİKTAR

34 Yukarıdaki iki tabloyu da oluşturup gerekli eklemeleri yaptık. Bu eklemeleri yaptıktan sonra alım yapılınca tablonun güncellenmesini alınan değer kadar eklenme yapılmasını sağlayacak trigger ı şu şekilde yazarız. create trigger stok_kontrol on alımlar after insert as int from inserted update urunler set where Bu kod sayesinde insert yaptığında update işlemi yaparak satırı güncelleyecektir. Yani aşağıdaki kodu her çalıştırdığımızda 1 numaralı ürüne +5 ekleme yapacaktır. Kodu bir kez daha çalıştırdığımda şu çıktıyı alacağız. Satışlar için yeni bir trigger oluşturuyoruz. create trigger stok_kontrol_satis on satışlar after insert as int int

35 from inserted from urunler where print 'yetersiz stok miktari' rollback else update urunler set where Bu tablo sayesinde yapılan satışlara göre stok miktarında gerekli azaltmalar yapılmaktadır. Eğer satış miktarı stok miktarından büyükse hatayı yaz aksi durumda varolan miktardan satış miktarını çıkarıp tabloyu güncelle. create trigger ISBN_sil on kitaplar after delete as varchar(255) if DELETE TETİKLEYİCİLERİ(DELETE TRİGGER)

36 from deleted delete from emanet where delete from kitap_kateri where delete from kitap_kutuphane where delete from kitap_yazar where Bu kodlar sayesinde isbn e göre tek tek tabloları kontrol edecek ve bu tablolardaki seçilen isbn e ait kayıtları tüm tablolardan silecektir. create trigger güncelle on kitaplar after update as varchar(255) varchar(255) from deleted from inserted update emanet set isbn=@yeni_isbn where isbn=@eski_isbn update kitap_kateri set isbn=@yeni_isbn where isbn=@eski_isbn update kitap_kutuphane set isbn=@yeni_isbn where isbn=@eski_isbn update kitap_yazar set isbn=@yeni_isbn where isbn=@eski_isbn Bu kod bloğu sadece eski isbn ile yeni isbn i değiştirerek güncelleme işlemi yapmaktadır. create trigger kitap_kontrol on kitaplar instead of insert as if not exists(select*from inserted inner join kitaplar on inserted.k_adi=kitaplar.k_adi) or not exists(select*from inserted inner join kütüphane on inserted.k_adi=kütüphane.k_adi) print 'girilen kitap adına veya isbn numarasına göre kitap tanımlı değildir.' rollback /*insert işleminden önce kitap_adi ve isbn değerlerinin olup olmadığını kontrol edecek.*/

37 else varchar(255) varchar(255) @girilen_miktar=miktar from inserted /* Eğer girilen isbn ve k_adi tanımlı ise o kitap adını update edecek*/ if exists(select * from kitaplar where k_adi=@girilen_k_adi and kütüphane_no=@girilen_kütüphane) rollback update kitaplar set miktar=miktar+@girilen_miktar where k_adi=@girilen_k_adi and kütüphane_no=@girilen_kütüphane else insert into kitaplar select*from inserted Daha önceden yarattığımız db_engeli adlı triggerı şu şekilde değiştiririz. alter trigger db_engeli on all server for create_database as print 'veritabanı oluşturmak yasaktır!' rollback Bu kod sayesinde yeni database oluşturulamıyor. exec sp_rename db_engeli, veritabani_engeli bu kod sayesinde de trigger ın adını değiştiriyoruz. Peki biz bu engeli kaldırmak istersek ne yapmalıyız? drop trigger veritabani_engeli on all server kodları sayesinde tüm databaselerden yaratma engelini kaldırıyoruz. Yani veritabani_engelindeki engeli. Eğer on ifadesinden sonra belirli bir database adı yazarsak o tablo için bu trigger ı tamamen kaldırmış oluruz. alter table kitaplar disable trigger kitap_kontrol

38 kitaplar tablosundaki kitap_kontrol triggerını pasif hale getiriyor. Eğer disable yerine enable yazarsak aktif hale getirecektir. Ya da all yerine belli bir database'i yazarak işlem yapabiliriz. Drop ile disable arasındaki fark. Drop ifadesinin geri dönüşü yoktur. Tamamen kaldırır. Ancak disable anlık pasif hale getirir ve enable ile aktif hale getirilebilir.

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

//bu ifadelerin ikisi de gerçekleşiyorsa havale işlemi gerçekleşmiştir fakat 1 tanesini çalışmazsa havale olmamıştır. transaction ifadeleri update hesaplar set bakiye=bakiye-1500 where hesapno=12 update hesaplar set bakiye=bakiye+1500 where hesapno=22 //bu ifadelerin ikisi de gerçekleşiyorsa havale işlemi gerçekleşmiştir

Detaylı

SQL TRIGGERS (Tetikleyiciler)

SQL TRIGGERS (Tetikleyiciler) Trigger kelime anlamı olarak tetikleyici demektir. Trigger, SQL de bir sorgu çalıştırdığımızda, başka bir sorgunun çalışmasını sağlamak için yazılan koddur. Mesela bir tablodan kayıt sildiğimizde, başka

Detaylı

EXISTS VE NOT EXISTS fonksiyonları

EXISTS VE NOT EXISTS fonksiyonları EXISTS VE NOT EXISTS fonksiyonları Kullanımı EXISTS (sorgu) : eğer sorgudan bir yada daha fazla kayıt dönerse değeri true (doğru), hiç kayıt dönmez ise değeri false (yanlış) tır. NOT EXISTS : exists fonksiyonunun

Detaylı

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

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir. TRIGGER Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir. DML ve DDL trigger lar olarak ikiye ayırmak mümkündür. DML (Data Manipulation

Detaylı

PostgreSQL ve PL/pgSQL

PostgreSQL ve PL/pgSQL PostgreSQL ve PL/pgSQL Adnan DURSUN Uygulama tasarım ve geliştiricisi @ : adnandursun.at.asrinbilisim.com.tr : +AdnanDURSUN Sunum Akışı PL/pgSQL nedir PL/pgSQL neden kullanmalıyız PL/pgSQL in yapısı Saklı

Detaylı

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.

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. TRIGGER 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. Herhangi bir tablo üzerinde yapılan, insert, update veya

Detaylı

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

T-SQL NEDİR? Microsoft T-SQL Transact-SQL T-SQL T-SQL NEDİR? SQL dilinin yeteneklerinin sınırlı olması sebebiyle, SQL üzerine çeşitli iyileştirmeler ve eklemeler yapılmıştır. Örneğin Oracle firması SQL üzerine yaptığı iyileştirmeleri standartlaştırmış

Detaylı

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

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1 5 SQL- Yapısal Sorgulama Dili Veritabanı 1 SQL- Yapısal Sorgulama Dili SQL ifadeleri yapısal olarak üç gruba ayrılır. Veri Tanımlama Dili (DDL - Data Definition Language) Veri İşleme Dili (DML - Data Manipulation

Detaylı

PostgreSQL ve PL/pgSQL

PostgreSQL ve PL/pgSQL PostgreSQL ve PL/pgSQL Adnan DURSUN Uygulama tasarımcı ve geliştirici adnandursun@asrinbilisim.com.tr 30.04.2011 İstanbul 1. PostgreSQL Türkiye Konferansı 1 Akış PL/pgSQL nedir PL/pgSQL neden kullanmalıyız

Detaylı

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

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II Değişken Tanımlama Ve Akış Kontrol Deyimleri Değişken Nedir? Değişkenler, programın veya kodların icra süresince belirli bir değer tutan ve istenilirse bu değer

Detaylı

VERİ TABANI ve YÖNETİMİ

VERİ TABANI ve YÖNETİMİ VERİ TABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü 2 BÖLÜM -12- TETİKLEYİCİ (TRIGGER) 3 Giriş Trigger lar Trigger lar Ne Zaman Kullanılmalıdır? Klasik Trigger ların Özellikleri

Detaylı

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

VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER) BÖLÜM 5 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER) 5.1 CURSOR (İMLEÇ) VE ÖZELLİKLERİ. Birden fazla kaydın hafızaya getirilme işlemlerine imleç(cursor) açma denir. İmleç açma, özellikle

Detaylı

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

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri ORACLE DA KÜRSÖRLER Gerekli sistem değişkenleri SQL%ISOPEN : kürsör açıksa değeri true, kapalı ise değeri false SQL%ROWCOUNT : sql ile işlem gören kayıt sayısı bulunur. SQL%FOUND : sql işlemi sonucu, en

Detaylı

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

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir. T-SQL KODLARİ İÇERİSİNE AÇIKLAMA EKLEME Bir veya daha fazla satırın çalıştırılmasını Önlemek için veya /*... */" ifadeleri kullanılır. -- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak

Detaylı

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

Cursor. Bir veri tipi olarak da ele alınabilen Transact-SQL Sunucu Cursor şu aşamalardan geçirilerek kullanılır. Cursor VTYS'deki cursor'ler, metin editörlerindeki cursorler ile aynı işi yapar. Metin editörlerinde O an için cursor nerede ise, oradaki verileri baz alan işlemler yapabilirsiniz. Veritabanı sistemlerinde

Detaylı

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

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir. SQL PROGRAMLAMA BATCH Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı deyimidir. SELECT. UPDATE...... DELETE.. BATCH BATCH Özellikleri 1- Bir batch içinde bir deyimde yazım hatası olduğunda

Detaylı

STORED PROCEDURE LER (Saklı Yordamlar)

STORED PROCEDURE LER (Saklı Yordamlar) STORED PROCEDURE LER (Saklı Yordamlar) Eskiden yazılımlar, sadece prosedür denilen kod parçalarından oluşurdu. Her prosedür belli bir işlevi yerine getirmek için yazılmış kod parçalarıdır. Mesela, 2 sayı

Detaylı

«BM364» Veritabanı Uygulamaları

«BM364» Veritabanı Uygulamaları HAFTA 6 T-SQL ile Programlar Yazmak" Yaşar GÖZÜDELİ ygozudeli@verivizyon.com http://blog.verivizyon.com/ygozudeli «BM364» Veritabanı Uygulamaları Konu Akışı Programlama dili olarak T-SQL Fonksiyonlar Programlamak

Detaylı

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

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir? 1) I. Tablo Oluşturma II. Veri Güncelleme III. Veri Silme IV. Veri Ekleme V. Tablo Silme Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir? a) I, IV ve V b) II, III ve IV

Detaylı

Veri Tabanı ve Yönetimi

Veri Tabanı ve Yönetimi Veri Tabanı ve Yönetimi Transaction Trigger 1Muhammer İLKUÇAR, MAKÜ-2011 BURDUR TRANSACTİON TRANSACTİON: İşlem bütünlüğü sağlar. Tranasction bloğu içindeki komutlar bir bütün olarak işlenir. Komutların

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama JDBC (Java Database Connectivity) Üst Düzey Programlama-ders07/ 1 JDBC JDBC ilişkisel veritabanlarına erişim için Java dilinde kullanılan standart bir kütüphanedir. Bu kütüphanedeki

Detaylı

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

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim' Bu Derste Öğrenecekleriniz: 1- Veri Tabanı Adı Değiştirme 2- Nesnelerin Adını Değiştirme a. Tablo Adı Değiştirme b. Alan Adı Değiştirme c. Constraint (Kısıtlama) Adı Değiştirme 3- Tablo Düzenleme Komutları

Detaylı

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

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon ORACLE GİRİŞ Oracle ile SQL Server ın karşılaştıralım. 1 Oracleda veritabanı yerine kullanıcı oluşturulur. Kullanıcılar veritabanı gibi davranır. 2 Tablo oluşturma, değiştirme ve silme kodları aynı. 3

Detaylı

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.

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. KULLANICI TANIMLI FONKSİYONLAR 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. Fonksiyonları veritabanı programlamada

Detaylı

SQL Komutları (2) Uzm. Murat YAZICI

SQL Komutları (2) Uzm. Murat YAZICI SQL Komutları (2) Uzm. Murat YAZICI Sıralama Sıralama işlemi için SELECT ifadesinde ORDER BY kullanılır. Bu ifadede ASC kelimesi kullanılırsa sıralama küçükten büyüğe doğru (A-Z), DESC kullanılırsa büyükten

Detaylı

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

VERİ TABANI YÖNETİM SİSTEMİ 2 VERİ TABANI YÖNETİM SİSTEMİ 2 Transaction: Birden fazla sql komutunun kullanımıdır. Transaction, özet olarak daha küçük parçalara ayrılamayan işlem demektir. Özellike bir grup işlemin arka arkaya gerçekleşiyor

Detaylı

Oracle da kullanılan veri tipleri:

Oracle da kullanılan veri tipleri: ORACLE A GİRİŞ Oracle ile SQL Server ı karşılaştıralım, 1 Oracle da veritabanı yerine kullanıcı oluşturulur. Kullanıcılar veritabanı gibi davranır. 2 Tablo oluşturma, yapısını değiştirme, silme kodları

Detaylı

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

Bölüm 4: DDL Veri Tanımlama Dili Bölüm 4: DDL Veri Tanımlama Dili -43- Dr. Serkan DİŞLİTAŞ DDL (Data Definition Language Veri Tanımlama Dili : Bu kategorideki SQL komutları ile veritabanları, tablo, görünüm ve indekslerin yaratılması,

Detaylı

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

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II Değişken Tanımlama Ve Akış Kontrol Deyimleri Değişken Tanımlama Değişken isimlerinin başında @ sembolü bulunur. @ad, @soyad, @tarih değişken isimlerine birer örnektir.

Detaylı

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

SAKLI YORDAM (Stored Procedure) Sibel Somyürek SAKLI YORDAM (Stored Procedure) Sibel Somyürek Saklı Yordam Saklı yordamlar veritabanı kataloğunda saklanan SQL kod bloklarının tanımlanmasıdır. Mesela, iki sayı alıp bunların toplamlarını hesaplayan bir

Detaylı

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

VERĐTABANI YÖNETĐM SĐSTEMLERĐ VERĐTABANI YÖNETĐM SĐSTEMLERĐ Öğr.Gör.Sedat Telçeken ANADOLU ÜNĐVERSĐTESĐ FEN FAKÜLTESĐ MATEMATĐK BÖLÜMÜ 2005 2006 Bahar Dönemi D M L Bilindiği üzere SQL tablolar üzerinde sorgulama yapar. Bu sorgular

Detaylı

Veri Tabanı Hafta Dersi

Veri Tabanı Hafta Dersi Veri Tabanı - 1 7. Hafta Dersi Dersin Hedefleri SQL Yapısal Sorgulama Dili Veri Tanımlama Dili (DDL) Create Alert Drop Veri tanımlama dili verinin ne olduğundan çok verinin tipi ile ilgilenir. Veri tabanı

Detaylı

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

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 1. 2. 3. 4. 5. 6. Görünüm (view) için özellikle aşağıdakilerden hangisi söylenebilir?? a) Veritabanındaki kayıtlı verileri düzenlemek, yönetmek ve elde etmek için kullanılan bir dildir b) Bir ilişkinin

Detaylı

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

2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir? 1- ' select cast ('500' as nvarchar) + cast ('250' as nvarchar) sorgusunun sonucu olarak aşağıdakilerden hangisi döner? a) 750 b) 250 c) 500250 d) 500 e)250500 2- Total de 8000 byte yer tutup 4000 karakter

Detaylı

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

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language) Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language) Konular Yapısal SQL Komutları Gruplama İşlemi SQL Fonksiyonları Kaynaklar 2 SQL (Structured Query Language) SQL Carlos

Detaylı

KULLANICI TANIMLI FONKSİYONLAR

KULLANICI TANIMLI FONKSİYONLAR KULLANICI TANIMLI FONKSİYONLAR 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. Fonksiyonları veritabanı programlamada

Detaylı

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

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı Data Programming SQL Language Elbistan Meslek Yüksek Okulu 2015 2016 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 15 Mar 2016 1 SQL deyimleri veritabanları üzerinde çeşitli işlemleri yerine getirirler. Veritabanından

Detaylı

Veritabanına Uygulanması

Veritabanına Uygulanması Add, Alter Drop, Alter Change, Alter Sql komutları ve açıklamaları CREATE CREATE TABLE Üzerinde çalışma yapılan veritabanı içerisinde yeni bir tablonun oluşturulmasını sağlar. CREATE TABLE tablo_adı (alan_adı1

Detaylı

Veri Tabanı SQL Server ve Management Studio kurulum linkleri: https://www.microsoft.com/en-us/download/details.aspx?id=42299

Veri Tabanı SQL Server ve Management Studio kurulum linkleri: https://www.microsoft.com/en-us/download/details.aspx?id=42299 Veri Tabanı 1 1. SQL Server ve Management Studio kurulum linkleri: https://www.microsoft.com/en-us/download/details.aspx?id=42299 2. SQL Management Studio açılış ekranı: Server Type: reporting, analysis

Detaylı

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri. 1.2. Kısıtlamalar (Constraints)

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri. 1.2. Kısıtlamalar (Constraints) Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri 1.1. Tablo Oluşturma 1.2. Tablo Oluşturmada Kısıtlamalar Constraints 1.3. Tablo Silme a. NULL, NOT NULL b. PRIMARY KEY c. UNIQUE d. FOREIGN KEY e. CHECK f.

Detaylı

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

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir. VERİ BÜTÜNLÜĞÜ VTYS lerde veri bütünlüğünü sağlamanın iki temel yolu vardır; Tanımlanabilir veri bütünlüğü ve prosedürel veri bütünlüğü. Tanımlanabilir veri bütünlüğü, tanımlanan nesnelerin kendi özellikleri

Detaylı

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

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır. 18 SQL SORGU DİLİ SQL (Structured Query Language) yapısal sorgu dili, veritabanı yönetim sistemlerinin standart programlama dili olarak bilinmektedir. SQL dilinin Access içinde sorgu pencerelerinde veya

Detaylı

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

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU Elbistan Meslek Yüksek Okulu 2015 2016 GÜZ Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU Tetikleyici : Tetikleyici (trigger), SQL Server üzerinde herhangi bir işlem gerçekleştiğinde başka bir işlemin tetiklenmesi

Detaylı

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.

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. 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. SQL-1 SELECT En basit SQL cümleciği oluşturmak için SELECT sözcüğü

Detaylı

«BM364» Veritabanı Uygulamaları

«BM364» Veritabanı Uygulamaları HAFTA 3 Veritabanı Tasarımı" Yaşar GÖZÜDELİ ygozudeli@verivizyon.com http://blog.verivizyon.com/ygozudeli «BM364» Veritabanı Uygulamaları Konu Akışı Veritabanı Tasarımı Kuramlar Veritabanı Nesnesini Yapılandırmak

Detaylı

KULLANICI TANIMLI FONKSİYONLAR (Devam)

KULLANICI TANIMLI FONKSİYONLAR (Devam) KULLANICI TANIMLI FONKSİYONLAR (Devam) Skaler değerli fonksiyon örneği: Parametre müşteri grubu olacak, eğer grubu parametresi değeri NULL olursa, tüm müşteri sayısını, NULL değilse girilen gruptaki müşteri

Detaylı

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

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi 20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi 1) Aşağıdaki SQL Server sürümlerinden hangisi ana sürümlerden bir tanesidir? a) Parallel Data Warehouse b) Express c) Standart d) Developer

Detaylı

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

SORGULAR. Öğr.Gör.Volkan Altıntaş SORGULAR Öğr.Gör.Volkan Altıntaş SORGULAR VE ÇEŞİTLERİ Seçme Sorguları: En sık kullanılan sorgu türüdür. Seçme sorguları, bilgileri veri sayfası görünümü nde gösteren veri tabanı nesnesi türüdür. Sorgu,

Detaylı

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

Tetikleyiciler (TRIGGER) Tetikleyiciler ne zaman kullanılırlar. Ardı Sıra Tetikleyiciler (After Triggers) Örnek Tetikleyiciler (TRIGGER) Bir tetikleyici bir tabloya bağlı olarak bir takım işlemler yapan özel bir saklı yordamdır. Biz bu derste sadece Ardı Sıra Tetikleyici (After Trigger) ve Yerine Tetikleyici (Instead

Detaylı

SORGULAR VE ÇEŞİTLERİ II

SORGULAR VE ÇEŞİTLERİ II Ünite 8 SORGULAR VE ÇEŞİTLERİ II Öğr. Gör. Kemal ÖZCAN Bu ünitede, Sorgular ve Çeşitleri konusu ele alınacaktır. Yapılacaklar Burada yazılan SQL ifadeleri MS SQL SERVER, ORACLE ve MySQL veritabanı sistemlerinin

Detaylı

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

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme Veritabanı Tasarımı Kullanıcı Erişimini Kontrol Etme Konular Nesne ayrıcalıkları ve sistem ayrıcalıkları arasındaki farkı karşılaştırma Bir kullanıcının bir veritabanınaerişimini etkinleştirmek için gerekli

Detaylı

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

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz. Fonksiyonlar tamamen işimizi kolaylaştırmak adına sürekli olarak tekrarladığımız sql sorgularına tek bir noktadan erişmemizi sağlar. Buda bize hızlı bir erişim imkanı,hızlı bir hata kontrol mekanizması,

Detaylı

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

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. Bu dersimizde biz Microsoft SQL Server veritabanı sistemini kullanmayı öğreneceğiz. SQL Nedir? SQL Structured Query Language

Detaylı

SQL Stored Procedure

SQL Stored Procedure SQL Server'daki Stored procedure'lar aynı diğer programlama dillerindeki procedure'lara benzer. SQL deyimlerini içeren komut doayaları hazırlanır ve sunucu üzerinde saklanır. Stored procedure aracılığıyla

Detaylı

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

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu SQL'DE VERİ İŞLEME KOMUTLARI SQL'de verileri işlemek için kullanılan komutlara DML (Data Manipulation Language Veri İşleme Dili) denilmektedir. Bu komutlar ile oluşturulan ifadeler tablolara kayıt eklemek,

Detaylı

BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK

BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK Her bir veri değiştirme komutunu kullanabilmek. (Data Manipulation Language, DML) Bir tabloya kayıt eklemek (INSERT) Bir tablodaki kayıtları güncellemek (UPDATE) Bir tablodan

Detaylı

VERİTABANI Veritabanı Yönetimi

VERİTABANI Veritabanı Yönetimi VERİTABANI Veritabanı Yönetimi YAPILANDIRILMIŞ SORGULAMA DİLİ (SQL) Veritabanı yönetimi, veritabanının yapısal özelliklerini belirtmek ve değiştirmek, veritabanına kullanıcı erişimlerini ve yetkilerini

Detaylı

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

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 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 YÜKSEK LİSANS PROJESİ Mehmet Emin AKKAYA Danışman: Yrd. Doç.

Detaylı

Veritabanı Tasarımı. Veritabanı Hareketleri

Veritabanı Tasarımı. Veritabanı Hareketleri Veritabanı Tasarımı Veritabanı Hareketleri Konular Veri hareketleri ile ilgili olarak COMMIT, ROLLBACK ve SAVEPOINT terimlerini tanımlamak COMMIT, ROLLBACK ve SAVEPOINT ifadelerinin üç avantajını listelemek

Detaylı

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme Veritabanı Tasarımı Sütun Değerlerini Güncelleme ve Satırları Silme Konular UPDATE komutunu oluşturmak ve çalıştırmak DELETE komutunu oluşturmak ve çalıştırmak Tabloda güncelleme yapmak ya da veri silmek

Detaylı

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

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur. TEMEL SQL SORGU ÖRNEKLERİ Sorgu İle Veritabanı Oluşturma create database veritabanı_adı Örnek : create database db_okul Yukarıdaki sorguyu çalıştırdığımızda db_okul adında bir veritabanı oluşturulur. Örnek:

Detaylı

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

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301) Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301) GENEL DERS BİLGİLERİ Öğretim Elemanı : Öğr. Gör. Erdal GÜVENOĞLU Ofis : MUH 313 Ofis Saatleri : Pazartesi: 10.00-12.00,

Detaylı

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.

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. Oracle (Devam) SELECT INTO Deyimi 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. Genel ifade: SELECT kolonisimler INTO

Detaylı

KULLANICI TANIMLI FONKSİYONLAR (Devam)

KULLANICI TANIMLI FONKSİYONLAR (Devam) KULLANICI TANIMLI FONKSİYONLAR (Devam) Skaler değerli fonksiyon örneği: Parametre müşteri grubu olacak, eğer grubu parametresi değeri NULL olursa tüm müşteri sayısını, NULL değilse verilen gruptaki müşteri

Detaylı

TETİKLEYİCİ. Tetikleyici Ne Zaman Kullanılır? Çeşitli amaçlara uygun olarak tetikleyiciler kullanılabilir.

TETİKLEYİCİ. Tetikleyici Ne Zaman Kullanılır? Çeşitli amaçlara uygun olarak tetikleyiciler kullanılabilir. TETİKLEYİCİ Tetikleyici(trigger), SQL Server üzerinde herhangi bir işlem gerçekleştiğinde başka bir işlemin tetiklenmesi için kullanılır. Tetiklenecek işlem tamamen bizim belirlediğimiz çerçevede başka

Detaylı

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

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır. 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

Detaylı

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

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim' Bu Derste Öğrenecekleriniz: 1- Veri Tabanı Adı Değiştirme 2- Nesnelerin Adını Değiştirme a. Tablo Adı Değiştirme b. Alan Adı Değiştirme c. Constraint (Kısıtlama) Adı Değiştirme 3- Tablo Düzenleme Komutları

Detaylı

Veri Tabanı Programlamaya Giriş

Veri Tabanı Programlamaya Giriş Veri Tabanı Programlamaya Giriş Kitap özeti Veri Tabanı Programlamaya Giriş SQL insanların veritabanı sistemleri ile konuşmasını sağlayan popüler bir dildir. Bu dil sayesinde, bir veritabanından kayıtları

Detaylı

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

VERİ TABANI YÖNETİM SİSTEMLERİ II. 3. SQL PROGRAMLAMA BLOKLARI ve AKIŞ DENETİMİ BÖLÜM 3 3. SQL PROGRAMLAMA BLOKLARI ve AKIŞ DENETİMİ 3.1 SQL PROGRAMLAMA BLOKLARININ YAPISI Birbirinden çok az farklarla ayrılan PL/SQL ve T-SQL e ikisini de kapsayacak şekilde SQL programlama demiştik

Detaylı

VERİ TABANI ve YÖNETİMİ

VERİ TABANI ve YÖNETİMİ VERİ TABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü 2 BÖLÜM -10- FONKSİYONLAR 3 Giriş Geçen haftaki derslerimizde Görünümleri (View) ve Stored Procedure (SP) leri öğrendik. Bu hafta

Detaylı

Mysql Veritabanı Komutları

Mysql Veritabanı Komutları Mysql Veritabanı Komutları Mysql Veri Tabanı Komutları Hazırlayan : M. Başar ACAROĞLU Kaynaklar: http://www.hrzafer.com/sql-dersleri http://www.w3schools.com/sql/default.asp Veri Tabanı Nedir? Mysql Veritabanı

Detaylı

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri 1.1. Tablo Oluşturma 1.2. Tablo Oluşturmada Kısıtlamalar Constraints 1.3. Tablo Silme a. NULL, NOT NULL b. PRIMARY KEY c. UNIQUE d. FOREIGN KEY e. CHECK f.

Detaylı

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

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız. Bu Derste Öğrenecekleriniz: 1- Basit Sorgulamalar a. Tablodan tüm alanları sorgulama b. Tablodan alanları belirterek sorgulama c. Tekrarlı satırları önleme d. Belirli sayıda veya oranda sorgulama yapma

Detaylı

SQL e Giriş. Uzm. Murat YAZICI

SQL e Giriş. Uzm. Murat YAZICI SQL e Giriş Uzm. Murat YAZICI SQL (Structured Query Language) - SQL Türkçe de Yapısal Sorgulama Dili anlamına gelmektedir ve ilişkisel veritabanlarında çok geniş bir kullanım alanına sahiptir. - SQL ile

Detaylı

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011 Veritabanına Giriş Oğuzhan Ceylan 19 Eylül 2011 Outline Veritabanı MYSQL Mysql Sorgu Komutları Bir veritabanı yaratmak ve kullanmak Veritabanı Veritabanı Verittabanı hangi alanlarda kullanılıyor. Web sitesi

Detaylı

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

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com SQL Deyimleri Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com SQL NEDİR? SQL bir veri tabanıyla iletişim kurmak için kullanılır. ANSI standardına göre ilişkisel veri tabanı yönetim sistemlerinin standart dilidir.

Detaylı

VERİTABANI. SQL (Structured Query Language)

VERİTABANI. SQL (Structured Query Language) VERİTABANI SQL (Structured Query Language) SQL'de Gruplama Bir tablonun satırları gruplara ayrılarak fonksiyonların bunlara uygulanması mümkündür. Gruplara ayırmak için SELECT deyimi içerisinde GROUP BY

Detaylı

BİLİŞİM TEKNOLOJİLERİ

BİLİŞİM TEKNOLOJİLERİ T.C. MİLLÎ EĞİTİM BAKANLIĞI BİLİŞİM TEKNOLOJİLERİ VERİ TABANI YÖNETİMSEL FONKSİYONLARI Ankara, 2013 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer alan

Detaylı

YAPISAL SORGULAMA DİLİ (SQL)

YAPISAL SORGULAMA DİLİ (SQL) YAPISAL SORGULAMA DİLİ (SQL) OGRENCI Tablosu 1234 Zeynep Makina K 23.06.1984 1. Cad 3.4 CREATE TABLE VERİ TANIMLAMA DİLİ (VTD) Veritabanında yeni bir tablonun oluşturulmasını sağlar. Yukarıda tanımlanan

Detaylı

COMMIT: Oluşturulan transaction işlemi başarılı bir şekilde gerçekleştiğinde yapılan değişikliklerin veritabanına kalıcı olarak aktarılmasıdır.

COMMIT: Oluşturulan transaction işlemi başarılı bir şekilde gerçekleştiğinde yapılan değişikliklerin veritabanına kalıcı olarak aktarılmasıdır. TRANSACTION Bir transaction bir veya daha fazla SQL ifadesinden meydana gelen tek bir işlemdir. SQL ifadelerinin tamamı bir bütün olarak düşünülür ve daha küçük iş parçalarına ayrılamaz. Özellikle ardı

Detaylı

Android Ders Notları

Android Ders Notları Android Ders Notları 1. Yeni Bir Proje Başlatma Android Studio programında yeni bir proje başlatıyoruz. İlk olarak karşımıza resim 1 deki gibi bir pencere gelecek. Burada Application name kısmına proje

Detaylı

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

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler Genel Kavramlar Veri Nedir? Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar Veri Tabanı Nedir? Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler Veritabanı Yönetim Sistemi (DBMS)Nedir?

Detaylı

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

Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek. Ms SQL Veritabanı Nesneleri Bölüm Veritabanı Yönetimi Yazar Öznur KARAKUŞOĞLU Yayın Tarihi 15.04.2004 Okunma Sayısı 1110 Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek. Hedefler Veritabanı

Detaylı

DML işlemleri. Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı. 12 15 May. 2015. Öğr. Gör. Murat KEÇECĠOĞLU

DML işlemleri. Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı. 12 15 May. 2015. Öğr. Gör. Murat KEÇECĠOĞLU DML işlemleri Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı 12 15 May. 2015 Öğr. Gör. Murat KEÇECĠOĞLU DML-Data Manipulation Lanquage : Buna Türkçe olarak veri işleme dili diyebiliriz. DML komutları

Detaylı

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

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler SQL'e Giriş SQL komutları kullanılarak aşağıdaki işlemler yapılabilir: Veritabanı nesnelerinin oluşturulması ve bu nesnelerle ilgili işlemlerin yapılması Bilgilerin istenilen koşullara göre görüntülenmesi

Detaylı

Sayfa 1 / 8. Tabo yapıları

Sayfa 1 / 8. Tabo yapıları 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

Detaylı

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL SUNGURLU MESLEK YÜKSEKOKULU BİLGİSAYAR TEKNOLOJİLERİ/BİLGİSAYAR PROGRAMCILIĞI 2017-2018 GÜZ DÖNEMİ VERİ TABANI YÖNETİM SİSTEMLERİ-II 5. T-SQL Öğr. Gör. Saliha Kevser KAVUNCU 1. TRANSACT SQL KAVRAMI Microsoft'un

Detaylı

Veri Tabanı II Alt Sorgular

Veri Tabanı II Alt Sorgular Veri Tabanı II Alt Sorgular Alt Sorgular Alt sorgular bir SQL sorgusunun içerisinde başka bir SQL sorgusu kullanılarak oluşturulan SQL ifadeleridir. Çoğunlukla SQL sorgusunun WHERE ve HAVING kısımlarında

Detaylı

VERİ TABANI NEDİR A. TABLO OLUŞTURMA

VERİ TABANI NEDİR A. TABLO OLUŞTURMA VERİ TABANI NEDİR Belli bir amaca dayalı ortak alanlara (ad soyad, ürün adı, fiyatı gibi) sahip kişilerin ve nesnelerin bilgilerinin tutulduğu, istendiğinde bu bilgiler için arama, düzeltme, silme, kayıt

Detaylı

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

Tavsiye Edilen Önhazırlık Temel veritabanı kavramlar hakkında bilgi sahibi olmak. Hedefler Temel veritabanı güvenlik işlemlerini gerçekleştirebilmek Ms SQL Server Veritabanı Düzeyinde Güvenlik Bölüm Veritabanı Yönetimi Yazar Mustafa ÖZEN Yayın Tarihi 08.07.2004 Okunma Sayısı 810 Tavsiye Edilen Önhazırlık Temel veritabanı kavramlar hakkında bilgi sahibi

Detaylı

ACCESS PLATFORMUNDA SQL

ACCESS PLATFORMUNDA SQL ACCESS PLATFORMUNDA SQL (STRUCTURED QUERY LANGUAGE) KODLAMA ÖRNEKLERİ DISTINCT : Bir alanda birbirinin aynı kayıtlar bulunabilir. Öğrenciler tablosundaki aynı isimde öğrencilerin bulunması durumunda aynı

Detaylı

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.

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. Bu Derste Öğrenecekleriniz: 1- Tabloya Veri (Yeni Kayıt) Ekleme 2- Kayıt Silme 3- Kayıt Güncelleme Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu

Detaylı

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

2008 09 Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları 2008 09 Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları Hayali bir şirket için BizimŞirket isimli bir veritabanı oluşturulmuş ve aşağıdaki tablolar yapılmıştır. Lütfen tabloları dikkatlice

Detaylı

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

1. Araçların tüm bilgilerini ve bağlı oldukları kiralama noktasının adres ve telefonunu içeren tam listesi: OtoKira bir çok yerde kiralama noktası olan bir araba kiralama şirketidir. Bu şirket bu kiralama noktalarında değişik araçlara sahiptir. Bu şirketin veri tabanı aşağıdaki tablolardan oluşmaktadır. KiralananYer

Detaylı

Bölüm 10: PHP ile Veritabanı Uygulamaları

Bölüm 10: PHP ile Veritabanı Uygulamaları Bölüm 10: PHP ile Veritabanı Uygulamaları -231- Öğr.Gör. Serkan DİŞLİTAŞ 10.1. PHP PHP, platformdan bağımsız sunucu taraflı çalışan betik bir web programlama dilidir. PHP programlama dili ile MySQL, MSSQL,

Detaylı

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

DĐNAMĐK ve STATĐK SQL KULLANMANIN PERFORMANSA ETKĐSĐ DĐNAMĐK ve STATĐK SQL KULLANMANIN PERFORMANSA ETKĐSĐ 1 İçindekiler 1. SQL Yazımında Dikkat Edilecekler... 3 2. TAMAMEN DİNAMİK SQL ÖRNEĞİ... 4 3. DİNAMİK SQL İÇİN CURSOR_SHARING I FORCE ETMEK... 5 4. DİNAMİK

Detaylı

Microsoft SQL Server Sorgulama

Microsoft SQL Server Sorgulama Microsoft SQL Server Sorgulama Eğitim Takvimi Tarih Eğitim Süresi Lokasyon 26 Kasım 2018 3 Gün Bilginç IT Academy Eğitim Detayları Eğitim Süresi : 3 Gün Kontenjan : 12 Ön Koşullar : Herhangi bir ön koşul

Detaylı

SQL Kod ile Tablo Oluşturma

SQL Kod ile Tablo Oluşturma SQL Kod ile Tablo Oluşturma Aşağıdaki SQL kodları Veri tabanı hazırlama programında yazılıp çalıştırıldığı zaman PERSONEL adında bir tablo oluşturulur ve bu tablonun sütunları Personel_no, Adı, Soyadı

Detaylı

BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK

BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK Sistem yetkileri Nesne yetkileri Tablolar uzerinde verilebilecek yetkiler Roller Roller ve yetkiler aras.ndaki farklar KULLANICI ERİŞİMLERİ Kullanıcılar bir Username

Detaylı