SQL Check Constraint Kullanımı

Tablolarda oluşturduğumuz kolonların herbirinin belirli datalar alması bekleriz bunun içinde genelde uygulamaların kullanıcı tarafında çeşitli validationlar kullanırız.Sql tarafındada çeşitli yöntemlerle istedğimiz doğru datayı almak için bazı yöntemler var bunlardan biride constraint’ler.Aşağıda constaint kullanımına bir örnek vereceğim.

Örnek olarak kullanıcı tablomuz olsun ve kolonlarda biri şifre kolonu olsun , girilen şifre uzunluğu ise bizim istediğimiz şekilde en az 5 ve en yüksek 10 karakterde olsun bu durumda aşağıdaki gibi contraint yazarak bunu çözebiliriz.

Alter Table tbl_Kullanicilar
Add Contraint chk_Sifre Check(len(Sifre)>=5 and len(Sifer)<=10)

Aşağıda görüldüğü gibi 3 haneli bir şifre girdiğimiz zaman hata alacağız.
constraint

Bunun dışında bazı durumlarda constraintleri devre dışı bırakmak isteyebiliriz,bunun için aşağıdaki komut satırı işimizi görecektir.

Alter Table tbl_Kullanicilar
Nocheck
Constraint chk_Sifre 

SQL Union ve Union All Kullanımı

Birden fazla select sorgusunun sonuçlarını birleştirmek istersek union ve union all komutlarını kullanırız.Union ve Union all komutları arasındaki tek fark ise union komutunun sorguda distinct gibi davranmasıdır yani tekrar eden satır varsa bunu tekile indirir , union all ise tüm datayı herhangi bir kontrolde bulunmaksızın birleştirir.Tabloları union komutlarıyla birleştirirken iki sorgudaki kolon sayılarının eşit olmasına dikkat etmeliyiz.

union

SQL Distinct Kullanımı

Sql de tekrarlanan dataları önlemek isterken distinct komutunu kullanırız.Kullanım şeklide gayet kolay select komutundan sonra unique olarak gelmesini istediğimiz kolonlardan önce distinct komutu yazılır.

Kullanım şekli

select distinct kolonadi1 from tabloadı

Örnek olarak adventureworks veritabanındaki person.adress tablosundaki şehirleri select komutuyla çekelim

Distinct1

Resimde sağ altta görüldüğü gibi toplam gelen kayıt sayısı 19614 ve bu datanın içinde birçok kez tekrarlanan şehirler var fakat biz adres tablosundaki şehirleri öğrenmek ve verinin tekrar etmesini istemiyoruz bu durumda aşağıdaki gibi distinct komutunu kullanarak istediğimiz sonuca ulaşabiliriz.

Distinct2

DML(Data Manipulation Language) Select,Insert,Update,Delete İşlemleri

Veritabanı programlarının veri işlemleri temel olarak 4 ifadeden oluşur.Bu işlemleri kısaca tanıyalım.

INSERT
Bir tabloya kayıt eklemek istediğimizde kullanırız.

Kullanım Şekli

insert into tablo_ismi (sutunadi1,sutunadi2,…) values(‘deger1′,’deger2′..)

SELECT

Kullanım Şekli

Select * from tablo_ismi

Select sutunadi1,sutunadi2 from tablo_ismi

UPDATE

Kullanım Şekli

Update tablo_ismi set sutunadi=deger where sart tanimlari

DELETE

Kullanım Şekli

Delete from tablo_ismi where sart tanimlari

SQL T-SQL ile Veritabanı ve Tablo oluşturma

Bu makalemizde t-sql sorgularıyla database oluşturmayı ve çeştli özelliklerini değiştirmeyi öğreneceğiz.

En basit haliyle aşağıdaki komt ile database’imizi oluşturabiliriz.

Use Master
Create database Deneme

Şimdi daha detaylı şekilde bir database oluşturalım.Öncellikle C:\ dizininde bir Databases adında bir dosya oluşturalım

Create database Deneme
on primary 
(
Name='Deneme_Data',
FileName='C:\Databases\Deneme_Data.mdf',
Size=21MB,
Maxsize=UNLIMITED,
Filegrowth=16MB
)

LOG ON
(
Name='Deneme_Log',
FileName='C:\Databases\Deneme_Log.mdf',
Size=2MB,
Maxsize=UNLIMITED,
Filegrowth=16MB
)

Şimdi burada kullandığımız terimleri açıklayalım

NAME:Veri dosyamızın adı.
FILENAME:Veri dosyamızın sistemdeki fiziksel adı.
SIZE:Veritabanı boyutunu 21Mb olarak belirliyoruz.
MAXSIZE:Veritabanı boyutunu sınırsız olarak belirtiyoruz.
FILEGROWTH:Veri tabanı genişlemesi gerektiğinide kapasitesini belirttiğimiz kadar 16Mb arttırcaktır.

Aşağıdaki procedure’ü kullanarak oluşturduğumuz database’in özellikleri görebiliriz.

sp_helpdb 'deneme'

sp_helpdb

Oluşturduğumuz nesneler üzerinde değişiklik yapmak istediğimizde alter işlemini kullanırız.

ALTER DATABASE Deneme
MODIFY FILE
(
	NAME = Deneme_Data,
	SIZE = 100MB
);

Şimdide bir tablo oluşturalım

USE Deneme
GO
CREATE TABLE IF NOT EXISTS tbl_Musteri(
	ID	INT	       NOT NULL,
	Ad	VARCHAR(20)  NOT NULL,
	Soyad	VARCHAR(20)  NOT NULL,
	Email	VARCHAR(320) NOT NULL
);

Alter ile tabloda değişiklik yapalım

ALTER TABLE tbl_Musteri
ADD
CreatedDate  DATETIME     NOT NULL DEFAULT GETDATE();

Internet Explorer Document Mode(Compatible)’u Otomatik değiştirme

Browserlardaki versiyon farkları herkesin başına iş açmıştır.Özellikle explorer’da versiyonlar arasında bir çok tutarsızlık mevcut.Yaptığımız bir tasarımın kullanıcı tarafında kullanılan browser’ın en yüksek versiyonunda çalışması için bir meta tag mevcut aşağıda bunu sizlerle paylaşıyorum.

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

Örneğin web sitemizin internet explorer 8 uyumluluğunda çalışmasını istiyorsak aşağıdaki kodu kullanabiliriz.

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

ASP.NET Code Behind javascript çalıştırma

.net projelerimizde bazı durumlarda codebehind’da javascript kodlarımızın tetiklenmesini isteriz , böyle bir durumla karşılaştığımızda aşağıda yazacağım örnek kod bloğu sayesinde istediğimiz javascript kodumuzu çalıştırabiliriz.

ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('Error.')</script>");

“Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine” hatası

.Net kullanarak herhangi bir OleDbConnection nesnesiyle bir veriye ulaşmak istediğimizde Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine hatası ile karşılaştığımızda yapmamız gereken şey bu adresten indirdiğimiz exe dosyasını bilgisayarımıza kurmak.