{"id":1303,"date":"2014-09-03T00:55:30","date_gmt":"2014-09-02T21:55:30","guid":{"rendered":"http:\/\/koddit.com\/?p=1303"},"modified":"2025-03-21T12:55:36","modified_gmt":"2025-03-21T09:55:36","slug":"sql-server-ipuclari","status":"publish","type":"post","link":"https:\/\/blog.koddit.com\/en\/veritabani\/sql-server-ipuclari\/","title":{"rendered":"SQL Server Kullan\u0131c\u0131lar\u0131 \u0130\u00e7in Bilinmesi Gereken \u0130pu\u00e7lar\u0131"},"content":{"rendered":"<h1 class=\"wp-block-heading\">SQL Server ile ilgili (pek) bilinmeyenler<\/h1>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/ipucu-sql-resim.jpg\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/ipucu-sql-resim.jpg\" alt=\"ipucu sql resim\" class=\"lazy wp-image-1341\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"610\" height=\"240\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/ipucu-sql-resim.jpg\" alt=\"ipucu sql resim\" class=\"wp-image-1341\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/ipucu-sql-resim.jpg 610w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/ipucu-sql-resim-300x118.jpg 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/ipucu-sql-resim-600x236.jpg 600w\" sizes=\"(max-width: 610px) 100vw, 610px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<p>1) <strong>sp_help<\/strong> bir sistem stored procedure\u2019\u00fc olup nesneler hakk\u0131nda ayr\u0131nt\u0131l\u0131 bilgi almak i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<p>2) <strong>De\u011fer girilmemi\u015f (NULL) olan ifadeler<\/strong>, gruplamal\u0131 fonksiyonlar i\u00e7in bir istisna olarak ele al\u0131n\u0131r.<br>\u00d6rne\u011fin, SELECT MIN (price) FROM tblUrun sorgusu, en k\u00fc\u00e7\u00fck ifade, fiyat\u0131 girilmemi\u015f olan \u00fcr\u00fcn gibi d\u00fc\u015f\u00fcnmemize ra\u011fmen, NULL de\u011feri d\u00f6nd\u00fcrmez, girilmi\u015f olan en k\u00fc\u00e7\u00fck de\u011feri d\u00f6nd\u00fcr\u00fcr.<\/p>\n\n\n\n<p>3) <strong>\u0130ki tablo birbiri ile birle\u015ftirilerek sorgulan\u0131yorsa (join)<\/strong> bu iki tabloyu farkl\u0131 disklerde saklamak, se\u00e7me yapmak i\u00e7in ge\u00e7en s\u00fcreyi k\u0131salt\u0131r.<\/p>\n\n\n\n<p>4) <strong>Bir veritaban\u0131 taraf\u0131ndan kullan\u0131lan bir dosya<\/strong>, ba\u015fka bir veritaban\u0131 taraf\u0131ndan daha kullan\u0131lamaz.<\/p>\n\n\n\n<p>5) <strong>Veri ve transaction log bilgileri<\/strong> asla ortak bir dosyada yer alamaz.<\/p>\n\n\n\n<p>6) <strong>Sp_spaceused sistem procedure\u2019\u00fc<\/strong> kullanarak veritaban\u0131ndaki dosyalar\u0131n doluluk oranlar\u0131 gibi \u00f6zet bilgilere eri\u015filebilir.<\/p>\n\n\n\n<p>7) <strong>Transaction log dosyas\u0131n\u0131n boyutu<\/strong><em>, <\/em>Indeks ile ilgili de\u011fi\u015fiklikler yap\u0131ld\u0131\u011f\u0131nda ya da WRITETEXT,UPDATETEXT ile metin veya resim yaz\u0131l\u0131rken, WITH LOG parametresi ile kullan\u0131l\u0131rsa artar.<\/p>\n\n\n\n<p>8) <strong>Bir veritaban\u0131n\u0131n boyutunu azaltma<\/strong>&nbsp;i\u015fini otomatik olarak SQL SERVER\u2019a yapt\u0131rabiliriz&nbsp;(AUTO_SHRINK \u00f6zelli\u011fi ile)<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ALTER DATABASE veritabani ismi\nSET AUTO_SHRINK ON<\/pre>\n\n\n\n<p>9) <strong>Veri taban\u0131n\u0131 silmeden \u00f6nce<\/strong> Master veri taban\u0131n\u0131n bir kopyas\u0131n\u0131 almak, daha sonras\u0131 i\u00e7in yarar sa\u011flayabilir.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/haha.jpg\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/haha.jpg\" alt=\"haha\" class=\"lazy wp-image-1339\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"258\" height=\"196\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/haha.jpg\" alt=\"haha\" class=\"wp-image-1339\"\/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><br>10) <strong>IDENTITY fonksiyonu ile elde edilen de\u011ferin<\/strong><em>,<\/em> her zaman tablo ba\u015f\u0131na tekilli\u011fi garanti edilemez. Bu t\u00fcrden bir ama\u00e7 i\u00e7in, Constraint ile ya da do\u011frudan unique index tan\u0131mlamak gerekir.<\/p>\n\n\n\n<p>11) <strong>IDENTITY fonksiyonu ile \u00fcretilen primary key i\u00e7in<\/strong> \u00fcretimden sonra hata olu\u015fursa bir sonraki seferde ayn\u0131 say\u0131 kullan\u0131lmaz. Bu nedenle, primary key\u2019ler aras\u0131nda a\u00e7\u0131kl\u0131klar kalabilir.Bu t\u00fcrden bir durumu tolerans\u0131 olmayan durumlarda NEWID() fonksiyonu ile UNIQEIDENTIFIER t\u00fcr\u00fc ikilisinin kullan\u0131lmas\u0131 \u00f6nerilir.<\/p>\n\n\n\n<p>12) <strong>\u00c7ok g\u00fcncellenen veriler<\/strong><em> X<\/em>ML olarak saklanmamal\u0131d\u0131r.<\/p>\n\n\n\n<p>13) <strong>Bir tabloya, kay\u0131t girildikten sonra s\u00fctun eklenecekse<\/strong>, bir s\u00fctun NOT NULL ile tan\u0131mlan\u0131rken dikkatli olmak gerekir. Hesaplanm\u0131\u015f s\u00fctun veya default de\u011fer tan\u0131mlanmas\u0131 olmadan bu i\u015flem ger\u00e7eklenemez.<\/p>\n\n\n\n<p>14) <strong>Foreign key Constraint ile ili\u015fkilendirilmi\u015f iki tablodan<\/strong><em>, <\/em>foreign key\u2019in bulundu\u011fu tablo \u00fcst\u00fcnde bir kullan\u0131c\u0131n\u0131n de\u011fi\u015fiklik yapabilmesi i\u00e7in birincil tarafa en az\u0131ndan SELECT ve REFERENCES hakk\u0131nda verilmesi gerekir<em>.<\/em><\/p>\n\n\n\n<p>15) <strong>Foreign key ile sa\u011flanan veri b\u00fct\u00fcnl\u00fc\u011f\u00fc<\/strong><em>, <\/em>sadece bir veritaban\u0131 i\u00e7erisinde tan\u0131mlanabilir. Farkl\u0131 iki veritaban\u0131daki tablolar aras\u0131nda veri b\u00fct\u00fcnl\u00fc\u011f\u00fc sa\u011flayabilmek i\u00e7in Trigger kodlamak gerekir.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>16) <strong>Her zaman where ko\u015fuluna<\/strong> s\u00fctunlar\u0131 kapsayan \u015fartlar vermek zorunluluk de\u011fildir. Bir sorguda \u00f6ylesine \u015fartlarda verilebilir. (where 1=1 deyimi, arama yapmak \u00fczere dinamik SQL olu\u015fturulurken takip eden \u015fartlar\u0131n say\u0131s\u0131 bilinmedi\u011finde ilerlemek i\u00e7in kullan\u0131lan bir y\u00f6ntemdir.)<\/p>\n\n\n\n<p>17) <strong>Order By kullan\u0131l\u0131rken,<\/strong> s\u0131ralamaya kat\u0131lan s\u00fctunlar\u0131n se\u00e7ilen s\u00fctunlardan olmas\u0131 gerekmez bunun aksine t\u00fcretilmi\u015f s\u00fctunlarda s\u0131ralamada kullan\u0131labilir.<\/p>\n\n\n\n<p>18) <strong>S\u00fctunlara verilen takma adlara<\/strong> Order by taraf\u0131ndan eri\u015filemez.<\/p>\n\n\n\n<p>19) <strong>Tarih alanlar\u0131 sorgularken<\/strong> format problemi \u00e7ekmemek i\u00e7in YYYY-AA-GG SS:DD:ss \u015feklinde string olarak istedi\u011finiz tarihi vererek tarih k\u0131yaslamas\u0131 yapabilirsiniz.<\/p>\n\n\n\n<p>20) <strong>SQL server\u2019da bir sorgunun sonucu <\/strong>t\u00fcretilmi\u015f tablo olarak kullan\u0131lacaksa (sub query) hesaplanm\u0131\u015f b\u00fct\u00fcn s\u00fctunlara bir takma ad verilmelidir.<\/p>\n\n\n\n<p>21) <strong>Join ifadeleri<\/strong><em>, <\/em>sorgu veya tablo sonu\u00e7lar\u0131n\u0131 yatay olarak birle\u015ftirmek maksatl\u0131 kullan\u0131l\u0131r. D\u00fc\u015fey birle\u015ftirme i\u00e7in UNION deyimi kullan\u0131l\u0131r.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/joinler.jpg\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/joinler-300x236.jpg\" alt=\"joinler\" class=\"lazy wp-image-1347\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"236\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/joinler-300x236.jpg\" alt=\"joinler\" class=\"wp-image-1347\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/joinler-300x236.jpg 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/joinler-600x472.jpg 600w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/joinler-100x80.jpg 100w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/joinler.jpg 966w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><br>22) <strong>INNER ifadesi yer almadan<\/strong> sadece JOIN ifadesi kullan\u0131l\u0131rsa, SQL Server bunu Inner Join olarak yorumlar.<\/p>\n\n\n\n<p>23) <strong>Cross join,<\/strong> birinci tabloda yer alan her bir kayd\u0131 ikinci tabloda yer alan her bir kay\u0131t ile ili\u015fkilendirerek sat\u0131rlar t\u00fcretmede kullan\u0131l\u0131r.<\/p>\n\n\n\n<p>24) <strong>Union ifadesi ile birle\u015ftirilen iki resultset\u2019\u0131<\/strong> ayn\u0131 s\u0131radaki s\u00fctunlar\u0131n adlar\u0131 farkl\u0131 ise, ge\u00e7erli s\u00fctun ad\u0131, ilk resultset\u2019teki s\u00fctun ad\u0131d\u0131r.<\/p>\n\n\n\n<p>25) <strong>Alt sonu\u00e7lar\u0131n varl\u0131\u011f\u0131n\u0131 kontrol etmeye yarayan <\/strong>IN,NOT IN,EXIST ve NOT EXIST yard\u0131m\u0131 ile de tek s\u00fctunluk sorgular kesi\u015fim ve fark i\u015flemine tabi tutulabilir.Ancak birden fazla s\u00fctun olmas\u0131 durumunda bu deyimler bir i\u015fe yaramayacakt\u0131r.Bu t\u00fcr durumlarda INTERSECT ve EXCEPT deyimlerinin kullan\u0131lmas\u0131 gerekir.<\/p>\n\n\n\n<p>26) <strong>Bir sorguda, gruplamaya girmeden \u00f6nce <\/strong>elenecek sat\u0131rlar\u0131 WHERE c\u00fcmleci\u011fi ile tan\u0131mlamak gerekir. Gruplama neticesinde t\u00fcretilen sat\u0131rlar \u00fcst\u00fcnde filtreleme yap\u0131lacaksa, bu filtreleme i\u015flemi i\u00e7in HAV\u0130NG kullan\u0131l\u0131r.<br><br>27) <strong>Bir View\u2019i silip yeniden olu\u015fturdu\u011fumuzda<\/strong><em>, <\/em>\u00fcst\u00fcndeki izin ve engellemeleri yeniden ayarlamak gerekir. Ancak bir View Alter komutu ile de\u011fi\u015ftirilirse, haklar\u0131n yeniden verilmesine gerek yoktur.<\/p>\n\n\n\n<p>28) <strong>Non-Clustered indekslerin performanslar\u0131<\/strong>, Clustered indekslerin performanslar\u0131ndan daha d\u00fc\u015f\u00fckt\u00fcr.<\/p>\n\n\n\n<p>29) <strong>Ondal\u0131kl\u0131 de\u011fi\u015fken de\u011ferler i\u00e7in kullan\u0131labilecek de\u011fi\u015fken tiplerinden<\/strong> MONEY, DECIMAL gibi de\u011fi\u015fken tiplerinin tercih edilmesi \u00f6nerilir, FLOAT de\u011fi\u015fken tipi kesin de\u011fer d\u00f6ndermedi\u011fi i\u00e7in kullan\u0131lmas\u0131 pek tercih edilmez.<\/p>\n\n\n\n<p>30) <strong>Unicode de\u011fi\u015fken tipleri<\/strong>, gereksiz yer tutmas\u0131 sebebiyle \u00e7ok gerekmedi\u011fi durumlarda kullan\u0131lmas\u0131 pek tercih edilmez (nvarchar, nchar gibi).<\/p>\n\n\n\n<p>31) <strong>TEXT de\u011fi\u015fken tipi<\/strong> 2gb&#8217;a kadar yaz\u0131lar\u0131 tutabilir, adres de\u011ferini tuttu\u011fu i\u00e7in Update, Insert i\u015flemleri yapt\u0131\u011f\u0131m\u0131z&nbsp;zaman i\u015flem yapmaz, onun i\u00e7in ayr\u0131 bir kod yazmak gerekir.<\/p>\n\n\n\n<p>32) <strong>DDL<\/strong> (CREATE, ALTER, DROP) Objectle ilgili yapt\u0131\u011f\u0131m\u0131z her i\u015flem i\u00e7in kullan\u0131l\u0131r. (schema, function, stored procedure vs.)<\/p>\n\n\n\n<p>33) <strong>DML<\/strong> (DELETE, INSERT, UPDATE, SELECT, TRUNCATE) Data ile ilgili yapt\u0131\u011f\u0131m\u0131z her i\u015flemdir.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/sql-command-ekle.jpg\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/sql-command-ekle-300x225.jpg\" alt=\"sql command ekle\" class=\"lazy wp-image-1349\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"225\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/sql-command-ekle-300x225.jpg\" alt=\"sql command ekle\" class=\"wp-image-1349\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/sql-command-ekle-300x225.jpg 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/sql-command-ekle.jpg 512w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><br>34) <strong>Yaratt\u0131\u011f\u0131m\u0131z Stored Procedure\u2019\u00fcn de\u011ferini de\u011fi\u015ftirmek istedi\u011fimizde <\/strong> art\u0131k ALTER TABLE etmeliyiz, aksi taktirde Create ifadesi ile zaten olu\u015fturdu\u011fumuz stored procedure&#8217;\u00fc tekrar olu\u015fturmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131m\u0131z i\u00e7in hata al\u0131r\u0131z.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/uniqure.jpg\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/uniqure-300x120.jpg\" alt=\"uniqure\" class=\"lazy wp-image-1361\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"120\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/uniqure-300x120.jpg\" alt=\"uniqure\" class=\"wp-image-1361\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/uniqure-300x120.jpg 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/uniqure.jpg 498w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>35) <strong>Tablo \u00fczerinde yap\u0131lacak her t\u00fcrl\u00fc fiziksel de\u011fi\u015fiklik <\/strong>ALTER TABLE ile yap\u0131l\u0131r.<\/p>\n\n\n\n<p>36) <strong> SELECT TOP 0 * INTO<\/strong> komutu tablonun direkt kendisini yarat\u0131r; ama keyleri kaybederek yarat\u0131r.<\/p>\n\n\n\n<p>37) <strong>Veri taban\u0131nda olu\u015fturdu\u011fumuz bir tabloda \u00fczerinde herhangi bir de\u011fi\u015fiklik yap\u0131p<\/strong> sonra da kaydetmek istedi\u011fimizde, sonradan yapaca\u011f\u0131m\u0131z de\u011fi\u015fikliklere izin verilmez.<\/p>\n\n\n\n<p>Bu durumu a\u015fmak i\u00e7in,<\/p>\n\n\n\n<p><strong>Tools<\/strong> &gt; <strong>Options<\/strong> &gt; <strong>Prevent saving changes that require table re-creation<\/strong> checkbox&#8217;\u0131nda se\u00e7ili olarak gelen i\u015fareti kald\u0131r\u0131p save edebiliriz.<\/p>\n\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/1.png\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/1.png\" alt=\"1\" class=\"lazy wp-image-1326\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"516\" height=\"342\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/1.png\" alt=\"1\" class=\"wp-image-1326\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/1.png 516w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/1-300x198.png 300w\" sizes=\"(max-width: 516px) 100vw, 516px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><br>38) <strong>Bir SP&#8217;nin bitti\u011fi yerde go deyimini kullanmak, <\/strong>sp&#8217;nizin bitti\u011fi yeri tam olarak belirtmenizi sa\u011flayaca\u011f\u0131ndan istemedi\u011finiz kodlar\u0131n sp ile birlikte derlenmesine ve istenmeyen hatalar meydana getirmesine engel olur.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Temel veritaban\u0131 nesneleri hakk\u0131nda k\u00fc\u00e7\u00fck hat\u0131rlatmalar:<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>ResultSet (Sonu\u00e7 k\u00fcmesi):<\/strong><\/h3>\n\n\n\n<p>Bir se\u00e7me i\u015flemi ger\u00e7ekte veri taban\u0131n da olmayan bir tablo d\u00f6nd\u00fcr\u00fcr. Bu tablo bazen 1 sat\u0131r ve 1 s\u00fctundan olu\u015fur.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Constraint (K\u0131s\u0131tlay\u0131c\u0131):<\/strong><\/h3>\n\n\n\n<p>Herhangi bir alan i\u00e7in girilebilecek verileri zorlay\u0131c\u0131 kurallara K\u0131s\u0131tlay\u0131c\u0131 denir. Primary Key, Uniqe Key, Foreign Key gibi. Veritaban\u0131na kullan\u0131c\u0131n\u0131n keyfi de\u011ferler girmesi \u00f6nlenmi\u015f olur.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Indeksler:<\/strong><\/h3>\n\n\n\n<p>Bir ka\u00e7 y\u00fcz kay\u0131ttan olu\u015fan bir tablo \u00fcst\u00fcnde kay\u0131t arama i\u015flemi, VTYS i\u00e7in olduk\u00e7a basit bir i\u015flemdir ancak bu say\u0131 milyonlara \u00e7\u0131kt\u0131\u011f\u0131nda do\u011fru verilere eri\u015fmek i\u00e7in fazla zamana ihtiya\u00e7 duyulur. Bu nedenle verileri \u00e7e\u015fitli \u00f6zelliklerine g\u00f6re organize edip s\u0131ralayacak ve bu sayede daha h\u0131zl\u0131 eri\u015fmemize olanak tan\u0131yacak yap\u0131lara ihtiya\u00e7 duyar\u0131z. Indexler, kay\u0131tlar\u0131 fiziksel olarak s\u0131raya sokuyorsa CLUSTERED INDEKS, fiziksel olarak s\u0131raya koymuyorsa NONCLUSTERED INDEKS ad\u0131n\u0131 al\u0131r.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Clustered INDEKS:<\/strong><\/h3>\n\n\n\n<p>Verilerin kendisinin index key (indexin verilece\u011fi kolon) de\u011ferine g\u00f6re fiziksel olarak alfabetik s\u0131raland\u0131\u011f\u0131 index t\u00fcr\u00fcd\u00fcr. Clustered Index bir tabloda maksimum bir tane olabilir. (\u00d6rnegin telefon defterinde yap\u0131lan bir arama)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/indeksler.png\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/indeksler-237x300.png\" alt=\"indeksler\" class=\"lazy wp-image-1352\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"237\" height=\"300\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/indeksler-237x300.png\" alt=\"indeksler\" class=\"wp-image-1352\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/indeksler-237x300.png 237w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/indeksler.png 394w\" sizes=\"(max-width: 237px) 100vw, 237px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Non-Clustered Index:<\/strong><\/h3>\n\n\n\n<p>Non-Clustered Index mimarisinde fiziksel bir s\u0131ralama s\u00f6z konusu de\u011fildir. Index de\u011feri, Clustered Index\u2019in aksine verinin kendisi de\u011fil pointer de\u011feridir. Bu pointer de\u011feri verinin nerede oldu\u011funu g\u00f6sterir. Non-clustered Index bir tabloda maksimum 999 tane olabilir.(Sql Server 2008 i\u00e7in) (\u00d6rne\u011fin Kitap\u2019ta sayfa numaralar\u0131na g\u00f6re yap\u0131lan bir arama )<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">CREATE NONCLUSTERED INDEX IX_LastName_FName_MName on Person.Person (LastName, FirstName, MiddleName)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Schema yaratma:<\/strong><\/h3>\n\n\n\n<p>Ayn\u0131 isimde tablo, stored procedure gibi nesneleri farkl\u0131 \u015femalar i\u00e7erisinde yeniden tan\u0131mlayabilmek m\u00fcmk\u00fcnd\u00fcr.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Create schema Pinar \ncreate table pinar.depertmant\n(\nID int identity (1,1),\nAd varchar (50)\n\n)\n\nSelect * from pinar.depertmant\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>View:<\/strong><\/h3>\n\n\n\n<p>Bazen tablolar\u0131 olduklar\u0131ndan farkl\u0131 g\u00f6sterecek filtrelere ihtiya\u00e7 duyar\u0131z. View&#8217;lar birden fazla tablodan daha kolay veri almak i\u00e7in kullan\u0131l\u0131r. Program i\u00e7inde yaz\u0131lan kod daha basit olur. Yine tablolardaki baz\u0131 s\u00fctunlar gizlenebilir. Olu\u015fturulan View&#8217;e bu s\u00fctun koyulmayabilir. View&#8217;ler bir \u00e7e\u015fit istatistik olarakta kullan\u0131labilir.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/vieww.jpg\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/vieww-300x235.jpg\" alt=\"vieww\" class=\"lazy wp-image-1356\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"235\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/vieww-300x235.jpg\" alt=\"vieww\" class=\"wp-image-1356\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/vieww-300x235.jpg 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/vieww.jpg 455w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/noscript><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>View&#8217;ler sonu\u00e7 itibari ile ger\u00e7ek anlamdaki tablolar de\u011fildir. Bundan dolay\u0131 View&#8217;ler \u00fcst\u00fcnde ekleme veya g\u00fcncelleme yaparken \u00e7e\u015fitli k\u0131s\u0131tlamalar vard\u0131r. Asl\u0131nda bize direk select sorgusunu getirir. Update, Insert, Truncate i\u015flemleri yapamazs\u0131n. View olu\u015fturuldu\u011funda, yap\u0131labilecek herhangi bir hata da geri al\u0131nabilir. Ancak her View den select \u00e7ekti\u011finde db.de performans sorunu yaratabilir.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">select * from HumanResources.vEmployee<\/pre>\n\n\n\n<p>\u015feklinde g\u00f6sterilir.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Stored Procedure:<\/strong><\/h3>\n\n\n\n<p>Genellikle veritaban\u0131 uygulamalar\u0131nda veri eri\u015fim katman\u0131 olarak kodlan\u0131r. D\u0131\u015fardan parametre alabilirler ve d\u0131\u015far\u0131ya parametre resultset d\u00f6nd\u00fcrebilirler.<\/p>\n\n\n\n<p>1.Datalar \u00fczerinde yapaca\u011f\u0131n i\u015flemleri sakl\u0131 yordamlarda saklayabilirsin . Her gece kendisinin \u00e7al\u0131\u015fmas\u0131n\u0131&nbsp;istedi\u011fin kod par\u00e7alar\u0131n\u0131 Strod procedure yazarak sa\u011flayabilrsin.<br>2.Jop\u2019larla \u00e7al\u0131\u015fma&nbsp;s\u00fcrelerini ayarlayabilirsiniz.<br>3.Stored&#8217;lerin execute edilmesi gerekir. Tekrardan select * from sp yazman\u0131za gerek yoktur, zaten i\u00e7inde select c\u00fcmleleri sakl\u0131d\u0131r.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Function:<\/strong><\/h3>\n\n\n\n<p>0-1 ya da yes-no \u015feklinde de\u011ferler d\u00f6nd\u00fcr\u00fcr .\u0130stenildi\u011fi takdir de Table \u2018da d\u00f6nd\u00fcrebilir. Parametre alabilir (@PersonID int) gibi .<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ALTER FUNCTION [dbo].[ufnGetContactInformation](@PersonID int)\nRETURNS @retContactInformation TABLE \n(\n    -- Columns returned by the function\n    [PersonID] int NOT NULL, \n    [FirstName] [nvarchar](50) NULL, \n    [LastName] [nvarchar](50) NULL, \n\t[JobTitle] [nvarchar](50) NULL,\n    [BusinessEntityType] [nvarchar](50) NULL\n)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Truncate ile Delete i\u015flemleri aras\u0131ndaki farklar <\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TRUNCATE komutu ile par\u00e7al\u0131 silme yap\u0131lamazken DELETE komutu ile WHERE clause kullan\u0131larak par\u00e7al\u0131 silme yap\u0131labilmektedir.<\/li>\n\n\n\n<li>DELETE komutu ile yap\u0131lan kay\u0131t silme i\u015fleminde her silinen kay\u0131t Transaction Log da kay\u0131t baz\u0131nda loglanmaktad\u0131r. TRUNCATE de ise loglama i\u015flemi kay\u0131t baz\u0131nda yap\u0131lmamaktad\u0131r. Bu y\u00fczden TRUNCATE komutu DELETE komutuna oranla b\u00fcy\u00fck tablolarda inan\u0131lmaz h\u0131zl\u0131d\u0131r.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/ek.png\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/ek-300x150.png\" alt=\"ek\" class=\"lazy wp-image-1359\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"150\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/ek-300x150.png\" alt=\"ek\" class=\"wp-image-1359\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/ek-300x150.png 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/ek.png 600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>E\u011fer silme yap\u0131lan tabloda identity column var ise, &nbsp;TRUNCATE i\u015fleminden sonra bu kolon 1 den ba\u015flamakta, DELETE i\u015fleminden sonra ise kald\u0131\u011f\u0131 yerden devam etmektedir.<\/li>\n\n\n\n<li>Foreign key i\u00e7eren tablolarda TRUNCATE i\u015flemi yap\u0131lamaz. \u00c7\u00fcnk\u00fc Foreign key&#8217;e ba\u011fl\u0131 olan kay\u0131tlar\u0131nda silinebilmesi i\u00e7in table&#8217;\u0131n trigerlanmas\u0131 gerekmekte ama TRUNCATE i\u015fleminde daha \u00f6ncede s\u00f6yledi\u011fim gibi loglama i\u015flemi ger\u00e7ekle\u015fmemektedir. Genede TRUNCATE kullanmak istiyorsan\u0131z \u00f6nce Foreign key in kald\u0131r\u0131lmas\u0131 sonra TRUNCATE in yap\u0131lmas\u0131 ve daha sonrada Foreign Key in tekrar tan\u0131mlanmas\u0131 gerekmektedir.<\/li>\n\n\n\n<li>Foreign key i\u00e7eren tablolar DELETE ile silinmek zorundad\u0131r ya da performansl\u0131 olmas\u0131n\u0131 istiyorsan\u0131z i\u015flemi DROP-CREATE \u015feklinde ger\u00e7ekle\u015ftirebilirsiniz.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Primary Key olu\u015fturma:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">Create table Musteri\n(\n  MusteriID int identity(1,1) not null,\n  Ad nvarchar(50),\n  Soyad nvarchar(50)\n  Constraint PK_Musteri Primary key clustered (MusteriID ASC)\n\n)<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Foreign Key olu\u015fturma:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Hareket tablolar\u0131ndan \u00f6zet tablolara referans al\u0131r.<\/li>\n\n\n\n<li>Kendisine bagl\u0131 \u00f6zet tablolar\u0131n primerykeylerini tutar.<\/li>\n\n\n\n<li>Foreign key hareket tablolar\u0131d\u0131r,bunlar verilerin \u00e7ok oldu\u011fu s\u00fcrekli de\u011fi\u015fimin oldu\u011fu tablolard\u0131r. (Siparis Tablosu gibi)<\/li>\n<\/ul>\n\n\n\n<p>Sonradan foreign key eklemek isterseniz yani tablo olu\u015ftuktan sonra,<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">CREATE  table Musteri\n(\n  MusteriID int identity(1,1) not null,\n  Ad nvarchar(50),\n  Soyad nvarchar(50)\n  Constraint PK_Musteri Primary key clustered (MusteriID ASC)\n\n)\nCreate table Siparis\n(\n  SiparisID INT identity(1,1) not null,\n MusteriID INT not null, \n Primary key (SiparisID),\n Constraint PK_Musteri FOREIGN KEY (MusteriID)\n REFERENCES Musteri(MusteriID)\n \n) \nALTER TABLE dbo.Siparis ADD CONSTRAINT FK_Musteri FOREIGN KEY (MusteriID)\nREFERENCES Musteri(MusteriID)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Unique Key:<\/strong><\/h3>\n\n\n\n<p>Bir alan\u0131 Unique yapt\u0131\u011f\u0131n\u0131zda onu e\u015fsiz&nbsp;yapm\u0131\u015f olursunuz, mesela email alan\u0131n\u0131&nbsp;unique yapt\u0131\u011f\u0131n\u0131zda&nbsp;ikinci kez ayn\u0131 emaili eklemek istedi\u011finizde veritaban\u0131&nbsp;hata verecektir. Her eklenen email bir kez eklenebilir ve veritaban\u0131nda b\u00f6ylelikle tektir.<\/p>\n\n\n\n<p>\u00d6rne\u011fin m\u00fc\u015fteri kodu P423423 \u015feklinde string bir ifadeniz olsun, siz bunun tekil (primary key )olmas\u0131n\u0131 istiyorsanan\u0131z, bu bir string oldu\u011fu i\u00e7in sorun yaratabilir, ama Unique key derseniz s\u0131k\u0131nt\u0131 \u00e7\u0131kmaz .<br>PR \u2013 Key&#8217;ide Unique gibidir bir alani e\u015fsiz&nbsp;yapar ama fark\u0131 bir tabloda sadece bir tane primary key olmas\u0131d\u0131r.<br>Null de\u011ferlerde alabilir. \u00d6rne\u011fin m\u00fc\u015fteri tablosundaki TCKN gibi uzun bir alana primery key de koymak istemiyorsan\u0131z, o zaman UK yapabilrsiniz.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Sub Query:<\/strong><\/h3>\n\n\n\n<p>Sub Query yani sorgu i\u00e7inde sorgu, i\u00e7teki sorgunun d\u0131\u015fta olan sorguya de\u011fer \u00fcretmesidir. BO taraf\u0131nda kullan\u0131m\u0131 daha fazlad\u0131r .<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">select * from \n(select TOP 10 * FROM AdventureWorks2008R2.Production.Product) s\nWHERE s.Color is null<\/pre>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/2.png\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/2-300x83.png\" alt=\"2\" class=\"lazy wp-image-1327\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"83\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/2-300x83.png\" alt=\"2\" class=\"wp-image-1327\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/2-300x83.png 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/2-600x167.png 600w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/2.png 935w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/noscript><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">select * from Sales.Customer c inner join Person.Person p on c.PersonID = p.BusinessEntityID\ninner join \n(select CustomerID, \nTotalRevenue = SUM (LineTotal)\nfrom  Sales.SalesOrderDetail SD \ninner join Sales.SalesOrderHeader SO \nON SD.SalesOrderID = SO.SalesOrderID\nGroup by CustomerID \nhaving SUM (LineTotal) &gt; 5000 ) x \non x.CustomerID = c.CustomerID<\/pre>\n\n\n\n<p>Sub \u2013 Query\u2019ler performas a\u00e7\u0131s\u0131ndan gerekmedi\u011fi durumlarda fazla tercih edilmezler, bunun yerine Temp Table kullanmak daha iyi olur .<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Temp Table:<\/strong><\/h3>\n\n\n\n<p>Ge\u00e7ici tablolar \u00e7al\u0131\u015fma an\u0131nda olu\u015fturulur ayr\u0131ca normal bir tabloda yapabilece\u011fimiz t\u00fcm i\u015flemleri temp tablolarda da yapabiliriz. Temp Tablolar tempdb veritaban\u0131nda saklan\u0131rlar.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/Types-of-Temporary-table.png\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/Types-of-Temporary-table-300x129.png\" alt=\"Types of Temporary table\" class=\"lazy wp-image-1364\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"129\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/Types-of-Temporary-table-300x129.png\" alt=\"Types of Temporary table\" class=\"wp-image-1364\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/Types-of-Temporary-table-300x129.png 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/Types-of-Temporary-table-600x258.png 600w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/Types-of-Temporary-table.png 692w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1) <strong>Local Temp&nbsp;Table<\/strong><\/h2>\n\n\n\n<p>Local Temp tablolar sadece tabloyu olu\u015fturan kullan\u0131c\u0131n\u0131n, olu\u015fturmak i\u00e7in kulland\u0131\u011f\u0131 connection \u00fczerin de ge\u00e7erlidir. Kullan\u0131c\u0131 ba\u011flant\u0131y\u0131 kapatt\u0131\u011f\u0131 anda otomatik olarak silinir. Local Temp tablo tan\u0131mlamak i\u00e7in tablo isminin \u00f6n\u00fcne # i\u015fareti koymam\u0131z yeterlidir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2) <strong>Global Temp Table<\/strong><\/h2>\n\n\n\n<p>Global olarak temp tablo tan\u0131mlamak i\u00e7in ## karakterlerini tablo isminden \u00f6nce eklememiz yeterlidir. Global temp tablolar bir connection i\u00e7inde tan\u0131mland\u0131\u011f\u0131 anda, normal tablolar gibi t\u00fcm kullan\u0131c\u0131lar ve connectionlar i\u00e7inde kullan\u0131labilir hale gelirler. Global tabloyu olu\u015fturdu\u011funuz connection kapat\u0131lana kadar bu tablo var olmaya devam eder.<\/p>\n\n\n\n<p><strong>Local Temp Table \u00f6rne\u011fi:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">select CustomerID, \nTotalRevenue = SUM (LineTotal)\nINTO #CustomerTotalRevenue\nfrom  Sales.SalesOrderDetail SD \ninner join Sales.SalesOrderHeader SO \nON SD.SalesOrderID = SO.SalesOrderID\nGroup by CustomerID \nhaving SUM (LineTotal) &gt; 5000  \n\n\nSELECT p.* from Sales.Customer c \ninner join Person.Person p \non c.PersonID = p.BusinessEntityID \ninner join \n#CustomerTotalRevenue x\non x.CustomerID = c.CustomerID<\/pre>\n\n\n\n<p><strong>Temp Table olu\u015fturman\u0131n bir di\u011fer y\u00f6ntemi ise<\/strong> tek sefer kullan\u0131m hakk\u0131 olan Memory&#8217;de bir Table yaratmak.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">;WITH CustomerTotalRevenue AS (\nselect CustomerID, \nTotalRevenue = SUM (LineTotal)\nfrom  Sales.SalesOrderDetail SD \ninner join Sales.SalesOrderHeader SO \nON SD.SalesOrderID = SO.SalesOrderID\nGroup by CustomerID \nhaving SUM (LineTotal) &gt; 5000 \n), \ntop5 AS \n\n( SELECT TOP 5 * from CustomerTotalRevenue\n)\n\nDECLARE @CustomerTotalRevenue TABLE \n(\nCustemerID int, \nTotalRevenue decimal (18,5)\n)\nINSERT INTO @CustomerTotalRevenue\nselect CustomerID, \nTotalRevenue = SUM (LineTotal)\nfrom  Sales.SalesOrderDetail SD \ninner join Sales.SalesOrderHeader SO \nON SD.SalesOrderID = SO.SalesOrderID\nGroup by CustomerID \nhaving SUM (LineTotal) &gt; 5000 \n\n\n--DECLARE @CustomerTotalRevenue TABLE \n--(\n--CustemerID int, \n--TotalRevenue decimal (18,5)\n--) \nOnce tabloyu declare etmeliyiz daha sonra burayi kaldirip tum sorguyu calistirmaliyiz.\n\n\nSelect * from @CustomerTotalRevenue\n<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>Veri Ambar\u0131 \u015eemalar\u0131<\/strong><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1) <strong>Star <strong>SCHEMA<\/strong><\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bu \u015fema yap\u0131s\u0131 en s\u0131k tercih edilen \u015fema modelidir. Merkezde konumland\u0131r\u0131lm\u0131\u015f bir fact table ve onun etraf\u0131n\u0131 sarm\u0131\u015f dimension table\u2019lar\u0131n bir y\u0131ld\u0131z \u015feklini an\u0131msatmas\u0131ndan dolay\u0131 da Star Scheme (Y\u0131ld\u0131z \u015eema) ad\u0131n\u0131 alm\u0131\u015ft\u0131r.<\/li>\n\n\n\n<li>Bu \u015fema yap\u0131s\u0131nda fact table \u2018a keylerle ba\u011flanm\u0131\u015f olan dimension tablelar demormalize edilmi\u015ftir.<\/li>\n\n\n\n<li>Fact tablolarda, dimension tablolar\u0131n primery keyleri ve say\u0131sal de\u011ferler tutulur.<\/li>\n\n\n\n<li>Her dimension tablodan fact tabloya bir ba\u011flant\u0131 gelir.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/3.jpg\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/3-300x220.jpg\" alt=\"3\" class=\"lazy wp-image-1328\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"220\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/3-300x220.jpg\" alt=\"3\" class=\"wp-image-1328\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/3-300x220.jpg 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/3-600x440.jpg 600w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/3.jpg 660w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2) <strong>Snowflake SCHEMA<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bu \u015fema yap\u0131s\u0131ndaysa; merkezde konumland\u0131r\u0131lm\u0131\u015f bir fact table ve onun etraf\u0131n\u0131 sarm\u0131\u015f dimension table\u2019lara ba\u011flanm\u0131\u015f ba\u015fka dimension table\u2019lar\u0131n kar tanelerine benzer bir \u015fekil olu\u015fturmas\u0131ndan dolay\u0131 Snowflake Schema denmi\u015ftir.<\/li>\n\n\n\n<li>Bu \u015fema yap\u0131s\u0131nda fact table \u2018a keylerle ba\u011flanm\u0131\u015f olan dimension tablelar normalizasyon kurallar\u0131na g\u00f6re dizilmi\u015flerdir, zaten dimensionlara ba\u011fl\u0131 ba\u015fka dimensionlar olmas\u0131 da normalizasyon kurallar\u0131na uymak i\u00e7indir.<\/li>\n\n\n\n<li>\u00d6zet tablonun da bir \u00f6zetini \u00e7\u0131kar\u0131yoruz. Buna da bir fore\u0131gn key tan\u0131ml\u0131yoruz .<\/li>\n\n\n\n<li>Sorgu performans\u0131n\u0131 art\u0131r\u0131r.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/4.jpg\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/4-300x182.jpg\" alt=\"4\" class=\"lazy wp-image-1329\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"182\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/4-300x182.jpg\" alt=\"4\" class=\"wp-image-1329\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/4-300x182.jpg 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/4-600x365.jpg 600w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/4-290x175.jpg 290w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/4.jpg 829w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Normalizasyon nedir?<\/strong><\/h3>\n\n\n\n<p>Verilerin d\u00fczenli olarak tutulmas\u0131n\u0131 sa\u011flayan kurallar toplulu\u011fudur. \u00c7\u0131karabildi\u011fimiz kadar farkl\u0131 varyasyonlar i\u00e7in d\u00fczeltme temizleme yap\u0131labilir. Data tekrar\u0131n\u0131 \u00f6nlemek, verilerin kaplad\u011f\u0131 alanlar\u0131 azalt\u0131r.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/11.png\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/11-165x300.png\" alt=\"11\" class=\"lazy wp-image-1333\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"165\" height=\"300\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/11-165x300.png\" alt=\"11\" class=\"wp-image-1333\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/11-165x300.png 165w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/11.png 236w\" sizes=\"(max-width: 165px) 100vw, 165px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/12.png\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/12-266x300.png\" alt=\"12\" class=\"lazy wp-image-1334\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"266\" height=\"300\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/12-266x300.png\" alt=\"12\" class=\"wp-image-1334\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/12-266x300.png 266w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/12.png 467w\" sizes=\"(max-width: 266px) 100vw, 266px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/13.png\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/13-300x133.png\" alt=\"13\" class=\"lazy wp-image-1335\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"133\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/13-300x133.png\" alt=\"13\" class=\"wp-image-1335\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/13-300x133.png 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/13.png 466w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Performans kar\u015f\u0131la\u015ft\u0131rmas\u0131n\u0131 nas\u0131l g\u00f6rebiliriz?<\/strong><\/h3>\n\n\n\n<p>Performans kar\u015f\u0131la\u015ft\u0131rmas\u0131 yapmak i\u00e7in <strong>Display Estimated Execution Plan<\/strong> butonuna t\u0131klad\u0131g\u0131m\u0131zda, cost&#8217;tan nerede ne kadar zaman harcad\u0131g\u0131n\u0131 g\u00f6rebiliriz.<\/p>\n\n\n\n<p>\u00d6rne\u011fin,<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT LastName,FirstName FROM Person.Person\nwhere LastName ='Smith'\n\n\nSELECT  LastName,FirstName FROM Person.Person\nwhere FirstName ='ken'\n\n\nSELECT ModifiedDate FROM Person.Person\nwhere ModifiedDate between '2005-01-01' and '2005-01-31';\n<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/6.png\"><img decoding=\"async\" src=\"https:\/\/blog.koddit.com\/wp-content\/plugins\/wp-images-lazy-loading\/images\/grey.gif\" data-original=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/6-300x158.png\" alt=\"6\" class=\"lazy wp-image-1330\"\/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"158\" src=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/6-300x158.png\" alt=\"6\" class=\"wp-image-1330\" srcset=\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/6-300x158.png 300w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/6-600x316.png 600w, https:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/08\/6.png 903w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/noscript><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Merge komutunun kullan\u0131m\u0131<\/strong><\/h3>\n\n\n\n<p>Update, insert gibi komutlar\u0131&nbsp;bir arada conditiona ba\u011fl\u0131 olarak yap\u0131ld\u0131\u011f\u0131, e\u015fle\u015fen kay\u0131t varsa update et, &nbsp;kay\u0131t yoksa insert et i\u015flemlerini yapmak i\u00e7in kullan\u0131r\u0131z.<\/p>\n\n\n\n<p>Olan kayd\u0131 update edersin, source i\u00e7inde yoksa insert edersin.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">MERGE INTO tablename \nUSING table_reference \nON (condition) \nWHEN MATCHED THEN UPDATE \nSET column1 = value1 [, column2 = value2 ...] \nWHEN NOT MATCHED \nTHEN INSERT (column1 [, column2 ...]) VALUES (value1 [, value2 ...<\/pre>\n\n\n\n<p>\u00d6rne\u011fin,<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">MERGE #product tgt \nUSING ProductWellDone src \nON src.ProductID = tgt.ProductID \n\nWHEN MATCHED \n THEN \n UPDATE \n SET tgt.HasAferin = 'Yes'\n\nWHEN NOT MATCHED BY SOURCE \nTHEN\nDELETE ;<\/pre>\n\n\n\n<p><strong>&nbsp; &nbsp; &nbsp;<\/strong><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Hadi bir de \u00f6rneklere g\u00f6z atal\u0131m!<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1. Cursor kullan\u0131m\u0131:<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">USE dukkan\nGO\n-- oncelikle scroll cursor'umuzun sececigi ifadeyi g\u00f6relim:\n\nSELECT markaKod, marka FROM tblMarka\nORDER BY markaKod\n\n-- Scroll cursor tan\u0131mlayal\u0131m.\nDECLARE crScrMarka SCROLL CURSOR FOR\nSELECT markaKod, marka FROM tblMarka\nORDER BY markaKod\n\nOPEN crScrMarka\n\n-- cusror'un son satirina gidelim:\nFETCH LAST FROM crScrMarka\n\n-- anlik olarak ilk kayda gecelim:\nFETCH PRIOR FROM crScrMarka\n\n-- bastan 2.kayda konumlanalim:\nFETCH ABSOLUTE 2 FROM crScrMarka\n\n-- bulundugumuz yerden 3 kayit ileri konumlanalim:\nFETCH RELATIVE 3 FROM crScrMarka\n\n--  bulundugumuz kayittan 2 kayit geriye konumlanalim:\nFETCH RELATIVE -2 FROM crScrMarka\n\nCLOSE crScrMarka\nDEALLOCATE crScrMarka\nGO\n\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2. Tablo tipi parametre kullan\u0131m \u00f6rne\u011fi:<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">--- 1. Daha onceden tanimlanmamissa once tablo tipini tan\u0131mlayalim.\nCREATE TYPE dbo.MarkaTip AS TABLE(\nmarkaKod INT,\nmarka VARCHAR(50)\n);\nGO\n\n \n-----2.. Tablo alan Stored Procedure kodlanmasi\nALTER PROC _SP_BelliMarkaUrunlerSec(@markaTablo AS dbo.MarkaTip READONLY )\nAS\nBEGIN\n\tSELECT U.urunKod,U.urunAd,M.marka \n\tFROM tblUrun U JOIN @markaTablo M ON U.markaKod=M.MarkaKod\nEND\nGO\n\n--- 3.simdi de kullanalim....\n\n--Once girdi parametreyi olusturup dolduralim\nDECLARE @marka AS dbo.MarkaTip;\n\nINSERT INTO @marka(markaKod,marka)\nSELECT TOP(9) markaKod,Marka \nFROM tblMarka;\n\n--sonra stored Procedure'u secelim\nEXEC _SP_BelliMarkaUrunlerSec @marka\nGO<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3. Transaction \u00f6rne\u011fi:<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">CREATE TABLE tblHesap( \n\tHesapNo CHAR(10) PRIMARY KEY NOT NULL,\n\tisim VARCHAR(55),\n\tsoyad VARCHAR(55),\n\tsube INTEGER,\n\tbakiye MONEY\n) ;\n\nINSERT tblHesap\nVALUES('000000023','Ali','Eryatan',749,30000000);\n\n\nINSERT tblHesap\nVALUES('000000042','Ahmet','Eryatan',749,30000000);\n\n\n\n\n-- Ali Ahmet'e 1000 lira havale yaparsa...\nBEGIN TRAN\nUPDATE tblHesap\nSET bakiye=bakiye \u2013 1000\nWHERE hesapNo='000000023'\n\n\nUPDATE tblHesap\nSET bakiye=bakiye + 1000\nWHERE hesapNo='000000042'\nCOMMIT\n\n-- TRY-CATCH ile kullanilmali.\n\n\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. Veritaban\u0131 yetkinliklerini art\u0131rma \u2013 yedekleme ve yedekten d\u00f6nd\u00fcrmek:<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">USE master;\nALTER DATABASE dukkan SET RECOVERY FULL ;\n\n\nBACKUP DATABASE dukkan\nTO DISK='D:\\yedekler\\dukkan.bak';\n\nha\nBACKUP DATABASE dukkan\nTO DISK='D:\\yedekler\\dukkan.bak'\nWITH INIT;\n\n\n\nSELECT b.backup_set_id yedekno, b.media_set_id medya_no, b.database_name veritabani, f.logical_name ad, f.file_type yedekTip\nFROM backupset b LEFT JOIN backupfile f ON b.backup_set_id = f.backup_set_id\n\n\n\nRESTORE DATABASE [dukkan3] FROM  \nDISK = N'D:\\Yedek\\dukkan.bak' \nWITH  \nMOVE 'dukkan_Data' TO 'D:\\SQLData\\2008_dukkan\\dukkan3.MDF',\nMOVE 'dukkan_Log' TO 'D:\\SQLData\\2008_dukkan\\dukkan3_1.LDF' \n\n\nUSE msdb ;\nSELECT backup_set_id, media_set_id, position, name, type\nFROM backupset \nWHERE name LIKE 'dukkan-%' ;\n\n\n\nRESTORE DATABASE [dukkan]\nFROM  DISK= 'D:\\Yedek\\dukkan.bak'\nWITH FILE = 1, NORECOVERY ;\n\n\n\nRESTORE LOG [dukkan]\nFROM  DISK= 'D:\\Yedek\\dukkan.bak'\nWITH FILE = 2,NORECOVERY ;\n\n\n\nUSE msdb ;\nSELECT backup_set_id, media_set_id, position, name, type,backup_start_date,backup_finish_date\nFROM backupset \nWHERE name LIKE 'dukkan-%'\n\n-- Belli bir zamana donmek\n\n\nRESTORE DATABASE [dukkan]\nFROM  DISK= 'D:\\Yedek\\dukkan.bak'\nWITH FILE = 1, STOPAT='2010-06-28 00:00', NORECOVERY ;\n\nRESTORE LOG [dukkan]\nFROM  DISK= 'D:\\Yedek\\dukkan.bak'\nWITH FILE = 2, STOPAT='2010-06-28 00:00', NORECOVERY ;\n\nRESTORE LOG [dukkan]\nFROM  DISK= 'D:\\Yedek\\dukkan.bak'\nWITH FILE = 3, STOPAT='2010-06-28 00:00', NORECOVERY ;\n\nRESTORE LOG [dukkan]\nFROM  DISK= 'D:\\Yedek\\dukkan.bak'\nWITH FILE = 4, STOPAT='2010-06-28 00:00', RECOVERY ;\n<\/pre>\n\n\n\n<p class=\"has-text-align-center\"><em><strong><span style=\"font-family: Arial;\">Akl\u0131n\u0131zdakileri hayata ge\u00e7irebilmeniz dile\u011fiyle, sevgilerle&#8230;<\/span><\/strong><\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>SQL Server ile ilgili (pek) bilinmeyenler 1) sp_help bir sistem stored procedure\u2019\u00fc olup nesneler hakk\u0131nda ayr\u0131nt\u0131l\u0131 bilgi almak i\u00e7in kullan\u0131l\u0131r. 2) De\u011fer girilmemi\u015f (NULL) olan ifadeler, gruplamal\u0131 fonksiyonlar i\u00e7in bir istisna olarak ele al\u0131n\u0131r.\u00d6rne\u011fin, SELECT MIN (price) FROM tblUrun sorgusu, en k\u00fc\u00e7\u00fck ifade, fiyat\u0131 girilmemi\u015f olan \u00fcr\u00fcn gibi d\u00fc\u015f\u00fcnmemize ra\u011fmen, NULL de\u011feri d\u00f6nd\u00fcrmez, girilmi\u015f olan [&hellip;]<\/p>","protected":false},"author":12,"featured_media":1450,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[187],"tags":[],"class_list":["post-1303","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-veritabani"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL Server Kullan\u0131c\u0131lar\u0131 \u0130\u00e7in Bilinmesi Gereken \u0130pu\u00e7lar\u0131 - Koddit<\/title>\n<meta name=\"description\" content=\"SQL Server hakk\u0131nda bilmeniz gereken ipu\u00e7lar\u0131n\u0131 bu yaz\u0131da toplad\u0131k! SQL hakk\u0131nda bilmedi\u011finiz\/bildi\u011finizi sand\u0131\u011f\u0131n\u0131z\/\u00f6\u011frenmek isteyece\u011finiz her \u015fey.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.koddit.com\/en\/veritabani\/sql-server-ipuclari\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server Kullan\u0131c\u0131lar\u0131 \u0130\u00e7in Bilinmesi Gereken \u0130pu\u00e7lar\u0131 - Koddit\" \/>\n<meta property=\"og:description\" content=\"SQL Server hakk\u0131nda bilmeniz gereken ipu\u00e7lar\u0131n\u0131 bu yaz\u0131da toplad\u0131k! SQL hakk\u0131nda bilmedi\u011finiz\/bildi\u011finizi sand\u0131\u011f\u0131n\u0131z\/\u00f6\u011frenmek isteyece\u011finiz her \u015fey.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.koddit.com\/en\/veritabani\/sql-server-ipuclari\/\" \/>\n<meta property=\"og:site_name\" content=\"Koddit\" \/>\n<meta property=\"article:published_time\" content=\"2014-09-02T21:55:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-21T09:55:36+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/09\/1000_SQLServerLogo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"577\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Koddit\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Koddit\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/\"},\"author\":{\"name\":\"Koddit\",\"@id\":\"https:\/\/blog.koddit.com\/#\/schema\/person\/518a908da35b6c3549d25a0bda7a1035\"},\"headline\":\"SQL Server Kullan\u0131c\u0131lar\u0131 \u0130\u00e7in Bilinmesi Gereken \u0130pu\u00e7lar\u0131\",\"datePublished\":\"2014-09-02T21:55:30+00:00\",\"dateModified\":\"2025-03-21T09:55:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/\"},\"wordCount\":2604,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/blog.koddit.com\/#organization\"},\"articleSection\":[\"Veritaban\u0131\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/\",\"url\":\"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/\",\"name\":\"SQL Server Kullan\u0131c\u0131lar\u0131 \u0130\u00e7in Bilinmesi Gereken \u0130pu\u00e7lar\u0131 - Koddit\",\"isPartOf\":{\"@id\":\"https:\/\/blog.koddit.com\/#website\"},\"datePublished\":\"2014-09-02T21:55:30+00:00\",\"dateModified\":\"2025-03-21T09:55:36+00:00\",\"description\":\"SQL Server hakk\u0131nda bilmeniz gereken ipu\u00e7lar\u0131n\u0131 bu yaz\u0131da toplad\u0131k! SQL hakk\u0131nda bilmedi\u011finiz\/bildi\u011finizi sand\u0131\u011f\u0131n\u0131z\/\u00f6\u011frenmek isteyece\u011finiz her \u015fey.\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/blog.koddit.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server Kullan\u0131c\u0131lar\u0131 \u0130\u00e7in Bilinmesi Gereken \u0130pu\u00e7lar\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.koddit.com\/#website\",\"url\":\"https:\/\/blog.koddit.com\/\",\"name\":\"Koddit\",\"description\":\"Blog\",\"publisher\":{\"@id\":\"https:\/\/blog.koddit.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.koddit.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.koddit.com\/#organization\",\"name\":\"Koddit\",\"url\":\"https:\/\/blog.koddit.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.koddit.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2023\/04\/koddit-logo.png\",\"contentUrl\":\"https:\/\/blog.koddit.com\/wp-content\/uploads\/2023\/04\/koddit-logo.png\",\"width\":\"176\",\"height\":\"65\",\"caption\":\"Koddit\"},\"image\":{\"@id\":\"https:\/\/blog.koddit.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.koddit.com\/#\/schema\/person\/518a908da35b6c3549d25a0bda7a1035\",\"name\":\"Koddit\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.koddit.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b61761f4f382d0c7491378564c2c447a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b61761f4f382d0c7491378564c2c447a?s=96&d=mm&r=g\",\"caption\":\"Koddit\"},\"description\":\"Koddit Yaz\u0131l\u0131m ve Dan\u0131\u015fmanl\u0131k info@koddit.com\",\"sameAs\":[\"https:\/\/blog.koddit.com\"],\"url\":\"https:\/\/blog.koddit.com\/en\/author\/koddit\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQL Server Kullan\u0131c\u0131lar\u0131 \u0130\u00e7in Bilinmesi Gereken \u0130pu\u00e7lar\u0131 - Koddit","description":"SQL Server hakk\u0131nda bilmeniz gereken ipu\u00e7lar\u0131n\u0131 bu yaz\u0131da toplad\u0131k! SQL hakk\u0131nda bilmedi\u011finiz\/bildi\u011finizi sand\u0131\u011f\u0131n\u0131z\/\u00f6\u011frenmek isteyece\u011finiz her \u015fey.","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:\/\/blog.koddit.com\/en\/veritabani\/sql-server-ipuclari\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server Kullan\u0131c\u0131lar\u0131 \u0130\u00e7in Bilinmesi Gereken \u0130pu\u00e7lar\u0131 - Koddit","og_description":"SQL Server hakk\u0131nda bilmeniz gereken ipu\u00e7lar\u0131n\u0131 bu yaz\u0131da toplad\u0131k! SQL hakk\u0131nda bilmedi\u011finiz\/bildi\u011finizi sand\u0131\u011f\u0131n\u0131z\/\u00f6\u011frenmek isteyece\u011finiz her \u015fey.","og_url":"https:\/\/blog.koddit.com\/en\/veritabani\/sql-server-ipuclari\/","og_site_name":"Koddit","article_published_time":"2014-09-02T21:55:30+00:00","article_modified_time":"2025-03-21T09:55:36+00:00","og_image":[{"width":1000,"height":577,"url":"http:\/\/blog.koddit.com\/wp-content\/uploads\/2014\/09\/1000_SQLServerLogo.jpg","type":"image\/jpeg"}],"author":"Koddit","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Koddit","Est. reading time":"20 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/#article","isPartOf":{"@id":"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/"},"author":{"name":"Koddit","@id":"https:\/\/blog.koddit.com\/#\/schema\/person\/518a908da35b6c3549d25a0bda7a1035"},"headline":"SQL Server Kullan\u0131c\u0131lar\u0131 \u0130\u00e7in Bilinmesi Gereken \u0130pu\u00e7lar\u0131","datePublished":"2014-09-02T21:55:30+00:00","dateModified":"2025-03-21T09:55:36+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/"},"wordCount":2604,"commentCount":1,"publisher":{"@id":"https:\/\/blog.koddit.com\/#organization"},"articleSection":["Veritaban\u0131"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/","url":"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/","name":"SQL Server Kullan\u0131c\u0131lar\u0131 \u0130\u00e7in Bilinmesi Gereken \u0130pu\u00e7lar\u0131 - Koddit","isPartOf":{"@id":"https:\/\/blog.koddit.com\/#website"},"datePublished":"2014-09-02T21:55:30+00:00","dateModified":"2025-03-21T09:55:36+00:00","description":"SQL Server hakk\u0131nda bilmeniz gereken ipu\u00e7lar\u0131n\u0131 bu yaz\u0131da toplad\u0131k! SQL hakk\u0131nda bilmedi\u011finiz\/bildi\u011finizi sand\u0131\u011f\u0131n\u0131z\/\u00f6\u011frenmek isteyece\u011finiz her \u015fey.","breadcrumb":{"@id":"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.koddit.com\/veritabani\/sql-server-ipuclari\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/blog.koddit.com\/"},{"@type":"ListItem","position":2,"name":"SQL Server Kullan\u0131c\u0131lar\u0131 \u0130\u00e7in Bilinmesi Gereken \u0130pu\u00e7lar\u0131"}]},{"@type":"WebSite","@id":"https:\/\/blog.koddit.com\/#website","url":"https:\/\/blog.koddit.com\/","name":"Koddit","description":"Blog","publisher":{"@id":"https:\/\/blog.koddit.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.koddit.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/blog.koddit.com\/#organization","name":"Koddit","url":"https:\/\/blog.koddit.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.koddit.com\/#\/schema\/logo\/image\/","url":"https:\/\/blog.koddit.com\/wp-content\/uploads\/2023\/04\/koddit-logo.png","contentUrl":"https:\/\/blog.koddit.com\/wp-content\/uploads\/2023\/04\/koddit-logo.png","width":"176","height":"65","caption":"Koddit"},"image":{"@id":"https:\/\/blog.koddit.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blog.koddit.com\/#\/schema\/person\/518a908da35b6c3549d25a0bda7a1035","name":"Koddit","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.koddit.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b61761f4f382d0c7491378564c2c447a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b61761f4f382d0c7491378564c2c447a?s=96&d=mm&r=g","caption":"Koddit"},"description":"Koddit Yaz\u0131l\u0131m ve Dan\u0131\u015fmanl\u0131k info@koddit.com","sameAs":["https:\/\/blog.koddit.com"],"url":"https:\/\/blog.koddit.com\/en\/author\/koddit\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.koddit.com\/en\/wp-json\/wp\/v2\/posts\/1303"}],"collection":[{"href":"https:\/\/blog.koddit.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.koddit.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.koddit.com\/en\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.koddit.com\/en\/wp-json\/wp\/v2\/comments?post=1303"}],"version-history":[{"count":2,"href":"https:\/\/blog.koddit.com\/en\/wp-json\/wp\/v2\/posts\/1303\/revisions"}],"predecessor-version":[{"id":3687,"href":"https:\/\/blog.koddit.com\/en\/wp-json\/wp\/v2\/posts\/1303\/revisions\/3687"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.koddit.com\/en\/wp-json\/wp\/v2\/media\/1450"}],"wp:attachment":[{"href":"https:\/\/blog.koddit.com\/en\/wp-json\/wp\/v2\/media?parent=1303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.koddit.com\/en\/wp-json\/wp\/v2\/categories?post=1303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.koddit.com\/en\/wp-json\/wp\/v2\/tags?post=1303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}