{"id":15915,"date":"2024-07-19T02:55:26","date_gmt":"2024-07-18T23:25:26","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=15915"},"modified":"2024-07-19T02:55:26","modified_gmt":"2024-07-18T23:25:26","slug":"https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/","title":{"rendered":"SQL&#039;in s\u0131n\u0131rlamalar\u0131n\u0131 anlama"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">girii\u015f<\/h2>\n<p>Bir veritaban\u0131 tasarlarken, belirli s\u00fctunlarda izin verilen verilere k\u0131s\u0131tlamalar koymak isteyebilirsiniz. \u00d6rne\u011fin, g\u00f6kdelenler hakk\u0131nda bilgi i\u00e7eren bir tablo olu\u015fturuyorsan\u0131z, her binan\u0131n y\u00fcksekli\u011fini tutan s\u00fctunun negatif de\u011ferlere izin vermemesini isteyebilirsiniz.<\/p>\n<p>\u0130li\u015fkisel veritaban\u0131 y\u00f6netim sistemleri (RDBMS), k\u0131s\u0131tlamalarla bir tabloya hangi verilerin eklenece\u011fini kontrol etmenize olanak tan\u0131r. K\u0131s\u0131tlama, bir veya daha fazla s\u00fctuna veya t\u00fcm tabloya uygulanan ve bir ifade arac\u0131l\u0131\u011f\u0131yla tablonun verilerinde yap\u0131labilecek de\u011fi\u015fiklikleri s\u0131n\u0131rlayan \u00f6zel bir kurald\u0131r. <code>SOKMAK<\/code>, <code>G\u00dcNCELLEME<\/code>, veya <code>S\u0130LMEK<\/code> S\u0131n\u0131rlar.<\/p>\n<p>Bu makalede, k\u0131s\u0131tlamalar\u0131n ne oldu\u011fu ve RDBMS&#039;de nas\u0131l kullan\u0131ld\u0131\u011f\u0131 ayr\u0131nt\u0131l\u0131 olarak incelenmektedir. Ayr\u0131ca, SQL standard\u0131nda tan\u0131mlanan be\u015f k\u0131s\u0131tlaman\u0131n her biri ele al\u0131nmakta ve ilgili i\u015flevler a\u00e7\u0131klanmaktad\u0131r.<\/p>\n<h2 id=\"%d9%85%d8%ad%d8%af%d9%88%d8%af%db%8c%d8%aa-%d9%87%d8%a7-%da%86%db%8c%d8%b3%d8%aa%d8%9f\">S\u0131n\u0131rlamalar nelerdir?<\/h2>\n<p>SQL&#039;de k\u0131s\u0131tlama, bir s\u00fctuna veya tabloya uygulanan ve i\u00e7ine eklenebilecek verileri s\u0131n\u0131rlayan herhangi bir kurald\u0131r. Tabloda depolanan verileri de\u011fi\u015ftiren bir i\u015flem (\u00f6rne\u011fin INSERT, UPDATE veya DELETE ifadesi) ger\u00e7ekle\u015ftirmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zda, RDBMS bu verilerin mevcut k\u0131s\u0131tlamalar\u0131 ihlal edip etmedi\u011fini test eder ve ihlal ediyorsa bir hata d\u00f6nd\u00fcr\u00fcr.<\/p>\n<p>Veritaban\u0131 y\u00f6neticileri, veritaban\u0131n\u0131n tan\u0131mlanm\u0131\u015f bir dizi i\u015f kural\u0131na uymas\u0131n\u0131 sa\u011flamak i\u00e7in genellikle k\u0131s\u0131tlamalara g\u00fcvenir. Bir veritaban\u0131 ba\u011flam\u0131nda, i\u015f kural\u0131, bir i\u015fletmenin veya ba\u015fka bir kurulu\u015fun izledi\u011fi ve verilerinin uymas\u0131 gereken herhangi bir politika veya prosed\u00fcrd\u00fcr. \u00d6rne\u011fin, bir m\u00fc\u015fterinin ma\u011fazas\u0131n\u0131n envanterini kataloglayan bir veritaban\u0131 olu\u015fturdu\u011funuzu varsayal\u0131m. M\u00fc\u015fteri her \u00fcr\u00fcn kayd\u0131n\u0131n benzersiz bir kimlik numaras\u0131na sahip olmas\u0131 gerekti\u011fini belirtirse, bu s\u00fctundaki iki girdinin ayn\u0131 olmamas\u0131n\u0131 sa\u011flayan BENZERS\u0130Z k\u0131s\u0131tlamal\u0131 bir s\u00fctun olu\u015fturabilirsiniz.<\/p>\n<p>K\u0131s\u0131tlamalar, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fcn korunmas\u0131nda da faydal\u0131d\u0131r. Veri b\u00fct\u00fcnl\u00fc\u011f\u00fc, belirli kullan\u0131m durumlar\u0131na ba\u011fl\u0131 olarak, bir veritaban\u0131nda tutulan verilerin genel do\u011frulu\u011funu, tutarl\u0131l\u0131\u011f\u0131n\u0131 ve rasyonalitesini tan\u0131mlamak i\u00e7in s\u0131kl\u0131kla kullan\u0131lan geni\u015f bir terimdir. Bir veritaban\u0131ndaki tablolar genellikle birbiriyle ili\u015fkilidir ve bir tablodaki s\u00fctunlar ba\u015fka bir tablodaki de\u011ferlere ba\u011fl\u0131d\u0131r. Veri giri\u015fi genellikle insan hatas\u0131na a\u00e7\u0131k oldu\u011fundan, bu gibi durumlarda k\u0131s\u0131tlamalar faydal\u0131d\u0131r, \u00e7\u00fcnk\u00fc hatal\u0131 girilen verilerin bu ili\u015fkileri etkileyip veritaban\u0131 verilerinin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc tehlikeye atmamas\u0131n\u0131 sa\u011flayabilirler.<\/p>\n<p>\u0130ki tablodan olu\u015fan bir veritaban\u0131 tasarlad\u0131\u011f\u0131n\u0131z\u0131 d\u00fc\u015f\u00fcn\u00fcn: Biri bir okuldaki mevcut \u00f6\u011frencileri, di\u011feri ise o okulun basketbol tak\u0131m\u0131 \u00fcyelerini listelemek i\u00e7in. Basketbol tak\u0131m\u0131 tablosundaki, okul tablosundaki bir s\u00fctuna referans veren bir s\u00fctuna yabanc\u0131 anahtar k\u0131s\u0131tlamas\u0131 uygulayabilirsiniz. Bu, tak\u0131m tablosundaki her girdinin \u00f6\u011frenciler tablosundaki bir girdiye referans vermesini gerektirerek iki tablo aras\u0131nda bir ili\u015fki kurar.<\/p>\n<p>Kullan\u0131c\u0131lar, bir tabloyu ilk olu\u015fturduklar\u0131nda k\u0131s\u0131tlamalar\u0131 tan\u0131mlar veya tabloda bulunan verilerle \u00e7ak\u0131\u015fmad\u0131klar\u0131 s\u00fcrece ALTER TABLE ifadesiyle daha sonra ekleyebilirler. Bir k\u0131s\u0131tlama olu\u015fturdu\u011funuzda, veritaban\u0131 sistemi k\u0131s\u0131tlama i\u00e7in otomatik olarak bir ad olu\u015fturur, ancak \u00e7o\u011fu SQL uygulamas\u0131nda her k\u0131s\u0131tlama i\u00e7in \u00f6zel bir ad ekleyebilirsiniz. Bu adlar, de\u011fi\u015ftirildi\u011finde veya kald\u0131r\u0131ld\u0131\u011f\u0131nda ALTER TABLE ifadelerindeki k\u0131s\u0131tlamalara at\u0131fta bulunmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>SQL standard\u0131 resmi olarak yaln\u0131zca be\u015f k\u0131s\u0131tlamay\u0131 tan\u0131mlar:<\/p>\n<ul>\n<li>Birincil anahtar<\/li>\n<li>Yabanc\u0131 anahtar<\/li>\n<li>E\u015fsiz<\/li>\n<li>G\u00f6zden ge\u00e7irmek<\/li>\n<li>Bo\u015f de\u011fil.<\/li>\n<\/ul>\n<p>Art\u0131k k\u0131s\u0131tlamalar\u0131n nas\u0131l kullan\u0131ld\u0131\u011f\u0131na dair genel bir anlay\u0131\u015fa sahip oldu\u011funuza g\u00f6re, bu be\u015f k\u0131s\u0131tlaman\u0131n her birine daha yak\u0131ndan bakal\u0131m.<\/p>\n<h2 id=\"%da%a9%d9%84%db%8c%d8%af-%d8%a7%d9%88%d9%84%db%8c%d9%87\">Birincil anahtar<\/h2>\n<p>PRIMARY KEY k\u0131s\u0131tlamas\u0131, belirli bir s\u00fctundaki her girdinin benzersiz ve NULL olmamas\u0131n\u0131 gerektirir ve bu sayede tabloda yer alan her bir sat\u0131r\u0131 tan\u0131mlamak i\u00e7in bu s\u00fctunu kullanabilirsiniz.<\/p>\n<p>\u0130li\u015fkisel modelde anahtar, bir tablodaki her de\u011ferin benzersiz oldu\u011fu ve herhangi bir NULL de\u011fer i\u00e7ermedi\u011fi garanti edilen bir s\u00fctun veya s\u00fctun k\u00fcmesidir. Birincil anahtar, de\u011ferleri bir tablodaki tek tek sat\u0131rlar\u0131 tan\u0131mlamak i\u00e7in kullan\u0131lan \u00f6zel bir anahtard\u0131r ve birincil anahtar\u0131 olu\u015fturan s\u00fctun veya s\u00fctunlar, tabloyu veritaban\u0131n\u0131n geri kalan\u0131nda tan\u0131mlamak i\u00e7in kullan\u0131labilir.<\/p>\n<p>\u0130li\u015fkisel veritabanlar\u0131n\u0131n \u00f6nemli y\u00f6nlerinden biri de budur: Birincil anahtar sayesinde kullan\u0131c\u0131lar\u0131n verilerinin fiziksel olarak bir makinede sakland\u0131\u011f\u0131n\u0131 bilmelerine gerek kalmaz ve DBMS&#039;leri her kayd\u0131 takip edip an\u0131nda alabilir. Bu da kay\u0131tlar\u0131n belirli bir mant\u0131ksal s\u0131ras\u0131n\u0131n olmad\u0131\u011f\u0131 ve kullan\u0131c\u0131lar\u0131n verilerini istedikleri s\u0131rayla veya istedikleri filtreyle alabilecekleri anlam\u0131na gelir.<\/p>\n<p>SQL&#039;de, \u00f6z\u00fcnde UNIQUE ve NOT NULL k\u0131s\u0131tlamalar\u0131n\u0131n birle\u015fimi olan PRIMARY KEY k\u0131s\u0131tlamas\u0131yla birincil anahtar olu\u015fturabilirsiniz. Birincil anahtar tan\u0131mland\u0131ktan sonra, DBMS otomatik olarak bununla ili\u015fkili bir dizin olu\u015fturur. Dizin, bir tablodan verilerin daha h\u0131zl\u0131 al\u0131nmas\u0131na yard\u0131mc\u0131 olan bir veritaban\u0131 yap\u0131s\u0131d\u0131r. Bir ders kitab\u0131ndaki dizin gibi, sorgular\u0131n ilgili de\u011ferleri bulmak i\u00e7in yaln\u0131zca dizinlenmi\u015f s\u00fctunun giri\u015flerini incelemesi gerekir. Bu, birincil anahtar\u0131n tablodaki her sat\u0131r i\u00e7in bir tan\u0131mlay\u0131c\u0131 g\u00f6revi g\u00f6rmesini sa\u011flar.<\/p>\n<p>Bir tablonun yaln\u0131zca bir birincil anahtar\u0131 olabilir, ancak normal anahtarlar gibi, birincil anahtar da birden fazla s\u00fctundan olu\u015fabilir. Bununla birlikte, birincil anahtarlar\u0131n tan\u0131mlay\u0131c\u0131 bir \u00f6zelli\u011fi, bir tablodaki her sat\u0131r\u0131 benzersiz \u015fekilde tan\u0131mlamak i\u00e7in gereken minimum \u00f6znitelik k\u00fcmesini kullanmalar\u0131d\u0131r. Bu fikri \u00f6rneklemek i\u00e7in, bir okuldaki \u00f6\u011frenciler hakk\u0131nda a\u015fa\u011f\u0131daki \u00fc\u00e7 s\u00fctunu kullanarak bilgi depolayan bir tablo d\u00fc\u015f\u00fcn\u00fcn:<\/p>\n<ul>\n<li><code>\u00f6\u011frenci kimli\u011fi<\/code>: Her \u00f6\u011frencinin benzersiz kimlik numaras\u0131n\u0131 saklamak i\u00e7in kullan\u0131l\u0131r<\/li>\n<li><code>ilk ad\u0131<\/code>: Her \u00f6\u011frencinin ad\u0131n\u0131 tutmak i\u00e7in kullan\u0131l\u0131r<\/li>\n<li><code>Soy isim<\/code>: Her \u00f6\u011frencinin soyad\u0131n\u0131 tutmak i\u00e7in kullan\u0131l\u0131r<\/li>\n<\/ul>\n<p>Bir okuldaki baz\u0131 \u00f6\u011frencilerin ayn\u0131 ad\u0131 payla\u015fmas\u0131 m\u00fcmk\u00fcn olabilir ve bu da firstName s\u00fctununu birincil anahtar i\u00e7in k\u00f6t\u00fc bir se\u00e7im haline getirir. Ayn\u0131 durum lastName s\u00fctunu i\u00e7in de ge\u00e7erlidir. Hem firstName hem de lastName s\u00fctunlar\u0131ndan olu\u015fan bir birincil anahtar i\u015fe yarayabilir, ancak iki \u00f6\u011frencinin ayn\u0131 ad\u0131 ve soyad\u0131n\u0131 payla\u015fma olas\u0131l\u0131\u011f\u0131 yine de vard\u0131r.<\/p>\n<p>\u00d6\u011frenci kimli\u011fi ve ad veya soyad s\u00fctunlar\u0131ndan olu\u015fan bir birincil anahtar i\u015fe yarayabilir, ancak her \u00f6\u011frencinin kimlik numaras\u0131 zaten benzersiz oldu\u011fundan, birincil anahtara her bir ad s\u00fctununu dahil etmek gereksizdir. Dolay\u0131s\u0131yla bu durumda, her sat\u0131r\u0131 tan\u0131mlayabilen ve bu nedenle tablonun birincil anahtar\u0131 i\u00e7in iyi bir se\u00e7im olan minimum \u00f6znitelik k\u00fcmesi yaln\u0131zca \u00f6\u011frenci kimli\u011fi s\u00fctunudur.<\/p>\n<p>Bir anahtar g\u00f6zlemlenebilir ve kullan\u0131labilir verilerden (yani ger\u00e7ek d\u00fcnyadaki varl\u0131klar\u0131, olaylar\u0131 veya \u00f6zellikleri temsil eden verilerden) olu\u015fuyorsa, buna do\u011fal anahtar denir. Anahtar dahili olarak \u00fcretiliyorsa ve veritaban\u0131n\u0131n d\u0131\u015f\u0131nda hi\u00e7bir \u015feyi temsil etmiyorsa, vekil veya yapay anahtar olarak adland\u0131r\u0131l\u0131r. Baz\u0131 veritaban\u0131 sistemleri, g\u00f6r\u00fcn\u00fc\u015fte sabit olan veri noktalar\u0131n\u0131n bile \u00f6ng\u00f6r\u00fclemeyen \u015fekillerde de\u011fi\u015febilece\u011fi i\u00e7in do\u011fal anahtarlar\u0131n kullan\u0131lmas\u0131n\u0131 \u00f6nermez.<\/p>\n<h2 id=\"%da%a9%d9%84%db%8c%d8%af-%d8%ae%d8%a7%d8%b1%d8%ac%db%8c\">Yabanc\u0131 anahtar<\/h2>\n<p>FOREIGN KEY k\u0131s\u0131tlamas\u0131, belirli bir s\u00fctundaki her girdinin ba\u015fka bir tablodaki belirli bir s\u00fctunda zaten mevcut olmas\u0131n\u0131 gerektirir.<\/p>\n<p>Birbiriyle ili\u015fkilendirmek istedi\u011finiz iki tablonuz varsa, bunu yapman\u0131n bir yolu, FOREIGN KEY k\u0131s\u0131tlamas\u0131yla bir yabanc\u0131 anahtar tan\u0131mlamakt\u0131r. Yabanc\u0131 anahtar, bir tablodaki (&quot;alt&quot; tablo) de\u011ferleri ba\u015fka bir tablodaki (&quot;\u00fcst tablo&quot;) bir anahtardan gelen bir s\u00fctundur. Bu, iki tablo aras\u0131ndaki ili\u015fkiyi ifade etmenin bir yoludur: Bir FOREIGN KEY k\u0131s\u0131tlamas\u0131, uyguland\u0131\u011f\u0131 s\u00fctundaki de\u011ferlerin, ba\u015fvurdu\u011fu s\u00fctunda da bulunmas\u0131n\u0131 gerektirir.<\/p>\n<p>A\u015fa\u011f\u0131daki diyagram, iki tablo aras\u0131ndaki b\u00f6yle bir ili\u015fkiyi g\u00f6stermektedir: Biri \u015firket \u00e7al\u0131\u015fanlar\u0131 hakk\u0131nda bilgi kaydetmek i\u00e7in kullan\u0131l\u0131rken, di\u011feri \u015firketin sat\u0131\u015flar\u0131n\u0131 takip etmek i\u00e7in kullan\u0131lmaktad\u0131r. Bu \u00f6rnekte, EMPLOYEES tablosunun birincil anahtar\u0131, SALES tablosunun yabanc\u0131 anahtar\u0131 taraf\u0131ndan referans al\u0131nmaktad\u0131r:<\/p>\n<p><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"1160\"  height=\"840\"  class=\"aligncenter wp-image-15918 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 1160px) 100vw, 1160px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8.png\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8.png 1160w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-300x217.png 300w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-1024x742.png 1024w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-768x556.png 768w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-110x80.png 110w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-200x145.png 200w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-380x275.png 380w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-255x185.png 255w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-550x398.png 550w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-800x579.png 800w\" ><\/p>\n<p>Alt tabloya bir kay\u0131t eklemeye \u00e7al\u0131\u015f\u0131rsan\u0131z ve yabanc\u0131 anahtar s\u00fctununa girilen de\u011fer, ana tablonun birincil anahtar\u0131nda mevcut de\u011filse, ekleme ifadesi ge\u00e7ersiz olur. Bu, her iki tablodaki sat\u0131rlar her zaman do\u011fru \u015fekilde ili\u015fkili oldu\u011fundan, ili\u015fki d\u00fczeyinde b\u00fct\u00fcnl\u00fc\u011f\u00fcn korunmas\u0131na yard\u0131mc\u0131 olur.<\/p>\n<p>\u00c7o\u011fu zaman, bir tablonun yabanc\u0131 anahtar\u0131 ana tablonun birincil anahtar\u0131d\u0131r, ancak bu her zaman b\u00f6yle de\u011fildir. \u00c7o\u011fu RDBMS&#039;de, ana tabloda UNIQUE veya PRIMARY KEY k\u0131s\u0131tlamas\u0131 olan herhangi bir s\u00fctuna, alt tablonun yabanc\u0131 anahtar\u0131yla ba\u015fvurulabilir.<\/p>\n<h2 id=\"%d9%85%d9%86%d8%ad%d8%b5%d8%b1-%d8%a8%d9%81%d8%b1%d8%af\">E\u015fsiz<\/h2>\n<p>UNIQUE k\u0131s\u0131t\u0131, belirtilen s\u00fctuna herhangi bir yinelenen de\u011ferin eklenmesini engeller.<\/p>\n<p>Ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, UNIQUE k\u0131s\u0131tlamas\u0131, belirli bir s\u00fctundaki her girdinin benzersiz bir de\u011fer olmas\u0131n\u0131 gerektirir. S\u00fctunda zaten g\u00f6r\u00fcnen bir de\u011feri ekleme giri\u015fimi hatayla sonu\u00e7lan\u0131r.<\/p>\n<p>UNIQUE k\u0131s\u0131tlamalar\u0131, tablolar aras\u0131nda birebir ili\u015fkileri zorunlu k\u0131lmak i\u00e7in kullan\u0131\u015fl\u0131d\u0131r. Daha \u00f6nce de belirtildi\u011fi gibi, bir yabanc\u0131 anahtar kullanarak iki tablo aras\u0131nda ili\u015fki kurabilirsiniz, ancak tablolar aras\u0131nda \u00e7e\u015fitli ili\u015fki t\u00fcrleri bulunabilir:<\/p>\n<ul>\n<li><code><code>\u06cc\u06a9 \u0628\u0647 \u06cc\u06a9<\/code><\/code>Ana tablodaki sat\u0131rlar, alt tablodaki yaln\u0131zca bir sat\u0131ra kar\u015f\u0131l\u0131k geliyorsa iki tablo aras\u0131nda birebir ili\u015fki oldu\u011fu s\u00f6ylenir.<\/li>\n<li><code>Birden \u00e7o\u011fa<\/code>: \u00c7oktan-herkese ili\u015fkisinde, ana tablodaki bir sat\u0131r, alt tablodaki birden fazla sat\u0131ra ili\u015fkin olabilir, ancak alt tablodaki her sat\u0131r, ana tablodaki yaln\u0131zca bir sat\u0131ra ili\u015fkin olabilir.<\/li>\n<li><code>Ka\u00e7 tane?<\/code>: E\u011fer ana tablodaki sat\u0131rlar, alt tablodaki birden fazla sat\u0131rla ili\u015fkilendirilebiliyorsa ve bunun tersi de ge\u00e7erliyse, bu iki sat\u0131r aras\u0131nda \u00e7oktan \u00e7o\u011fa ili\u015fki oldu\u011fu s\u00f6ylenir.<\/li>\n<\/ul>\n<p>FOREIGN KEY k\u0131s\u0131tlamas\u0131 uygulanm\u0131\u015f bir s\u00fctuna UNIQUE k\u0131s\u0131tlamas\u0131 ekleyerek, ana tablodaki her girdinin alt tabloda yaln\u0131zca bir kez g\u00f6r\u00fcnmesini sa\u011flayabilir, b\u00f6ylece iki tablo aras\u0131nda birebir ili\u015fki kurabilirsiniz.<\/p>\n<p>UNIQUE k\u0131s\u0131tlamalar\u0131n\u0131 hem tablo d\u00fczeyinde hem de s\u00fctun d\u00fczeyinde tan\u0131mlayabilece\u011finizi unutmay\u0131n. Tablo d\u00fczeyinde tan\u0131mland\u0131\u011f\u0131nda, bir UNIQUE k\u0131s\u0131tlamas\u0131 birden fazla s\u00fctuna uygulanabilir. Bu gibi durumlarda, k\u0131s\u0131tlamadaki her s\u00fctunda yinelenen de\u011ferler olabilir, ancak her sat\u0131rda k\u0131s\u0131tlanan s\u00fctunlarda benzersiz bir de\u011fer kombinasyonu bulunmal\u0131d\u0131r.<\/p>\n<h2 id=\"%d8%a8%d8%b1%d8%b1%d8%b3%db%8c\">G\u00f6zden ge\u00e7irmek<\/h2>\n<p>Bir CHECK k\u0131s\u0131tlamas\u0131, bir s\u00fctuna girilen herhangi bir de\u011ferin kar\u015f\u0131lamas\u0131 gereken bir ko\u015fulu, yani \u00f6ng\u00f6r\u00fcy\u00fc tan\u0131mlar.<\/p>\n<p>CHECK k\u0131s\u0131tlamas\u0131 yordamlar\u0131, TRUE, FALSE veya potansiyel olarak bilinmeyen olarak de\u011ferlendirilebilen bir ifade olarak yaz\u0131l\u0131r. Bir CHECK k\u0131s\u0131tlamas\u0131na bir de\u011fer girmeye \u00e7al\u0131\u015f\u0131rsan\u0131z ve bu de\u011fer ifadenin TRUE veya bilinmeyen olarak de\u011ferlendirilmesine neden olursa (bu, NULL de\u011ferler i\u00e7in ge\u00e7erlidir), i\u015flem ba\u015far\u0131l\u0131 olur. Ancak, ifade FALSE olarak de\u011ferlendirilirse, i\u015flem ba\u015far\u0131s\u0131z olur.<\/p>\n<p>CHECK yordamlar\u0131, belirli bir s\u00fctunda izin verilen veri aral\u0131\u011f\u0131n\u0131 s\u0131n\u0131rlamak i\u00e7in genellikle matematiksel bir kar\u015f\u0131la\u015ft\u0131rma operat\u00f6r\u00fcne (\u00f6rne\u011fin &lt;, &gt;, &lt;=, VEYA &gt;=) dayan\u0131r. \u00d6rne\u011fin, CHECK k\u0131s\u0131tlamalar\u0131n\u0131n yayg\u0131n kullan\u0131mlar\u0131ndan biri, a\u015fa\u011f\u0131daki \u00f6rnekte oldu\u011fu gibi, negatif bir de\u011ferin mant\u0131kl\u0131 olmayaca\u011f\u0131 durumlarda baz\u0131 s\u00fctunlarda negatif de\u011ferlerin tutulmas\u0131n\u0131 \u00f6nlemektir.<\/p>\n<p>Bu CREATE TABLE ifadesi, her \u00fcr\u00fcn\u00fcn ad\u0131, kimlik numaras\u0131 ve fiyat\u0131 i\u00e7in s\u00fctunlar i\u00e7eren productInfo adl\u0131 bir tablo olu\u015fturur. Bir \u00fcr\u00fcn\u00fcn negatif bir fiyata sahip olmas\u0131 mant\u0131kl\u0131 olmad\u0131\u011f\u0131ndan, bu ifade yaln\u0131zca pozitif de\u011ferlere sahip olmas\u0131n\u0131 sa\u011flamak i\u00e7in fiyat s\u00fctununa bir CHECK k\u0131s\u0131tlamas\u0131 uygular:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>CREATE TABLE productInfo (\r\nproductID int,\r\nname varchar(30),\r\nprice decimal(4,2)\r\nCHECK (price &gt; 0)\r\n);<\/code><\/pre>\n<\/div>\n<p>Her CHECK yordam\u0131 matematiksel kar\u015f\u0131la\u015ft\u0131rma operat\u00f6r\u00fc kullanmamal\u0131d\u0131r. Genellikle, bir kontrol yordam\u0131nda do\u011fru, yanl\u0131\u015f veya bilinmeyen olarak de\u011ferlendirilebilen herhangi bir SQL operat\u00f6r\u00fcn\u00fc kullanabilirsiniz; LIKE, BETWEEN, IS NOT NULL vb. Baz\u0131 SQL uygulamalar\u0131, bir CHECK yordam\u0131na alt sorgu eklemenize bile izin verir (t\u00fcm\u00fc de\u011fil). Ancak, \u00e7o\u011fu uygulaman\u0131n bir ifadede ba\u015fka bir tabloya ba\u015fvurman\u0131za izin vermedi\u011fini unutmay\u0131n.<\/p>\n<h2 id=\"%d8%aa%d9%87%db%8c-%d9%86%db%8c%d8%b3%d8%aa\">Bo\u015f de\u011fil.<\/h2>\n<p>NOT NULL k\u0131s\u0131t\u0131, belirtilen s\u00fctuna herhangi bir NULL de\u011ferinin eklenmesini engeller.<\/p>\n<p>\u00c7o\u011fu SQL uygulamas\u0131nda, bir veri sat\u0131r\u0131 ekler ancak belirli bir s\u00fctun i\u00e7in bir de\u011fer belirtmezseniz, veritaban\u0131 sistemi varsay\u0131lan olarak eksik verileri NULL olarak g\u00f6sterir. SQL&#039;de NULL, bilinmeyen, eksik veya belirtilmemi\u015f bir de\u011feri temsil etmek i\u00e7in kullan\u0131lan \u00f6zel bir anahtar s\u00f6zc\u00fckt\u00fcr. Ancak NULL, bir de\u011ferin kendisi de\u011fil, bilinmeyen bir de\u011ferin durumudur.<\/p>\n<p>Bu fark\u0131 a\u00e7\u0131klamak i\u00e7in, bir yetenek ajans\u0131nda m\u00fc\u015fterileri takip etmek i\u00e7in kullan\u0131lan ve her m\u00fc\u015fterinin ad\u0131 ve soyad\u0131 i\u00e7in s\u00fctunlar i\u00e7eren bir tablo d\u00fc\u015f\u00fcn\u00fcn. Bir m\u00fc\u015fteri &quot;Cher&quot;, &quot;Usher&quot; veya &quot;Beyonc\u00e9&quot; gibi tek bir ad kullan\u0131yorsa, veritaban\u0131 y\u00f6neticisi ad s\u00fctununa yaln\u0131zca bir ad girebilir ve bu da DBMS&#039;nin soyad s\u00fctununa NULL eklemesine neden olur. Veritaban\u0131, bir m\u00fc\u015fterinin soyad\u0131n\u0131 tam anlam\u0131yla &quot;null&quot; olarak de\u011ferlendirmez. Bu, yaln\u0131zca o sat\u0131rdaki soyad\u0131 s\u00fctununun de\u011ferinin bilinmedi\u011fi veya alan\u0131n o belirli kay\u0131t i\u00e7in ge\u00e7erli olmad\u0131\u011f\u0131 anlam\u0131na gelir.<\/p>\n<p>Ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, NOT NULL k\u0131s\u0131tlamas\u0131, belirtilen s\u00fctundaki herhangi bir de\u011ferin NULL olmas\u0131n\u0131 engeller. Bu, NOT NULL k\u0131s\u0131tlamas\u0131 olan herhangi bir s\u00fctun i\u00e7in, yeni bir sat\u0131r eklerken bir de\u011fer belirtmeniz gerekti\u011fi anlam\u0131na gelir. Aksi takdirde, INSERT i\u015flemi ba\u015far\u0131s\u0131z olur.<\/p>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">Sonu\u00e7<\/h2>\n<p>K\u0131s\u0131tlamalar, y\u00fcksek d\u00fczeyde veri b\u00fct\u00fcnl\u00fc\u011f\u00fc ve g\u00fcvenli\u011fine sahip bir veritaban\u0131 tasarlamak isteyen herkes i\u00e7in olmazsa olmaz bir ara\u00e7t\u0131r. Bir s\u00fctuna girilen verileri k\u0131s\u0131tlayarak, tablolar aras\u0131ndaki ili\u015fkilerin d\u00fczg\u00fcn bir \u015fekilde korunmas\u0131n\u0131 ve veritaban\u0131n\u0131n amac\u0131n\u0131 tan\u0131mlayan i\u015f kurallar\u0131na uymas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>","protected":false},"excerpt":{"rendered":"Giri\u015f Bir veritaban\u0131 tasarlarken, verilere k\u0131s\u0131tlamalar getirmek isteyebilece\u011finiz zamanlar olabilir\u2026","protected":false},"author":1,"featured_media":15916,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[193,349],"tags":[403,391],"class_list":{"0":"post-15915","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorials","8":"category-database","9":"tag-data-base","10":"tag-mysql"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 \u0647\u0646\u06af\u0627\u0645 \u0637\u0631\u0627\u062d\u06cc \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u0648\u0627\u0642\u0639\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0627\u06cc\u062f \u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-18T23:25:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL\",\"datePublished\":\"2024-07-18T23:25:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/\"},\"wordCount\":107,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/19024037\\\/sql.jpg\",\"keywords\":[\"data base\",\"MySQL\"],\"articleSection\":[\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/\",\"name\":\"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/19024037\\\/sql.jpg\",\"datePublished\":\"2024-07-18T23:25:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/19024037\\\/sql.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/19024037\\\/sql.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tr\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQL&#039;in S\u0131n\u0131rlamalar\u0131n\u0131 Anlamak - ITPiran Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/","og_locale":"tr_TR","og_type":"article","og_title":"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 \u0647\u0646\u06af\u0627\u0645 \u0637\u0631\u0627\u062d\u06cc \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u0648\u0627\u0642\u0639\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0627\u06cc\u062f \u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-07-18T23:25:26+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"admin","Tahmini okuma s\u00fcresi":"1 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL","datePublished":"2024-07-18T23:25:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/"},"wordCount":107,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg","keywords":["data base","MySQL"],"articleSection":["\u0622\u0645\u0648\u0632\u0634\u06cc","\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/","name":"SQL&#039;in S\u0131n\u0131rlamalar\u0131n\u0131 Anlamak - ITPiran Blog","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg","datePublished":"2024-07-18T23:25:26+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/"]}]},{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"ITPiran Blog","description":"\u0130ran S\u00fcrd\u00fcr\u00fclebilir Ticaret Haberleri ve Makaleleri","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"S\u00fcrd\u00fcr\u00fclebilir \u0130ran \u0130\u015fletmeleri Blogu","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"y\u00f6netici","url":"https:\/\/www.itpiran.net\/blog\/tr\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15915","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/comments?post=15915"}],"version-history":[{"count":2,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15915\/revisions"}],"predecessor-version":[{"id":15919,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15915\/revisions\/15919"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/media\/15916"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/media?parent=15915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/categories?post=15915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/tags?post=15915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}