SQL Server Check Constraint Kullanımı

Blog Detay

SQL Server Check Constraint Kullanımı
SQL Server Check Constraint Kullanımı

SQL Server Check Constraint Kullanımı

<h3><strong>SQL Server Check Constraint </strong>Bir kolona eklediğimiz verilerin belirlediğimiz koşullara karşı kontrol etmemiz i&ccedil;in kullanılır.&nbsp;<br /> Bir kolon i&ccedil;in birden fazla Check Constraint tanımlanabilir.&nbsp;</h3> <p>&Ouml;rneğin; Kullanıcılar tablomuz var, veri girişi yaparken şifre kolonumuza en az 5 en fazla 15 karakterli bir değer girsin .</p> <p>&Ouml;rneğin; Kullanıcılar tablomuz var, veri girişi yaparken Telefon kolonumuza en az 11&nbsp;ve 0XXXXXXXXXX şablonu ile kayıt girebilrsin gibi...</p> <blockquote> <p>--&Ouml;rnek tablo oluşturuyoruz<br /> CREATE TABLE TestKullanicilar&nbsp;<br /> ( KullaniciID INT PRIMARY KEY NOT NULL,&nbsp;<br /> KullaniciAd VARCHAR(20) NOT NULL,&nbsp;<br /> Sifre &nbsp;VARCHAR(15) NOT NULL,&nbsp;<br /> Email &nbsp;VARCHAR(40) NOT NULL,&nbsp;<br /> Telefon &nbsp;VARCHAR(11) NOT NULL&nbsp;<br /> );&nbsp;</p> <p><br /> --Girilen Sifre değeri 5 5 karakterden uzun 15 karakterden kısa olmalıdır<br /> ALTER TABLE TestKullanicilar ADD CONSTRAINT CHK_SifreUzunluk CHECK(LEN(Sifre) &gt;= 5 AND LEN(Sifre) &lt;= 15)</p> <p>--Girilen mail değerinde &#39;.com&#39; ya da &#39;.net&#39; alan adı aranacak eğer yoksa ya da email değeri boşsa hata verecektir.<br /> ALTER TABLE TestKullanicilar ADD CONSTRAINT CHK_Email CHECK(CHARINDEX(&#39;.com&#39;, Email)&gt;0 OR CHARINDEX(&#39;.net&#39;, Email) &gt; 0 OR Email IS NULL)</p> <p>--Kayıdı kabul etti &ccedil;&uuml;nk&uuml; şifre değerimiz 5 karakterli ve mail kolonumuzda .com alan adı var<br /> INSERT INTO TestKullanicilar VALUES(1,&#39;DGN&#39;,&#39;Sifre&#39;,&#39;destek@dgn-yazilim.com&#39;,&#39;5397983654&#39;);</p> <p>--Kayıdı kabul etmedi, mail kolonumuzda alan adı var ancak şifre değerimiz 3 karakterli<br /> INSERT INTO TestKullanicilar VALUES(2,&#39;DGN&#39;,&#39;sif&rsquo;&#39;,&#39;destek@dgn-yazilim.com&#39;,&#39;5397983654&#39;);</p> <p>--Kayıdı kabul etmedi, şifre değerimiz 5karakterli ancak mail kolonumuzda .com ya da .net alan adı yok<br /> INSERT INTO TestKullanicilar VALUES(2,&#39;DGN&#39;,&#39;sifre5&rsquo;&#39;,&#39;destek@dgn-yazilim.sss&#39;,&#39;5397983654&#39;);</p> <p>--Kontrol&uuml; yapılan kolon Telefon, İstenilen format : 01234567899<br /> ALTER TABLE TestKullanicilar ADD CONSTRAINT<br /> &nbsp;CHK_Telefon CHECK( Telefon IS NULL OR( Telefon LIKE &#39;[0][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]&#39;) AND LEN(Telefon) = 11)</p> <p>&nbsp;--Kayıt t&uuml;m kolonlarda istenilen formatta olduğundan kabul etti<br /> &nbsp;INSERT INTO TestKullanicilar VALUES(3,&#39;DGN&#39;,&#39;sifre55&rsquo;&#39;,&#39;destek@dgn-yazilim.com&#39;,&#39;5397983654&#39;);</p> </blockquote> <h3>Peki varolan bir tabloda ki kolona sonradan m&uuml;dahale etmek istersek ne yapmamız gerekecek ?&nbsp;<br /> Yani mail adresi &ouml;rneğinden gidersek ge&ccedil;mişte &#39;asda@asda&#39; olarak mail kayıtları yapılmış biz kontrol&uuml; yeni yapmak istiyoruz<br /> ve ge&ccedil;mişte ki bu kayıtların kontrol edilmesini istemiyoruz. Bunun i&ccedil;in With No Check komutunu kullanıyoruz.</h3> <blockquote> <p><br /> &nbsp;ALTER TABLE TestKullanicilar<br /> &nbsp; WITH NOCHECK ADD CONSTRAINT CHK_Email_Kontrol_yeni CHECK( Email IS NULL OR( CHARINDEX(&#39;.com&#39;, Email)&gt;0 OR CHARINDEX(&#39;.net&#39;, Email) &gt; 0 OR Email IS NULL))</p> </blockquote>

Bunu paylaş
SQL Null If Komutu
SQL Server IDENTITY Kullanımı
Yazar erydogan
1992 yılı İstanbul doğumluyum. "Beykent Üniversitesi/Bilgisayar Programcılığı" bölümü mezunuyum, 7 yılı aşkın süredir Logo firmasının üretmiş olduğu ERP ürünlerine teknik destek vermek üzere “Logo Erp Danışmanı/Sistem Uzmanı” olarak çalıştım. 2020 Şubat ayında yıllardır hayalini kurduğum "kendi işimi yapma" düşüncemi hayata geçirmek üzere DGN Yazılım firmasını kurdum. Ayrıca .Net C# (MVC) yazılım dilini kullanarak Web tabanlı/Mobil Uyumlu, Logo yazılım entegreli ya da tamamen bağımsız uygulamalar geliştiriyorum.

İlişkili Bloglar:

0 Yorum

Copyrights © 2020 All Rights Reserved by DGN Software.