sqltr etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
sqltr etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

4 Aralık 2016 Pazar

68. SQL AUTO INCREMENT Kullanımı

  • Bazı veritabanı işlemlerimizde her bir kaydın eşssiz(unique) bir değeri olmasını isteyebilir, ilerideki işlemlerde bu değer üzerinden datalarımıza erişmek isteyebiliriz. Bu gibi durumlarda tablolarımızda bir kolonu sayı tipinde yapıp bir kural çerçevesinde (örneğin her yeni kayıt ekleme işleminde 1 arttır gibi) değiştirerek bunu sağlayabiliriz.
  • Sadece sayılarda kullanılan bu Auto-Increment özelliği ile değerimizin otomatik artmasını sağlayarak benzersiz bir değere atamış oluruz.
Örnek;

CREATE TABLE  Meyveler
(
id int IDENTITY(1,1) PRIMARY KEY,
adi varchar(20),
renk varchar(10),
tur varchar(20)
)

  • MsSQL de otomatik sayı arttırım IDENTITY(value1,value2) özelliği ile yapılmaktadır.
  • value1 başlangıç değerini belirtir.
  • value2 ise artış miktarını göstermektedir.
  • Yukardaki örneğimizde tablodaki id alanı 1 den başlayacak ve birer birer artacak şekilde insert edecek. Örneğin id alanımız 1000den başlasın ve sadece çift sayılar tutsun istiyorsak şu şekilde tanımlamalıyız: IDENTITY(1000,2)

67. SQL REPLACE Fonksiyonu Kullanımı

  • REPLACE fonksiyonu ile istediğimiz bir metin içerisinde istediğimiz bir metini başka bir metinle ile değiştirebiliriz.
  • Kendi tablomuzda bulunan veriler üzerinde de bu işlemi uygulayabilir sonuçları istediğimiz kolonda gösterebiliriz.
  • Aşağıdaki örnekleri inceleyebiliriz.


Söz Dizimi
REPLACE (Ana_Metin, Ana_Metin_İçinde_Aranan_Değer,Değiştirilecek_Değer)



21 Kasım 2016 Pazartesi

65. SQL CONCAT Kullanımı

  • SQL CONCAT fonksiyonu kısaca alanları birleştirmek için kullanılır.
  • SELECT cümleciklerimizde direkt metinleri birleştirebileceğimiz gibi tablomuzdaki farklı alanları da istediğimiz sıra veya ek metinlerle birleştirip yeni bir kolonda gösterebiliriz.
  • Aşağıdaki örneklerle pekiştirelim...
Not:Aynı şekilde tablomuzda alanları da birleştirebiliriz.

5 Kasım 2016 Cumartesi

2. SQL Server 2012 ve Yeni Analitik Fonksiyonlar - LAG() Fonksiyonu

  • LAG() fonksiyonu 2012 ile gelen 8 yeni analitik fonksiyondan biridir.
  • Bu fonksiyon extra bir join yapmadan bir önceki satırdaki verileri mevcut satırda işlememize imkan verir. LEAD() fonksiyonu mantığı ile çalışır sadece terse işlemektedir.
Daha iyi anlamak için aşağıdaki örneklerimizi inceleyebiliriz.

Kullanımı;

LAG( scalar_expression [ ,offset ] , [ default ] )
    OVER ( [ partition_by_clause ] order_by_clause )


Örnek Veri tabanımız;


Örnek 1;

Açıklama 1;
İlk örneğimizde en basit anlamda LAG() fonksiyonunun kullanımını gördük. Mevcut satırımızda bir önceki satırda istediğimiz değerini gösteriyoruz. Eğer değer yok ise NULL olarak gözükmekte.

Örnek 2;

   Açıklama 2;
Bu örneğimizde ufak bir değer ataması yaptık. Bir önceki satırdaki Value değişkeni ile mevcut satırdaki Value değerini birbirinden çıkarıyoruz. Bunun gibi satır kontrollerini farklı değerler ve satırlar üzerinde de yapabiliriz. Böylece elimizdeki sorgudaki istediğimiz alanları extra join işlemi yapmadan karşılaştırabiliriz.

Örnek 3;
   Açıklama 3;
Bu örneğimizde kaç satır önceki değerler ile karşılaştırma yapıp mevcut satırda kullanacağımızı gösterdik. Bu değeri daha da arttırabilirsiniz. Böylece mevcut satırda istediğiniz n. satır önceki değerleri çağırıp istediğiniz gibi kullanabilirsiniz. 3 satır önceki değer yok ise NULL gelmekte.

Örnek 4;

   Açıklama 4;
Bu örneğimizde bir önceki kayıt eğer yok ise LAG() fonksiyonu getiremediği için NULL ataması yapıyordu. Bu tarz durumlarda NULL ise hangi değeri atayacağımız belirledik. Örneğimizde de NULL değerlere 0.00 ataması yapıldı.

Örnek 5;
   Açıklama 5;
Son örneğimizde ise dikkat ederseniz PARTITION kullandık. Böylece hem hızlı hem performanslı olan bu yapıda istediğimiz LAG() işlemini hangi alan üzerinden yapacağımız belirtiyoruz. Tabi bu durumda NULL değerlerimiz bir hayli fazla olmakta. Çünkü partition yaptığımız Name değerinde satırların sayısı az.

1. SQL Server 2012 ve Yeni Analitik Fonksiyonlar - LEAD() Fonksiyonu

  • LEAD() fonksiyonu 2012 ile gelen 8 yeni analitik fonksiyondan biridir.
  • Bu fonksiyon extra bir join yapmadan bir sonraki satırdaki verileri mevcut satırda işlememize imkan verir. İlk defa duyan için gerçekten açıklaması biraz zor. Örnek vermek gerekirse 2 satırlı bir sorgumuzda değerlerle 2. satırda bulunan herhangi bir kolonun değerini kıyaslayabiliriz.
Daha iyi anlamak için aşağıdaki örneklerimizi inceleyebiliriz.

Kullanımı;

LEAD ( scalar_expression [ ,offset ] , [ default ] )
    OVER ( [ partition_by_clause ] order_by_clause )

Not: Dikkat etmemiz gereken ifade alanı (scalar_expression) olarak yazdığımız kısım tek değer dönmelidir.


Örnek Veri tabanımız;



Örnek 1;


Açıklama 1;
İlk örneğimizde en basit anlamda LEAD() fonksiyonunun kullanımını gördük. Mevcut satırımızda bir sonraki satırın istediğimiz değerini gösteriyoruz.

Örnek 2;

   Açıklama 2;
Bu örneğimizde örnek bir atama yaptık. Bir sonraki satırdaki Value değişkeni ile mevcut satırdaki Value değerini birbirinden çıkarıyoruz. Bunun gibi satır kontrollerini farklı değerler ve satırlar üzerinde de yapabiliriz.

Örnek 3;

   Açıklama 3;
Bu örneğimizde kaç satır sonraki değerler ile karşılaştırma yapıp mevcut satırda kullanacağımızı gösterdik. Bu değeri daha da arttırabilirsiniz. Böylece mevcut satırda istediğiniz n. satırın değerlerini çağırıp istediğiniz gibi kullanabilirsiniz.

Örnek 4;

   Açıklama 4;
Bu örneğimizde bir sonraki kayıt eğer yok ise LEAD() fonksiyonu getiremediği için NULL ataması yapıyordu. Bu tarz durumlarda NULL ise hangi değeri atayacağımız belirledik. Örneğimizde de NULL değerlere 0.00 ataması yapıldı.

Örnek 5;
   Açıklama 5;
Son örneğimizde ise dikkat ederseniz PARTITION kullandık. Böylece hem hızlı hem performanslı olan bu yapıda istediğimiz LEAD() işlemini hangi alan üzerinden yapacağımız belirtiyoruz. Tabi bu durumda NULL değerlerimiz bir hayli fazla olmakta.

11 Mayıs 2014 Pazar

63- SQL Constraints(Kısıtlayıcı) Türlerin Kullanımı

  • Veritabanımızda bulunan verilere mantıksal kısıtlamalar getirmek için kullandığımız bazı türler vardır.
  • Veri modelinde bir genelleme, bütünlük sağlamak açısından önemlidir.
  • Kısıtılamalarımızı tablomuzu create ederken tanımlarız.
  • Tanımlama aşamasında Null olup olmayacağı başka bir tabloyla ilişkisi olup olmadı vs. gibi tablodaki alanla ilgili spesifik sütün tanımlamaları yaparız.
Constraints Types 

Primary Key Constraint
Birincil anahtar kısıtlayıcı anlamındadır. Her girilen değerin farklı olması demektir. Aynı değerden ilgili sütuna 1 kez girebiliriz.. Her tablonun en fazla 1 adet Primary Key Constraint’i olabilir.
  
Unique Constraint
Tekil alan kısıtlayıcı anlamındadır. Birincil anahtar olan ve tablodaki diğer alanlar içinde aynı içeriğe sahip verilerin olmaması için Unique Constraint tanımlanır. Hesap No primary key ve Sehir No. Unique şeklinde bir tanımlama Unique Constraint’e bir örnektir.

Foreign Key Constraint
Yabancıl anahtar kısıtlayıcı anlamındadır. Bir tablodaki bir sütuna ait verilerin başka bir tablonun belirli bir sütunundan gelmesini denetler.Sadece bağladığımız sütundaki değerleri içerebilir.

Default Constraint
Varsayılan kısıtlayıcı anlamındadır. Tablodaki herhangi bir alan için girilmesi gereken bir değerin atanmasıdır. INSERT komutu için geçerlidir. Örneğin, müşteri tablosunda yeni bir kayıt ekleyeceğimiz zaman o alana default ülke bilgisi için eklenecek değer 'Türkiye' olabilir.

Check Constraint
Kontrol kısıtlayıcı anlamındadır. İstedğimiz formata göre verilerin girilmesini sağlar. Örneğin, Hesap No alanına 7 karakterin girilmesi Check Constraint ile sağlayabiliriz.

Kullanımı;

CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);

61-Foreign Key Kullanımı

  • Foreign key öncelikle başka bir tablo ile tablomuzu ilişkilendirmeye yarar.
  • Ayrıca kendi tablomuzdaki bu alan ilişkilendirdiğimiz tablodaki alandaki değerler olabilir.
  • Yani foreign key ile ilişkilendirdiğimiz her sütun ilgili tablodaki sütunda bulunan değerler ile kısıtlanmış olur.
  • Foreign key olan sütun null olabiliyorsa eşleşmeye bakılmaz.
Foreign key tanımlamak için, tablomuzdaki FK olacak sütunu yazdıktan sonra REFERENCES yazıp bağlamak istedğimiz tablounun adını ve parantez içindede ilgili sütunu yazarız.Aşağıdaki gibi;

CREATE TABLE Musteri
(MusteriNo int NOT NULL PRIMARY KEY,
IlNo int NOT NULL REFERENCES Il(IlNo)

  • Il tablosu foreign key ile bağladığımız tablo.Böylece müşteri tablosunda bulunan her ılNo alanı Il tablosundakilerden biri olmaz zorunda. 
  • Birden fazla foreign key de kullanabiliriz.

23 Kasım 2012 Cuma

56. BREAK Komutunun Kullanımı

  • İstenilen şart yerine getirildiğinde döngüden çıkmak için BREAK komutu kullanılır.
  • Program çalışmasına WHİLE 'ın END satırından sonra devam eder.
  • BREAK komutu performans açısında da önemlidir. 
  • Gereksiz yeri elimizdeki bütün verileri kontrol etmemizi engeller. İstediğimiz dataya ulaştığımız zaman diğerlerini incelemeden döngüden veya listeden çıkmamızı sağlar.
ÖRNEK:
DECLARE @Sayac INT
SET @Sayac=0
WHILE (@Sayac<10)
BEGIN
    SELECT @Sayac=@Sayac+1
    IF(@Sayac*@Sayac>9)
        BEGIN
            PRINT 'Sayı 9 değerini geçti.'
            BREAK
        END
END
PRINT @Sayac

Not: Bu yapıda BEGIN..END lerin kullanımına dikkat edin. T-SQL de bunları düzgün kullanmak önemlidir.

Ders 57' ye geçebilirsiniz.

6 Eylül 2012 Perşembe

50. PRINT Kullanımı

  • Değişkenlerin değerlerini, dönen hataları vb. diğer ihtiyaç duyulan sonuçların direk ekranda gisterilmesinde PRINT Komutu kullanılır.
  • Özellikle Debug işlemlerinde ihtiyaç duyulur.
Söz Dizimi: PRINT 'sqltr.blogspot.com'


Ders 51' e geçebilirsiniz.