Sql Server 26112009 Sunumu

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Sql Server 26112009 Sunumu as PDF for free.

More details

  • Words: 2,101
  • Pages: 32
SQL SERVER Hüseyin SORKUN

Veri Tabanı Kavramı • Veritabanı, bilgisayar terminolojisinde sistematik erişim imkanı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bir başka tanımı da, bir bilgisayarda sistematik şekilde saklanmış, programlarca istenebilecek veri yığınıdır.

Veritabanı Özellikleri • Bir veritabanını oluşturmak, saklamak, çoğaltmak, güncellemek ve yönetmek için kullanılan programlara Veritabanı Yönetim Sistemi (VTYS – Database Management System - DBMS) adı verilir. Veritabanında asıl önemli kavram, kayıt yığını ya da bilgi parçalarının tanımlanmasıdır. Bu tanıma Şema adı verilir. Şema veritabanında kullanılacak bilgi tanımlarının nasıl modelleneceğini gösterir. Buna Veri Modeli (Data Model) yapılan işleme de veri modelleme denir.

İlişkisel Veritabanı Özellikleri • Veriler Tabloda Saklanır. • Verilerin Güvenli ve Sistematik bir sistemde Saklamasını Sağlar. • Verileri bir bütünlük şeklinde saklar. • Birden Çok kullanıcının erişimini sağlar. • Veritabanı içerisinde bulunan tablolar arasında farklı özelliklere sahip ilişkiler oluşturarak veri bütünlüğünü sağlamakta ayrıca veri tekrarını önlemektedir.

• Bir veritabanı birçok tablo, sorgu, indeks, rapor gibi bileşenden oluşur. • Veriler temel olarak tablolarda saklanır ve tablolardaki veriler arasında bağlantılar kurulabilir. • bir tablodaki veriler arasında sıralama veya özel görünümler oluşturulabilir. • Veritabanı üzerindeki verilerin ve diğer bileşenlerin tümünü yedeklemek (backup) ve tekrar yükleyerek (restore) kullanmak mümkündür.

Sql Server • SQL Server en genel anlamıyla bir veritabanı programıdır. • SQL (Structured Query Language – Yapılandırılmış Sorgu Dili), veriler üzerinde silme, ekleme, sorgulama gibi işlemleri yapmak için kullanılan dildir. • SQL ile yalnızca veritabanı üzerinde işlem yapılabilir. SQL'e özgü cümleler kullanarak veritabanına kayıt eklenebilir, olan kayıtlar değiştirilebilir, silinebilir ve bu kayıtlardan listeler oluşturulabilir.

• SQL Serverde en temel özellik, tablo oluşturmak, bu tablonun içine verileri girip bunları istenilen şekilde sorgulamaktır. • SQL, üstüne inşaa edilen uygulamanın verilere daha hızlı erişmesini, raporlanmasını sağlayarak performansı en üst düzeye çıkaran bir veritabanı programıdır. • SQL Server ile hazırlanan tablolar başka bir programda (Excel, Access,...) hazırlanmış verilerle doldurulabilir (import) veya tablolardaki veriler başka bir programa uygun olarak saklanabilir (export).

Özet • • • • •

Verilerin Saklandığı Genel Yapıya Veritabanı Verilerin Saklandığı En basit Yapıya Tablo Sql Serverdaki Verileri Aktarmaya Export Dışardaki veriyi Sql’e Aktarmaya Import Bir Veritabanında Yedeklenmesine Backup

Sql Server Kullanım Şekilleri • Sql serverda Türkçe Krakter Kullanılmamalıdır. • Sql Server İsimlendirmeleri Altçizgi,krakter veya rakam kullanılmalıdır.

Er Modelleme •

Veritabanı içinde bulunan bütün tablo ve ilişkiler belirtilir. Veritabanının genel yapısı buradan kolaylıkla anlaşılabilir. Büyük sistemler için oldukça gereklidir. Bu sayede sisteme hakimiyet sağlanması daha kolaydır. Şema olduğu için herhangi bir VTYS'e özel değildir. Bu şema ile istenen VTYS için SQL kod üretilebilir.

Tablolar dikdörtgenle Tablonun sütunları elips İki tablo arasındaki ilişkinin sağlanması baklava dilimi şekliyle ifade edilmiştir.

Veri Normalizasyonu Normalizasyon, Veritabanlarında çok fazla sütun ve satırdan oluşan bir tabloları tekrarlardan temizlemek için daha az satır ve sütun içeren alt kümelerine ayrıştırma işlemidir. •

Veri karakterisliklerin (sütunların) belirlenmesini sağlar.



Veriler üzerinde daha hızlı işlem yapılmasını sağlar.



Gereksiz veri tekrarını önler.



Eğer bir ilişki belirli bir normal formda ise, zaten bazı problemlerin oluşması veri girişi sırasında engellenmiştir.



İVTYS ile VTYS arasındaki en önemli fark İVTYS’lerin normalizasyon kurallarını uygulamasıdır.



Veri normalizasyon kuralları tüm verileri atomik yapma (parçalanamaz en küçük veri haline getirme), her satıra sadece bir tane primary indeks atama gibi kurallardan oluşmaktadır.

Veri İlişkilendirmeleri • Bir tablo, kendisiyle ortak özellikteki bir sütuna göre diğer bir tabloyla ilişkilendirilir. •

Bir tablomuzun varchar(25) tipinde bir sütunu ancak diğer tablonun varchar(25) özelliğindeki sütunuyla bağlanabilir.

• İki tablonun ilişkilendirilmesi, bir tablonun bir sütunundaki herhangi bir özelliğini kullanarak diğer tabloda sorgulama, filtreleme ya da sıralama yapmamızı sağlar bu iş hayatında kullanıcıya birçok avantaj sağlamaktadır. • Bir tablonun başka bir tabloyla ilişkilendirilmesi için tabloda mutlaka bir adet primarykey(ilerde anlatılacaktır) özellikli sütunu bulunmalı.

Veritabanı Nesneleri • • • • • • • • • • • •

Veri Tabanı : Verilerin Fiziksel bir şekilde depolandığı sistemdir. Datatype: Verilerin Tipini Belirtir. Constraint: Bir sütüna girilecek olan verinin kısıtlamalarını ayarlar. İndexler : Verilerin Otomatik olarak sıralanmasını sağlar. Coloum : Tablonun herbir sütununa denir. Stored Procedure : Sql tablolarında hertürlü arama,sıralama.. Gibi işlemler yapılır. Tablo : Verilerin Saklandığı Yerdir. Record : Herbir satıra kayıt denir . Row : Tablodaki herbir kayıttır. Field : Herbir sütunlardaki özellikleri ifade eder. (Alan) Resultset : Bir sorgu sonucunda oluşan Anlık Kümeye denir. Trigger : Ekleme ,silme,güncelleme gibi olayların bir işlem gerçekleştiği anda otomatik olarak başlayan olayları ifade eder.

Özet • • • • • • • •

Sql server # işareti ile başlayamaz Er Modellemede Tablo Dikdörtgen şeklinde ifade edilir. Er modellemede primary key elips şeklinde altı çizgili Er modellemede iki tabloyu ilişkilendirmede Baklava dilimi şeklinde kullanırız. Alan bilgileri ile ilgili herbir satıra Record denir. Bir sütundaki bazı kısıtlamaları constraint ile yaparız. Tablo ilişkilerinde sınırsız tabloyu bağlayabiliriz. Tabloları ilişkilendirmek için ikisininde tiplerinin aynı olması gerekir.

Veri Türleri • • • • • • • • • • • • • • •

Char :8000 Bytelık krakterleri saklamak için kullanılır. Nvarchar : 8000 Byte’a kadar değişkenlik gösteren veriler için kullanılır. Nchar : 8000 kraktere kadar unicode sütun tanımlamalarda kullanılır. Bigint : Çok büyük tamsayıları tutmak için kullanılır. İnt : Sınırı -2,2 milyar arası ondalıklı sayı için kullanılır. Small int: -32000 ile 32000 arası ondalıklı sayılar için kullanılır. Tinyint : 0-255 arası sayılar için kullanılır. Date Time : Tarih belirten sütunlar için kullanılır. 01.01.1900-06.06.2079 SmallDatetime : 01.01.1753-31.12.9999 arasında Money : -922,922 milyar arası para birimini belirtir. Smal Money : 214000,-214000 Binary n: 8000 Byte değerinde binary değer tutar. VarBinary : 8000 Byte Değerinde değişken şeklindeki değerleri tutar. Text : Metin yada resim için kullanılır Ntext : Text ile aynı özellikte ancak unicode formatındadır.

Veri Bütünlüğü •

Veri bütünlüğü veri tabanımızın tutarlılığı açısından oldukça önemlidir. SQL Server tarafından verilerimizin denetlenmesi ve tutarlılığının sağlanması işlemine veribütünlüğü denir. • Programsal ve tanımsal olmak üzere iki tür veri bütünlüğü vardır. •

Programsal veri bütünlüğü trigger ve stored procedure kullanılarak sağlanır. • Tanımsal veri bütünlüğü ise veri girişi sırasında denetleme yapan kısıtlayıcı kurallardan oluşur. •

SQL Server veri bütünlüğü Constraint’ler yardımıyla yapmaktadır. Zaten SQL Server’da yapılan bir uygulamanın temelinde bu Constraint(kısıtlayıcı)’ler bulunmaktadır. Bunlar primary key, unique key, default key, foreign key ve check constraint olmak üzere toplam 5 çeşittir.

CONSTRAİNT'LER (KISITLAYICILAR) •

Primary key: Tablomuzdaki sütuna daha önce girilmemiş değerleri girmeye zorlamak için oluşturulmuştur.Primary key atanmış bir sütuna aynı değeri ikinci kez giremeyiz. Ayrıca primary keyli bir sütuna mutlaka bir değer girmeliyiz NULL olarak bırakamayız.



Unique key: Unique key olarak ayarlanmış bir sütuna aynı değer ikinci kez girilemez ancak unique key olarak ayarlanmış bir sütun, bir defaya mahsus olmak üzere NULL olarak geçilebilir. Yalnız ikinci defa NULL deger verilemez. Check constraint: Bir sütuna ait değeri belirli formata uygun şekilde girmemiz için oluşturulan bir kısıtlayıcıdır. Mesela bir sütuna bir text ifadesi girmek istiyoruz ama tex’in uzunluğunun 20 karakterden fazla olmamasını istiyoruz. Bu durumda check constraint kullanılır. Default Constraint: Bir sutüna varsayılan bir değer atama işlemi yapar. Bir satırın bir sütununa değer girilmediği bir durumda daha önceden belirlediğimiz bir default değerin, o satıra otomatik olarak aktarılmasını sağlar. Foreign Key: Bir tablonun bir sütununa ait değerlerin başka bir tablonun belli sütunundan gelmesini denetler. Yani; Foreign Key tablolar arasındaki veri bütünlüğünü sağladığı gibi ilişkili tabloları da gösterir.







Özet • Sütuna sadece 0 ve 1 değeri girmek için binary(n) kullanılır. • Geniş sayılı verileri tutmaya bigint kullanılır. • Belirli bir sınırda krakter girmesini ayarlamak için checkconstrain kullanılır. • Verigirişini aynı girişten olmasını engellemek ve boş geçmesini engellemek için primary key kullanılır. • Verigirişi aynı girişten olmasını engellemek ve birdefaya mahsus engellemek için kullanılır. • Bir sütundaki verileri sıralamak için clustredindex kullanılır.

Temel Sql Komutları • • • •

SELECT ifadesi : Tablolarda bulunan bilgileri elde etmenin en sık kullanılan biçimidir. Select ifadesi diğer ek ifadeler ile birlikte veriyi filtrelemeyi yada daha anlamlı kılmayı sağlar. (seçme) Where (Koşul) İfadesi : Select cümlelerinde veriyi çeşitli koşullar sonucunda filtrelemek için kullanılır. SELECT * FROM Tablo_Adi WHERE Koşul select urun, ucret, ucret*0. 8 as [KDV’li fiyatı] from fiyat



INSERT Komutu Prototipi: "INSERT INTO Tablo (alan1,alan2,alan3, ...) VALUES (alan1, alan2, alan3, ...)"



Açıklama: Insert komutu ile tablolarımıza kayıt ekleyebiliriz.



UPDATE Komutu Prototipi: "UPDATE Tablo Set alan1=′yeni_deger′, alan2=′yeni_deger′, alan3=′yeni_deger′, ... Where -ŞART- " Açıklama: Update komutu ile mevcut kayıtlarımız üzerinde değişiklik yapabiliriz.



DELETE Komutu Prototipi: "DELETE FROM tablo Where -ŞART-" Açıklama: Delete komutu ile kayıtlarımız içerisinden belirtilen şarta uygun kaydı silebiliriz

Aralık Sorgulama (Where ) • •

Örnekler : select * from tblreyon where reyonkod>300000



select * from deneme where ad=‘mehmet’



Select * from tblreyon where reyonkod>300000 and reyonkod<350000 and’in kullanımda iki şartında sağlanması şarttır. • select * from tblreyon where reyonkod between 300000 and 400000 •

Select * from tblreyon where reyonaciklama is null select * from tblreyon where reyonaciklama is not null

Sıralama (Order By) • Kullanımı : Select * From tablo_adi Order By Tablo_Adi • Desc :sıralamanın büyükten küçüğe • Asc : Küçükten büyüğe • select * from stok order by miktar desc select * from tblreyon where reyonkod between 100000 and 200000 order by reyonad desc tblreyon adlı tabloya git reyonkod sütunu 100000 ile 200000 arasında olan kayıtların tamamını al ve reyonad sütununa göre sondan başa doğru sırala.

Krakter Karşılaştırma •

select top 5 * from tblreyon where reyonkod>200000



SQL ifadesinde sadece 5 kayıt listelenir. top n deyimi select ifadesinden hemen sonra sütun adlarından önce yazılarak maksimum kaç adet listeleme yapılacağını belirler.



select * from stokgirdi where firma=‘vestel’ sorgu ifadesi bizim için yeterli olacaktır. Firma sütunu text tipinde değer aldığı için vestel tek tırnak (‘ ’)içinde yazılmıştır. Aynı sonucu veren diğer bir sorgu işlemi de select * from stokgirdi where firma like ‘vestel’



%

bulunduğu noktadaki birden fazla karakteri ifade eder



_

bulunduğu yerdeki sadece bir karakteri ifade eder



[A-Z] A dan Z ye kadar olan herhangi bir karakteri ifade eder



[^A-H] A ile H arasında olmayan herhangi bir karakter anlamına gelir.



Son harfleri ko ile biten kayıtları sıralamak için select * from stokgirdi where firma like ‘%ko’



SQL deyimi kullanılablir. ‘%ko’ nun anlamı en son harf o bir önceki harf k ve ondan önceki harfler ne olursa olsun demektir. Hatırlanacağı gibi %, herhangi bir string grubu olabilir anlamına geliyordu.

Krakter Karşılaştırma • İkinci harften itibaren est kelimesi olan kayıtları listeleyelim. select * from stokgirdi where firma like '_est %‘ • SQL deyimi kullanılabilir. ‘_est%’ in anlamı ilk harfin bir önemi yok ancak sonraki harfler sırasıyla est olacak ve ondan sonraki harflerin de bir önemi yok demektir. Hatırlanacağı gibi _ ifadesi sadece bir karakteri temsil eder ve bu karakterin ne olduğu önemli değildir

Krakter Karşılaştırma • İlk harfi a ile k arasında olmayan ikinci harfi ise a ile t arasında olan kayıtları listeleyelim. select * from stokgirdi where firma like '[^a-k] [a-t]%‘ • SQL deyimi istediğimiz sonucu vermektedir. '[^a-k][a-t]%‘ nın anlamı ilk harfi a-k arasında olmayacak, sonraki harfi a-t arasında herhangi bir harf olacak, sonraki harflerin ise bir önemi yok demektir.

String Fonksiyonları • • • • • • • • • • •

CHAR CHARINDEX LEFT LEN LOWER LTRIM REVERSE SUBSTRING REPLACE RIGHT RTRIM

• Char :Bir karakter ifadenin en soldaki değerinin ASCII kodunu döndürür. Kullanımı : ASCII ( karakter ifade) • CHARINDEX Bir karakter dize içinde belirtilen bir ifadenin (karakterin) başlangıç konumunu döndürür. Kullanımı: CHARINDEX ( ifade1, ifade2[ , başlangıç konumu] ) İfade1: aranacak karakterleri belirtir. İfade2: İfade1'deki karakterlerin aranacağı karakterleri belirtir. Başlangıç konumu ise aramanın başlanacağı konumu belirtir.

• LEFTBir karakter dizesinin sol taraftan belirtilen sayı kadar keser. Kullanımı: LEFT ( karakter dize, tarmsayı) • LEN Dize verinin uzunluğunu döndürür. Kullanımı: LEN ( karakter dize) Lower(metin): metin küçük harfe çevrilir. • LTRIM Önündeki boşlukları siler. Kullanımı: LTRIM ( karakter dize)

• Reverse(metin): metin karakterlerini ters sırada yazar. • SUBSTRING Bir karakter dizesinin içinden belli karakterleri seçer. Kullanımı:SUBSTRING ( karakter dize, başlangıç, uzunluk) Replace(metin, bul, değiştir): metin içinde bul ile verdiğimiz string yerine değiştir ile verdiğimiz string’i yazar. • RTRIM Karakter dizesinin arkasındaki boşlukları kaldırır. Kullanımı:RTRIM ( karakter dize)

• RIGHT Belirtilen dizenin sağ tarafından keser. Kullanımı: RIGHT ( karakter dizesi, tamsayı) • RTRIM Karakter dizesinin arkasındaki boşlukları kaldırır. Kullanımı:RTRIM ( karakter dize)

• Tarih Sorgulamaları : select * from tarihler where dogumtarihi>10/10/1980 , • İN ve NOT İN FONKSİYONLARI Select * from tblurun where markakod=1 or markakod=2 or markakod=3 SQL ifadesi, markakodu 1, 2 ya da 3 olanların listesini verir. Ancak aynı sonucu şu şekilde de elde edebiliriz. Select * from tblurun where markakod in(1,2,3) buradaki in deyimi anlamı markakodu parantez ile belirtilen kümenin elemanlarına eşit olup olmadığına bakar. Yani 1’e , 2’ye veya 3’e eşit olanlar anlamına gelmektedir.

Özet • Sorgulama Bölümünü New Query ile açarız . • Tüm verileri çekmek için select*from ifadesini kullanırız. • %ki son harleri ki ile biten ifadeyi gösterir • _ki birinci harf önemli değil ikinci ve üçüncü harfi ki olanları gösterir. • Order by sıralamak için kullanılır. • Sum toplam için kullanılır. •

Teşekkürler.

Related Documents

Sql Server
November 2019 28
Sql Server
November 2019 18
Sql Server
May 2020 11
Sql Server
November 2019 35
Sql Server
May 2020 13