SQL SERVER NEDİR SQL Server genel olarak iki tip veritanını

advertisement
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
1
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
2
- 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
3
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
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
0)
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
Gülcay KORKMAZ
Yazılım Uzmanı & BT Eğitmeni
Web : http://www.egitimde-bilisim.com
4
:
:
:
:
:
:
:
:
:
:
:
:
Jul 17 2009
07/17/09
09.07.17
17/07/09
17.07.09
17-07-09
17 Jul 09
Jul 17, 09
16:43:05
Jul 17 2009
07-17-09
09/07/17
4:43PM
4:43:05:573PM
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
12)
13)
14)
20)
21)
22)
23)
24)
25)
100)
101)
102)
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
:
:
:
:
:
:
:
:
:
:
:
:
SELECT CONVERT(VARCHAR, GETDATE(), 103)
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
CONVERT(VARCHAR,
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
GETDATE(),
104)
105)
106)
107)
108)
109)
110)
111)
112)
113)
114)
120)
121)
126)
127)
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
--Sonuç
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
090717
17 Jul 2009 16:43:05:590
16:43:05:590
2009-07-17 16:43:05
2009-07-17 16:43:05.590
07/17/09 4:43:05 PM
2009-07-17
16:43:05
2009-07-17 16:43:05.590
Jul 17 2009 4:43PM
07/17/2009
2009.07.17
--Sonuç : 17/07/2009
17.07.2009
17-07-2009
17 Jul 2009
Jul 17, 2009
16:43:05
Jul 17 2009 4:43:05:607PM
07-17-2009
2009/07/17
20090717
17 Jul 2009 16:43:05:607
16:43:05:620
2009-07-17 16:43:05
2009-07-17 16:43:05.620
2009-07-17T16:43:05.620
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
5
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
6
Sql Server DateTime(Tarih Saat) Fonksiyonları
Fonksiyon Açıklama
GETDATE()
DATEDIFF()
DATEADD()
Sistemin o anki tarih ve saatini verir
ÖRNEK: SELECT GETDATE()
İki tarih arasındaki farkı gösterir
ÖRNEK: SELECT ADI,SOYADI,DATEDIFF(DAY,DOGUM_TARIHI,GETDATE()) FROM
KIMLIK
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
7
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
8
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
9
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
10
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
11
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
12
10Alı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)
123456-
İlgili veri tabanı altında “Database Diagrams” üzerinde sağ Mouse basılır
New Database Diagrams seçilir
İlişki kurulacak tablolar seçilir
1’den sonsuza (PK dan FK ya) sürüklenir
Ok tuşlanır ve save all seçeneği ile kayıt yapılır
İ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
13
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.
1234567-
View oluşturma
İlgili veri tabanı üzerindeyken view sekmesi açılır
View üzerinde Mouse sağ menüden “new view” seçilir
Gelen ileti kutusu kapatılır
Sql yazılır
Execute (çalıştırılır) edilir
Save edilirken bir view adı verilir
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
14
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
15
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)
Gülcay KORKMAZ
Yazılım Uzmanı & BT Eğitmeni
Web : http://www.egitimde-bilisim.com
16
Download