Etiket Arşivi [ SQL Server ] - Sayfa 1 / 1

  1. T-Sql ‘ de veri tipleri

    21/03/2010 09:46 |SQL Server |

    Merhaba arkadaşlar bu yazımda sizler ile birlikte sql veri tiplerini incelemeye çalışıyor olacağız.

    Öncelik ile sql veri tipler 5 temel başlık altında sıralana bilir bunlar;

    1. Sayısal

    2. Metinsel

    3. Tarih – Zaman

    4. İkili veri tipler

    5. Diğerleri

    Yukarıda sözü geçen kategorileri şimdi incelemeye başlayalım.

    Sayısal veri tipleri

    Genel olarak matematiksel ve karşılaştırma gibi işlemlerde kullanılacak veri tipleridir. Sayısal veri tipleri ondalık ve tamsayı olarak ikiye ayrılmaktadır.

    1. Tam sayı veri türleri

    Ondalık ve rasyonel değer içermeye değer tipleridir.

    Bit: veritabanında fiziksel olarak 1 baytlık yer kaplayan ve 1 yâda 0 değer alabilen değer tipleridir.

    TINYINT: Veritabanın da 1 baytlık yer kaplayan ve 0 ile 255 arasında değer depolayabilen değer türüdür.

    SMALLINT: Veritabanın da 2 baytlık yer kaplayan, 32.768 ile 32.767 aralığında değer alabilen veri tipidir.

    INT: Veritabanın da fiziksel olarak 4 baytlık yer kaplayan ve -2.147.483.648 ile 2.147.483.647 arasında değer alabilen veri türüdür.

    BIGINT: Veritabanında fiziksel olarak 8 baytlık yer kaplaya bile ve -9.223.372.036.854.775.808 ile 9.223.372.036.854.807 aralığında veri depolayabile veri türüdür.

    2. Ondalık veri türleri

    Ondalık veri tipleri depolaya bilen veri tipleridir. Sql de ondalık veri tipleri, rasyonel ve yaklaşık değer tipleri olarak ikiye ayrılır.

    Kesir Ondalık Sayı veri tipleri

    SMALLMONEY: veritabanında fiziksel olarak 4 baytlık veri tipi depolayabilir ve -214.748.3648 ile 214.748.3647 arasında veri depolayabilen veri tipidir.

    MONEY : veritabanın da fiziksel olarak 8 baytlık yer kaplayan ve 922.337.203.685.477.5808 ile 922.337.203.685.477.5807 arasında veri depolayabilen veri tipidir.

    DECIMAL : bu veri tapi özel bir tip olup iki parametre almaktadır ve basamak sayısında göre yer kaplayan veri türüdür.

    NUMERİC :decimal veri tipi benzeyen bir veri türüdür .Aynı şekilde kullanılır.

    Yaklaşık Ondalık sayı veri tipleri

    Bu veri tipleri bilimsel gösterimleri ile depolanabilen ve diğer veri tiplerine göre depolanması çok hassa olan veri tipleridir.

    FLOAT: Veritabanında 4 ile 8 bayt arasında yer kaplayabilen veri tipidir.

    REAL : Veritabanında fiziksel olarak 4 baytlık yer kaplayan veri türüdür.

    Metinsel veri tipleri

    Metinsel veri tipleri karakter, sembol, rakamları ve bunların birleşimlerini depolamak için kullanılan veri tipleridir.

    CHAR: Bu veri tipi girilen her karaktere karşılık olara 1 baytlık yer kaplayan en fazla 800 karakter kadar veri saklayabile veri tipidir. Örnek Char(7) şeklinde de tanımlanmış olan bir alana ‘ibrahim’ değeri girilse de ‘esra’ girilse de 7 baytlık yer kaplar.

    VARCHAR: Bu veritabanı char veri tipin de olduğu gibi her karakter 1 baytlık yer kaplar ama varchar(7) şeklinde yaptığımız bir tanımlamada ‘ibrahim’ dediğimiz de 7 baytlık değer kaplar ve ‘esra ’ dediğimiz de ise 4 baytlık yer kaplar.

    TEXT: 8000 karakter den fazla değer depolayabilen veri tipidir.

    NCHAR: BU VERİ TİPİ char veri tipine benzer ancak UNICODE karakter setini kullanılır bu nedenle her karakter 1 bayt yerine 2 bayt yer tutar. En fazla 4000 karakter depolayabilir.

    NVARCHAR: Bu veri tipi UNICODE metinde değerlerini depolamak için kullanılır ve en fazla 4000 karakter depolayabilir.

    NTEXT: bu veri tipi 4000 karakterde daha fazla değer alabilir ve UNICODE metin saklayabilir.

    Tarih – Zaman veri tipleri

    Sql sunucu da tarih ve zaman bilgilerini tutmak amacıyla kullanılabilen veri türleridir ve smalldatetime ve datetime veri tipi olarak iki şekilde bulunmaktadır.

    SMALLDATETİME: bu veri tipi fiziksel olarak 4 baytlık yer kaplar ve 1 Ocak 1990 ile 6 Haziran 2079 arasında değer almaktadır.

    DATETİME: bu veri tipide ayı şekilde 4 baytlık yer tutar ve 1 Ocak 1753 ile 31 Aralık 9999 arasında değer alabile veri türüdür.

    İkili (Binary) veri tipleri

    Değerleri veritabanına binay şeklinde veri depola amacıyla bulanılabile veri türüdür.

    BINARY: bu veri tipi 8000 bayta kadar değer alabilen veri tipidir.

    VARBINARY:8000 bayta kadar değişken uzunlukta değer depolayabilen değişken veri tipidir.

    IMAGE: Bu veri tipi 2GB ‘ ta kadar veri saklayan binary veri türüdür.

    Diğer veri tipleri

    Yukarıda bahsedilen veri tiplerinin dışında 6 adet daha veri tipi bulunmaktadır şimdi bu veri tipleri inceleyelim.

    TABLE: Sanal bir tablo gibi çalışan bir veri tipidir.

    TIMESTAMP: İçerisinde bulunduğu veri tanın işlem takip sistemi gibi veri tiplerini depolayabile veri türüdür.

    UNQUEEIDEBTIFIER: 16 baytlık GUID değerleri depolayabilen ve genellik ile eşsiz değerler bulur.

    XML: Bu veri tipi Sql Server 2005 ile birlikte gelmiştir ve xml verilerini depolamak amacıyla kullanılan bir veri tipidir.

    SQL_VARIANT: farklı bir veri türüdür ve Text,nText,image,mestamp ve sql_variant veri tipleri dışında tüm veri tiplerini depolayabilen veri türüdür.

    CURSOR: Bir sonuç kümesine satır veya hüçre düzeyinde erişebilmemizi sağlayabilen veri tipidir.

    Bu yazımızda burada sona ermiştir yarlı olası dileği ile herkese kolay gelisn.

    Kaynak:

    Pusula yayınları SQL Server 2005

    footer
  2. MS SQL Server ‘ da basit bir tetikleyici nasıl yapabiliriz?

    21/03/2010 09:37 |SQL Server |

    Merhaba arkadaşlar bu yazımda belirlene bir tabloda yapılan bir değişikliği aynı anda diğer tablolarda nasıl değiştire bilirim sorunsu cevabı niteliğinde bir uygulama yazmaya çalışacağım.

    Şimdi tetikleyiciler hakkında kısa bir şekilde bilgilenelim; şunu bilmez gerekir iki çeşit tetikleyici vardır.

    1.      Database Triggers: bu tetikleyici çeşidi sunucu da yapılan değişiklikler için kullanır ve Server Objects seklemsin altında bulunu.

    2.      Tablo Tirgger: bu tetikleyici bizimim konumuz olan tetikleyici çeşit tidir.  Tablo da yapılan değişikliklere bize yansıtan tetikleyicidir ve Tablo nesnesin altında bulunur.

    Gelelim örneklerimiz yapmaya öncelik ile SampleDB isimli bir veritabanı oluşurun sonra aşağıdaki Script koduna benzer bir tablo oluşturunuz.

    CREATE TABLE [dbo].[Personel](  
    [Id] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
    [FName] [varchar](50) NULL,
    [LName] [varchar](50) NULL, 
     )

     

     Bu tabloda yapılan işlemleri görmek içinde bir log tablosu oluşturalım

    CREATE TABLE [dbo].[Logs](  
    [Id] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
         
    [Durum] [varchar](50) NULL,
    )

     

    Şimdi asıl işlemlerimize gelim ve personel tablosuna bir kayıt eklendiğinde çalışan bir tetikleyici yazalım.

    CREATE TRIGGER trg_KayitEkleme  
        
    ON  Personel -- hangi tabloda yapalan degisikligi denetliyecekse bura tanımlıyoruz
      
        
    AFTER INSERT -- trigger turunu burada belirtiyoruz
    AS
    BEGIN 
    insert into logs(durum) values('kayit Eklendi') -- calısıcak olan sql kodunu buraya yazıyoruz

    END

     

    Yukarıdaki Script kodunu çalıştırdığız da ve personel tablosuna kayıt girildiğinde log tablosuna kayıt eklendi mesaj eklenecektir. Bu yaptığımız tetikleyici de yapacağınız tetikleyicilere temel düşüncesiyle herkese kolay gelsin.

    footer