sql server server... · 2017-02-19 · sql server parasal türde veri saklamak için money ve...

16
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.

Upload: others

Post on 21-Feb-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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.

Page 2: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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

Page 3: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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));

Page 4: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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

Page 5: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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.

Page 6: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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.

Page 7: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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.

Page 8: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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.

Page 9: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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

Page 10: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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

Page 11: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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

Page 12: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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.

Page 13: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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)

Page 14: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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;

Page 15: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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)

Page 16: SQL Server SERVER... · 2017-02-19 · Sql Server parasal türde veri saklamak için money ve smallmoney tiplerini sunmaktadır. u veriler,virgülden sonra 4 basamağa kadar duyarlı

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)