Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
1
SQL SERVER NEDİR
SQL Server genel olarak iki tip veritanını yönetmek için kurulur.
1.OLTP (Online Transaction Processing) Bu yapı içinde veriler tutulur. Bu
verilere kullanıcılar aynı anda değiştirebilir, güncelleyebilir, sorgulama yapabilir,
silebilir, (Bilinen tüm database işlemleri yapılabilir.)
2.OLAP (Online Analitical Processing) Genellikle büyük veritabanları hakkında
özet bilgilerin oluşturulduğu, veritabanlarıdır. Bu bilgiler analiz ve raporlamada
kullanılır.
Sql Server ilişkisel veritabanı yöntemlerini kullanır yani RDBMS (Relational
Database Management System) olarak adlandırılır.
RDBMS YAPISI
1. Tablolar içerisinde veri oluşturma ve tutma. 2. Veriler ve tablolar arasında ilişki kurma. 3. Veriler arasındaki ilişkiler için gerekli olan kuralları belirleme. (Örn:
Primary Key, Foreign Key) 4. Sistem problemlerinde verileri kurtarma.(Örn: recover,backup,restore) 5. Client uygulamalarından gelen istekleri cevaplama.(Yazılımlar aracılığı ile
veri yönetimi) 6. Transaction ve analiz için veri kaynaklarını yönetme.
Kullanıcı Uygulamaları
1- Transact Sql : Bu bir sorgulama dilidir. SQL (Transact Structure Query Language-Yapısal Sorgulama Dili işlemleri) dilinin kullanılmasıyla yapılan işlemlerdir. (Örn: İnsert, update, delete sorgusu) 2- XML : (Extansible Markup Language) Html kodları içerisinde XML tagleri ile veritabanı işlemleri yapılması yöntemi.
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
2
3- OLEDB ve ODBC Uygulama Arayüzleri : Uygulamalar OLEDB ve ODBC kullanarak veritabanı işlemleri yaptırmaktır. Burada kullanılan komutlar yine TSQL diline ait komutlardır. 4- Active X Data Object (ADO) : ADO.NET bir programlama dilinde OLEDB’yi kullanarak veritabanına erişim sağlar. Bu programlama dilleri Visual Basic, C#, J# gibi… 5- English Query : Bilinen TSQL yerine basit İngilizce kelimeler kullanarak yapılan sorgulamadır. (Örn: how much rows are there on maas table?)
VERİTABANI TİPLERİ
İlk kurulduğunda otomatik olarak bazı veritabanları gelir. Bunlar “System
Database” linkinin altında;
-Master: Kullanıcı hesapları ve sistem hata mesajlarını izler.
-Model : Yeni oluşturulacak veritabanları için temel kalıp oluşturur.
-Tempdb : Geçici tablo bilgileri ve diğer geçici bilgilerin tutulduğu yerdir.
-Msdb : Zamanlama ile yapılan iş bilgilerini tutar. (Örn: Zamanlanmış
görevler)
VERİTABANI NESNELERİ
- Tables : Kayıtların tutulduğu objelerdir. Column ve rowlardan oluşur.
- View: Birden fazla tabloyu ilişkilendirerek Kayıtların görüntülenmesi için oluşturulmuş sorgular.
- Database Diagram : Tablo ilişkilerini izlemek için kullanılır. - Storage: Veri tabanı ya da tabloların depolama
yöntemlerinin belirlendiği bölümdür. - Synonyms (eş anlamlılar): Yerel veya uzak bilgisayarlarda
bulunan veri tabanı nesnelerine farklı bir ad vermek veri
tabanı nesnelerinin konum değişikliğinde uygulamalarının
korunmasını sağlar
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
3
- Programmability: procedure, functionlar, triggerlar vb. gibi program parçacıklarının database üzerinde yazıldığı bölümleri içeren nesnedir.
- Service Broker: farklı veritabanları arasında iletişim için
bileşenleri oluşturmak için kullanılan alt yapıdır - Security: O veri tabanı üzerinde yetkili kullanıcıların
tanımlandığı, bu kullanıcıların hangi tablolalar üzerinde hangi yetkilere sahip olduğunun belirlendiği bölümdür
MsSql server için tam isim tanımlaması (Fully Qualified Names) :
Herhangi bir veri tabanı nesnesi için isim tanumlaması dört bölümden oluşur. -Server adı -Database adı -Sahip adı -Obje adı Örn : Create table (veri tabanı adı)KURS.dbo.(yeni oluşturulacak tablo adı)DENEME(sn int, ad varchar(50))
Veritabanı Oluşturma Adımları
1. Sql Server’a bağlanılır.
2. Database üzerinde new database seçeneği seçilir.
3. Gelen ileti kutusu üzerinde General Sekmesindeki name kısmından
database bir ad verilir.
4. Sql serverda verilen adla artık bir veritabanı oluşmuştur.
Tablo Oluşturma
SQL İLE: Create table veri tabanı adı.dbo.Tablo adı(alanadı1 tipi1, alanadı2 tipi2…) Örnek: Create table OGRENCI.dbo.KURS(sn int, ad varchar(50));
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
4
Veri Tipleri (Data Type)
Alfasayısallar:
Char: İçerdiği veriler, alfanümeric olup, hep aynı karakter sayısına sahip veri tipleridir (örnek:telefon numaraları)
Varchar: İçerdiği veriler, alfanümeric olup, verilerin karakter uzunluklarında eşitlik yoktur.
Nchar: İçerdiği veriler, alfanümeric olup, hep aynı karakter sayısına sahip veri tipleridir (örnek:telefon numaraları)
NVarchar: İçerdiği veriler, alfanümeric olup, verilerin karakter uzunluklarında eşitlik yoktur.
Char-Varchar veri tipleriyle, Nchar-Nvarchar veri tipleri arasındaki fark :
Nchar-Nvarchar tipler Unicode içerirler. Unicode'nin avantajı,uluslararası karakter setini kullanmasından dolayı,dünyada tanımlı olan her alfabeyi içermesidir.Bu verilerin bozulmadan taşınabilirliğini sağlar.
Tarih tipleri:
Time: Saat verisini tutar
Date: Tarih verisini tutar
DateTime: Tarih ve saati birlikte tutar
Smalldatetime : Tarih ve saati birlikte tutar. DateTime ile farkı: datetime,1 Ocak
1753 ve 31 Aralık 9999 arası tarihleri saklayabilen veri tipidir.
smalldatetime,1 Ocak 1900 ve 6 Haziran 2079 arası tarihleri saklayabilen veri
tipidir.
DateTime tipi verileri formatlamak:
SELECT CONVERT(VARCHAR, GETDATE(), 0) --Sonuç : Jul 17 2009 4:43PM SELECT CONVERT(VARCHAR, GETDATE(), 1) --Sonuç : 07/17/09 SELECT CONVERT(VARCHAR, GETDATE(), 2) --Sonuç : 09.07.17 SELECT CONVERT(VARCHAR, GETDATE(), 3) --Sonuç : 17/07/09 SELECT CONVERT(VARCHAR, GETDATE(), 4) --Sonuç : 17.07.09 SELECT CONVERT(VARCHAR, GETDATE(), 5) --Sonuç : 17-07-09 SELECT CONVERT(VARCHAR, GETDATE(), 6) --Sonuç : 17 Jul 09 SELECT CONVERT(VARCHAR, GETDATE(), 7) --Sonuç : Jul 17, 09 SELECT CONVERT(VARCHAR, GETDATE(), 8) --Sonuç : 16:43:05 SELECT CONVERT(VARCHAR, GETDATE(), 9) --Sonuç : Jul 17 2009 4:43:05:573PM SELECT CONVERT(VARCHAR, GETDATE(), 10) --Sonuç : 07-17-09 SELECT CONVERT(VARCHAR, GETDATE(), 11) --Sonuç : 09/07/17
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
5
SELECT CONVERT(VARCHAR, GETDATE(), 12) --Sonuç : 090717 SELECT CONVERT(VARCHAR, GETDATE(), 13) --Sonuç : 17 Jul 2009 16:43:05:590 SELECT CONVERT(VARCHAR, GETDATE(), 14) --Sonuç : 16:43:05:590 SELECT CONVERT(VARCHAR, GETDATE(), 20) --Sonuç : 2009-07-17 16:43:05 SELECT CONVERT(VARCHAR, GETDATE(), 21) --Sonuç : 2009-07-17 16:43:05.590 SELECT CONVERT(VARCHAR, GETDATE(), 22) --Sonuç : 07/17/09 4:43:05 PM SELECT CONVERT(VARCHAR, GETDATE(), 23) --Sonuç : 2009-07-17 SELECT CONVERT(VARCHAR, GETDATE(), 24) --Sonuç : 16:43:05 SELECT CONVERT(VARCHAR, GETDATE(), 25) --Sonuç : 2009-07-17 16:43:05.590 SELECT CONVERT(VARCHAR, GETDATE(), 100) --Sonuç : Jul 17 2009 4:43PM SELECT CONVERT(VARCHAR, GETDATE(), 101) --Sonuç : 07/17/2009 SELECT CONVERT(VARCHAR, GETDATE(), 102) --Sonuç : 2009.07.17
SELECT CONVERT(VARCHAR, GETDATE(), 103) --Sonuç : 17/07/2009 SELECT CONVERT(VARCHAR, GETDATE(), 104) --Sonuç : 17.07.2009 SELECT CONVERT(VARCHAR, GETDATE(), 105) --Sonuç : 17-07-2009 SELECT CONVERT(VARCHAR, GETDATE(), 106) --Sonuç : 17 Jul 2009 SELECT CONVERT(VARCHAR, GETDATE(), 107) --Sonuç : Jul 17, 2009 SELECT CONVERT(VARCHAR, GETDATE(), 108) --Sonuç : 16:43:05 SELECT CONVERT(VARCHAR, GETDATE(), 109) --Sonuç : Jul 17 2009 4:43:05:607PM SELECT CONVERT(VARCHAR, GETDATE(), 110) --Sonuç : 07-17-2009 SELECT CONVERT(VARCHAR, GETDATE(), 111) --Sonuç : 2009/07/17 SELECT CONVERT(VARCHAR, GETDATE(), 112) --Sonuç : 20090717 SELECT CONVERT(VARCHAR, GETDATE(), 113) --Sonuç : 17 Jul 2009 16:43:05:607 SELECT CONVERT(VARCHAR, GETDATE(), 114) --Sonuç : 16:43:05:620 SELECT CONVERT(VARCHAR, GETDATE(), 120) --Sonuç : 2009-07-17 16:43:05 SELECT CONVERT(VARCHAR, GETDATE(), 121) --Sonuç : 2009-07-17 16:43:05.620 SELECT CONVERT(VARCHAR, GETDATE(), 126) --Sonuç : 2009-07-17T16:43:05.620 SELECT CONVERT(VARCHAR, GETDATE(), 127) --Sonuç : 2009-07-17T16:43:05.620
Parasal Veri tipleri:
Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır.Bu veriler,virgülden sonra 4 basamağa kadar duyarlı ondalık tipli verilerdir. money, 99999999999999,9999,yaklaşık 99 Trilyon ile ,-99999999999999,9999 arası veriler için kullanılır. smallmoney,214,748.3648,yaklaşık 214 bin ile ,-214,748.3648 arası veriler için kullanılır. Sayısal Veri tipleri:
binary -> sabit uzunluklu ikili(0,1) veriler için.
varbinary -> değişken uzunluklu ikili(0,1) veriler için.
Tinyint 1 byte büyüklüğüne sahip,0-255 arasındaki tam
sayı veriler için kullanılır.
Smallint 2 byte büyüklüğüne sahip,+- 32 bin arasındaki
tam sayı veriler için kullanılır.
int 4 byte büyüklüğüne sahip,+- 2 milyar arasındaki
tam sayı veriler için kullanılır.
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
6
Bigint 8 byte büyüklüğüne sahip,+ 2u63 ile -2u63
arasındaki tam sayı veriler için kullanılır.
Sql server kayan nokta aritmetiği için kullanılan veri tipleri Float 7 basamağa kadar çıkmaktadır.
Real 15 basamağa kadar çıkmaktadır
Decimal(precision,scale) ondalık ve tamsayı verileri
saklayabilen türlerdir.
Numeric ondalık ve tamsayı verileri saklayabilen
türlerdir.
Diğer Veri Tipleri bit,adı üzerinde 1 bitlik veri hücresidir.Bir takım
verilerin işaret bilgisi için kullanılır
sql_variant,text,ntext,image,timestamp ve kendi
türünden(sql_variant) veriler haricindeki farklı tüm
tipleri saklayabilen değişken yapılı bir veri
türüdür.
timestamp,bir tablo güncellendikçe değeri otomatik
olarak 1 artan veri türüdür.Hex formatında
yazılır,başlangıç değeri 0x00000000000007D1 gibi
rasgele olarak verilir.
uniqueidentifier,benzersiz 16 byte hex değerindeki bir veri
türüdür.Genellikle kayıt sayısının 4 milyarı geçeceği
durumlarda veya çeşitli güvenlik sebeblerinden ötürü
kullanılmaktadır.
image veri türünün ise bir çok veritabanında performans
kaybına neden olduğu göz önüne
alındığında BLOB(Binary Large Object) verileri artık
terkedilmeye başlamıştır.
xml -> XML türünde,alt veriler içerebilecek bir veri.
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
7
Sql Server DateTime(Tarih Saat) Fonksiyonları
Fonksiyon Açıklama
GETDATE() Sistemin o anki tarih ve saatini verir
ÖRNEK: SELECT GETDATE()
DATEDIFF()
İki tarih arasındaki farkı gösterir
ÖRNEK: SELECT ADI,SOYADI,DATEDIFF(DAY,DOGUM_TARIHI,GETDATE()) FROM KIMLIK
DATEADD()
Parametre olarak geçeceğimiz tarih’e gün, ay, yıl eklemek için kullanırız.
ÖRNEK: SELECT DATEADD(DAY,20,GETDATE())
DATEPART() Parametre olarak geçtiğimiz tarihin sadece gün, ay, yıl şeklinde parçalayıp alabiliriz.
CONVERT() Tarih ve saat veri türlerini farklı formatlarda göstermek için kullanabiliriz.
DAY() Parametre olarak geçtiğimiz tarihin gün kısmını verir.
MONTH() Parametre olarak geçtiğimiz tarihin ay kısmını verir.
YEAR() Parametre olarak geçtiğimiz tarihin yıl kısmını verir.
MsSql Server Araçları ile
Bu bölümümüzde ise databasemi tablolarımızı ekleyeceğiz.Öncelikle Object Explorer'a geri dönüyoruz
ve databasemizi buluyoruz ve sol tarafında bulunan + ya tıklıyoruz.Database Diagrams,Tables,Wiews
dosyalarını görüyorsunuz. Tablo oluşturmak için burada sadece Tables dosyasını
kullanacağız. Tables >New > Table Tıklıyoruz.
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
8
Tablonun Sütunlarını Oluşturmak
Karşımıza çıkan pencerede tablomuzun sütunlarını(Column) yazıyoruz. İlk olarak Id sütunumuzu
yazıyoruz ve yazdığınız satırın üstüne sağ tıklayıp Set Primary Key seçeneğine tıklıyoruz.
Peki set primary key ne işe yarıyor derseniz eğer bir kaç madde ile tanımlayalım.
Primary Key Özellikleri Nelerdir ?
1) Bir tabloda en falza 1 primary key olabilir.
2) Primary key olan sütunda veri tekrarı olmaz. Unique Index özelliği vardır yani benzersiz değerler
farklı değerler,veriler olması gerekiyor.
3) Primary key olan sütunlar "NULL" değeri taşıyamaz.
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
9
Kısacası primary key 1 tane değerden bir tane daha eklenmemesini sağlıyor. Örnek olarak verirsek
"ahmet" adlı veriyi ikinci kez kayıt etmiyor. İlerleyen zamanlarda bu çok işinize yarayacak.Devam
edicek olursak, Id adlı sütunumuzu primary key olarak ayarladıktan sonra properties veya column
properties penceremizden (eğer açık değilse Wiew menüsünden Properties Window yada F4'e
basarak açabilirsiniz.) Identity Specification seçeneğini yes yapıyoruz.Peki Identity seçeneği bize ne
işimize yarıyor ?
Identity Specification Özellikleri Nelerdir?
1) Identity Specification özelliği sadece "Int" data type olarak seçilen sütunlar için kullanabilirsiniz.
2) Identity Specification özelliği "Yes" yapıldığı taktirde 1 den başlayıp kayıt eklendiği sürece otomatik
artacaktır.
3) Bu özellik genellikle no yada id vermede kolaylık sağlamaktadır.
Indentity özelliğimizi ekledikten sonra diğer sütunlarımızı oluşturabiliriz. İkinci sütun adı olarak "Ad"
yazıyoruz.Bu sütunumuzun data type olarak "nvarchar(50) " kullanıyoruz.Bir diğer sütunumuz ise
"Soyad" sütunu, bu sütunumuzda da aynı data type kullanıyoruz.(Resim 5)
Şimdi tablomuzun penceresini kapatıyoruz . "Choose Name" başlıklı küçük bir kutucuk açılıyor ve
burada tablomuzun ismini istiyor. Türkçe karakter kullanımına dikkat ederek tablomuzun ismini
"Kullanicilar" yazıyoruz ve Ok diyoruz
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
10
Resim 6
Tablomuzu kurduk eğer databasenize sağ tık yapıp Refresh yaparsanız tablonuz Tables dosyasının
içine gelecektir
Tabloya Veri Ekleme
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
11
En son işlemimiz olan tabloya veri eklemeye geldik. Bu alanda query kullanacağız. SQL kodlarını
kullanarak veritabanlarında işlemler yapacağız. İlk olarak New Query yapıyoruz.(Resim 8)
Artık kodlamaya başlayabiliriz.Açılan penceremizde şu kodları kullanacağız.
insert into Kullanicilar
(Ad,Soyad)
Values ('Eren','Akpınar')
select * from Kullanicilar
Kodlarımızı yazdıktan sonra Execute(F5) e basıp işlemlerimizi gerçekleştiriyoruz. Burdaki kodlarımızı biraz açarsak; Insert komutu yeni bir değer ekleme yaparken kullanılacak komuttur. Kullanicilar yazan kısım ise tablomuzun adı.insert into nun hemen altındaki (Ad,Soyad) kısmı içine veri eklenecek sütunların adıdır ve values değerleri gösterir. Yani burada veritabanımızın Ad bölümüne Eren Soyad Bölümüne Akpınar verisini yolladık.
Gördüğünüz gibi bir de select komutu var.Select komutu ile veri tabanımızdaki bilgileri getirebiliyoruz.Kodumuzu biraz açarsak eğer * yazan kısım o tablonun verileri gelirken tüm sütunların içindeki verileri getiriyor.Eğer biz sadece adını istiyorsak yıldız yerine Ad yazmamız yeterli olacaktır. from Kullanicilar komutu yine tablomuzu belirlemek amacı ile kullanılır.
Bu komutlarımızın kısa anlatımı olarak öncelikle insert ile ekleme işlemi yaptırıyoruz ve ekleme işlemi yapılmış mı diye select komutu ile kontrollerini yapıyoruz.
NOT: Tablo tasarımı üzerinde değişiklik yapıp yeniden kaydetmek için “tools”-options seçeneği
seçilir.”Designers” bölümünden “Prevent Saving Changes that require table re-creation
(Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi önle)” işareti kaldırılır
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
12
Tablo silmek
1- Tablo üzerindeysek “delete” seçeneği seçilir
2- drop table veri tabanı adı.dbo.tablo adı yazılarak sql query modunda
çalıştırılır. Örnek: drop table OGRENCI.dbo.KIMLIK
Dışarıdan Tablo Almak-Dışarıya tablo vermek
1- Veri tabanı üzerinde sağ Mouse menüden “tasks” seçeneği seçilir
2- Eğer dışarıdan tablo alınacaksa; import data seçilir,
3- Data source listesinden; hangi tip veri tabanından tablo alınacaksa o
seçilir (örnek:Microsoft Access Database Engine)
4- File name bölümünden veri tabanınızın olduğu yer ve veri tabanı seçilir
(örnek: OGRENCI.mdb)
5- Sonra gelen ileti kutusunda “Destination” listesinden sizin mssql server
database seçilir (not: eğer sa kullanıcısı ile veri tabanı oluşturduysanız
“use SQL Server Authentication” seçeneği işaretlenir
6- User name:sa, password:? Girilir, Database bölümünde tablonun
alınacağı veri tabanınızın seçili olduğuna dikkat edin
7- Gelen ileti kutusundan 1. Seçenek “Copy Data from….” Seçenei işaretli
olmalıdır
8- Artık data kaynağındaki tablolar listelenir. Hangi tablo ya da tablolar
alınacaksa onlar işaretlenip seçilir ve next denir
9- En son olarak “Finish” seçilip tablo alma işlemi bitirilir.
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
13
10- Alınan tabloyu “object Explorer” içinde veri tabanınızın altındaki
tablolar içinde görmek için araç çubuğu üzerindeki Refresh butonu ya da
F5 tıklanır
Tablolar Arası ilişki oluşturmak (Database Diagrams)
1- İlgili veri tabanı altında “Database Diagrams” üzerinde sağ Mouse basılır
2- New Database Diagrams seçilir
3- İlişki kurulacak tablolar seçilir
4- 1’den sonsuza (PK dan FK ya) sürüklenir
5- Ok tuşlanır ve save all seçeneği ile kayıt yapılır
6- İlişki properties den INSERT and UPDATE açılır ve listeden “Delete Rule”
ve “Update Rule” seçeneklerinden “Cascade” seçilerek yaniden save
seçeneği ile ilişki kaydedilir
Kullanıcı Oluşturma işlemleri
Sql Server’da kullanıcı oluşturmak için ;
1. security den new-login ya da alt seçeneklerinden logins-new login bölümü
seçilir
2. New login gelen ileti kutusunda login name kısmına veritabanına login olacak
kullanıcının adı yazılır.
Authentication kısmından da veritabanının açılış şekli seçilir. Eğer Windows
authentication seçilirse name kısmındaki ad aynı zamanda Windows kullanıcısı
da olması gerekir. Sql server authentication seçilirse bu kullanıcının sadece sql
server database kullanıcısı olması sağlanır ve password belirtilir.
3. Database bölümünde ise istenilen database seçilir. Eğer seçilmezse default
master veritabanıdır.
4. Language bölümünden dil seçilir.
5. Server Roles linkinden bu kullanıcı için veri tabanı üzerinde haklar seçilir.
(public default seçilidir. Veri tabanı üzerinde tüm haklara sahip olunsun
isteniyorsa; sysadmin seçeneği de seçilmeldir)
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
14
6. User Mapping bölümünde isteğe göre seçilen veri tabanı değiştirilebilir, yeni
veri tabanları eklenebilir.
7. Yapılan bu işlemler onaylanır
8. Refresh ya da F5 le yenilendiğinde Security-Logins bölümünde yeni kullanıcıyı
görebilirsiniz. İsterseniz disconnect yaparak yeniden bu kullanıcınızla connect
olabilirsiniz.
Veri tabanı üzerinde SQL oluşturma
1- Veri tabanı üzerinde New Query seçilir
2- Gelen ekranda, sql modunda seçili veri tabanı içindeki tablolardan
sorgular oluşturulabilir.
3- Bu sorgu kaydet denildiğinde disk üzerine sql uzantısı olarak save edilir
4- Aynı sql sayfası üzerinde birden fazla sql cümlesi çalıştırılabilir. Sorguların
sonuna ; konulur, tüm sorgu seçilir ve execute simgasi tıklanarak seçili sql
çalıştırılır.
View oluşturma
1- İlgili veri tabanı üzerindeyken view sekmesi açılır
2- View üzerinde Mouse sağ menüden “new view” seçilir
3- Gelen ileti kutusu kapatılır
4- Sql yazılır
5- Execute (çalıştırılır) edilir
6- Save edilirken bir view adı verilir
7- Refrehs yapıldığında yeni viewi görebilirsiniz
YA DA sql ile oluşturabilirsiniz. Örnek: Karadeniz illerini veren view(view adı: karadeniz_illeri)
CREATE VIEW karadeniz_illeri AS SELECT IL_KODU,IL_ADI FROM dbo.ILLER WHERE BOLGESI=5;
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
15
TRIGGER (TETİKLEYİCİ) OLUŞTURMAK
Tablolardan herhangi biri üzerinde, ister veri tabanında isterse ara yüzlerde
yapılacak veri değişikliğinde, bir başka tablonun(tabloların) etkilenmesi için
yazılan veri tabanı nesnesidir.
1- Oluşturulacak tablonun solundaki (+) işareti açılır 2- Gelen işlemlerden trigger üzerinde sağ Mouse menüden “new trigger”
seçilir 3- Ya da “new query” ile sorgu ekranı açılır 4- oluşturulacak trigger scripti bu ekranda yazılır. 5- Execute edilir. 6- Böylece tetikleyen tabloda yapılacak değişiklikler tetiklenen tabloda da
gerçekleşir. Örnek triggerler: 1- ILLER tablosuna yapılacak kayıt ekleme Y_ILLER tablosuna da eklensin.
create TRIGGER [dbo].[trg_il] ON [dbo].[ILLER] FOR INSERT AS SET NOCOUNT ON; BEGIN DECLARE @KODU numeric(4) SET @KODU = (SELECT IL_KODU FROM inserted) DECLARE @ADI nvarchar(30) SET @ADI = (SELECT IL_ADI FROM inserted) DECLARE @BOL numeric(4) SET @BOL = (SELECT BOLGESI FROM inserted)
insert into [dbo].[Y_ILLER](YIL_KODU,YIL_ADI,YBOLGESI) Values (@KODU,@ADI,@BOL); END;
2- ILLER tablosunda bir kayıt silindiğinde Y_ILLER tablosunda da aynı kayıt silinsin CREATE TRIGGER [trg_il_sil] ON [dbo].[ILLER]
AFTER DELETE
AS
SET NOCOUNT ON;
BEGIN
DECLARE @ILKO numeric(4)
SET @ILKO = (SELECT IL_KODU FROM deleted)
DECLARE @ILAD nvarchar(30)
Gülcay KORKMAZ Yazılım Uzmanı & BT Eğitmeni Web : http://www.egitimde-bilisim.com
16
SET @ILAD = (SELECT IL_ADI FROM deleted)
DECLARE @BOL numeric(4)
SET @BOL = (SELECT BOLGESI FROM deleted)
DELETE FROM [dbo].[Y_ILLER] WHERE YIL_KODU= @ILKO
END;
MSSQL SERVER’DA TÜRKÇE KARAKTER PROBLEMİNİ ÇÖZMEK
Özellikle dışarıdan alınan tablolarda zaman zaman Türkçe karakterlerinin
bozuk geldiği görülebilir. Bu karakterleri kalıcı olarak (veri tabanı üzerinde)
düzeltmek için aşağıdaki adımlar izlenmelidir.
1- İlgili veri tabanı üzerindeyken “new query” penceresi açılır ve aşağıdaki
function (alt program) past edilir. CREATE FUNCTION Turkceye
(@girdi NVARCHAR(MAX))
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @sonuc NVARCHAR(MAX)
SET @sonuc = @girdi
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ð', N'ğ');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ð', N'Ğ');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN, N'Ð', N'Ğ');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ý', N'ı');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Ý', N'İ');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'þ', N'ş');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Þ', N'Ş');
RETURN @sonuc COLLATE Turkish_CI_AS ;
END
Execute edilir ve veri tabanı refresh edilir
2- Veri tabanı içindeki nesnelerden, Programmability-Fuctions-Scalar Valued
Funtion seçeneği altında bu function ı görmeniz gerekiyor.
3- Son işlem olarak artık veri bozukluğu olan alanları bu function la update
edebilirsiniz. Örnek:
UPDATE SAYISTAY_YEVMIYE2
SET hes_ad=dbo.Turkceye(SAYISTAY_YEVMIYE2.hes_ad)