<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Özgür YAMAN</title>
	<atom:link href="http://ozguryaman.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ozguryaman.com</link>
	<description>Özgür YAMAN&#039;ın kişisel web sitesi</description>
	<lastBuildDate>Sun, 06 May 2012 08:11:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SQL&#039;de ORDER BY Deyimi</title>
		<link>http://ozguryaman.com/sqlde-order-by-deyimi/</link>
		<comments>http://ozguryaman.com/sqlde-order-by-deyimi/#comments</comments>
		<pubDate>Sun, 06 May 2012 08:11:06 +0000</pubDate>
		<dc:creator>Özgür YAMAN</dc:creator>
				<category><![CDATA[Veritabanı]]></category>
		<category><![CDATA[ASC]]></category>
		<category><![CDATA[DESC]]></category>
		<category><![CDATA[ORDER BY]]></category>
		<category><![CDATA[siralama]]></category>
		<category><![CDATA[sorgulama]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://ozguryaman.com/?p=745</guid>
		<description><![CDATA[Bu derste SQL'de SELECT deyimiyle beraber kullanılan ORDER BY deyiminin kullanımıyla ilgili bazı örnekler yapacağız. Önceki derslerde de olduğu gibi, bu derste de aşağıdaki örnek tablomuzu kullanacağız. tablo: personel ID isim bolum dtarihi dyeri maas 24 Aylin Demiray Muhasebe 1982 Niğde 1100 42 Mehmet Eroğlu Bilgi İşlem 1977 Ankara 1450 54 Selim Kaya Bilgi İşlem [...]]]></description>
			<content:encoded><![CDATA[<p>Bu derste SQL'de <a title="SQL'de SELECT Komutu" href="http://ozguryaman.com/sqlde-select-komutu/">SELECT</a> deyimiyle beraber kullanılan ORDER BY deyiminin kullanımıyla ilgili bazı örnekler yapacağız.</p>
<p><span id="more-745"></span></p>
<p>Önceki derslerde de olduğu gibi, bu derste de aşağıdaki örnek tablomuzu kullanacağız.</p>
<p><em>tablo: personel</em></p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
</tbody>
</table>
<p class="em"><strong>Not:</strong> Tablodaki ID alanı birincil anahtar; ID, dtarihi ve maas alanları sayısal, diğerleri metin tiptedir. Ayrıca normal şartlarda bolum ve dyeri alanlarında ilişki kurulması gerekir. Fakat burada konuyu basit tutmak amacıyla bilgiler bu şekilde kaydedilmiştir.</p>
<h3 class="baslik2">ORDER BY ile Sıralama Yapmak</h3>
<p>Önceki derslerden de bilindiği üzere <a title="SQL'de SELECT Komutu" href="http://ozguryaman.com/sqlde-select-komutu/">SELECT</a> deyimini kullanarak veritabanımızda bulunan tablolardaki verileri çekebiliyorduk. Normal şartlarda SELECT ile sorguladığımız veriler tabloya kayededilme sırasına göre elde edilir. Fakat bu normal akışı ORDER BY deyimi aracılığıyla değiştirebiliriz. Yani yukarıdaki tabloda personel bilgilerini doğum tarihlerine göre artan/azalan sırada çekebiliriz. ORDER BY deyimi yalnızca SELECT ile beraber kullanılır ve formatı şu şekildedir.</p>
<p><strong>SELECT</strong> [alanlar] <strong>WHERE</strong> [şartlar] <strong>ORDER BY</strong> [sıralama alanı] <strong>ASC/DESC</strong></p>
<p>Burada WHERE ifadesinin kullanılması seçimliktir. Yani şart belirtilmeyecekse, kullanılmayabilir. ORDER BY ifadesinden sonra sıralama yapacağımız alanı belirtiyoruz. En sonda ise artan veya azalan şekilde sıralamayı belirtmek için ASC veya DESC ifadesini kullanıyoruz. ASC artan, DESC azalan sıralamayı ifade eder. Şimdi örneklerimize başlayalım:</p>
<p>[sql]SELECT * FROM personel ORDER BY dtarihi ASC[/sql]</p>
<p>Bu sorguda personel tablosundaki tüm veriler (*) dtarihi alanına göre artan sırada seçilecek. Artan sırada olması ASC yazmamızdan kaynaklanıyor. DESC yazsaydık, azalan sırada seçilecekti. Ayrıca eğer artan sıralama yapmak istiyorsak ASC yazmamıza gerek yoktur. Çünkü varsayılanı ASC'dir. Dolayısıyla yukarıdaki sorgunun dengi şudur:</p>
<p>[sql]SELECT * FROM personel ORDER BY dtarihi [/sql]</p>
<p>Bu iki sorgunun sonucu da aşağıdaki kayıtsetini döndürür:</p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
</tbody>
</table>
<p>Başka bir örnekle devam edelim:</p>
<p>[sql]SELECT * FROM personel ORDER BY maas DESC [/sql]</p>
<p>Bu sorguya göre personel tablosundaki tüm veriler maas alanına göre azalan sırada seçilecek:</p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
</tbody>
</table>
<p>Şimdiki örnekte ORDER BY ile sayısal alanlar yerine karaktersel alanlarda nasıl sıralama yapılacağıyla ilgili bir örnek yapacağız.</p>
<p>[sql]SELECT * FROM personel ORDER BY dyeri DESC [/sql]</p>
<p>Bu sorguya göre personel tablosundaki tüm veriler dyeri alanına göre azalan sırada seçilecek:</p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
</tbody>
</table>
<p>Sıralama yapmak için karaktersel bir alan kullanılırsa sıralama A'dan Z'ye veya tam tersi şeklinde gerçekleşir. Son bir örnekle bitirelim:</p>
<p>[sql]SELECT * FROM personel ORDER BY bolum ASC, dtarihi DESC [/sql]</p>
<p>Bu sorguda da personel tablosundaki tüm verileri önce bölümlere göre A'dan Z'ye doğru, eğer bölümlerde eşit kayıtlar varsa da dtarihi alanına göre azalan sırada listeledik:</p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
</tbody>
</table>
<p>Örneklerimiz bu kadar, faydalı olması dileğiyle.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozguryaman.com/sqlde-order-by-deyimi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL&#039;de INSERT INTO Komutu</title>
		<link>http://ozguryaman.com/sqlde-insert-into-komutu/</link>
		<comments>http://ozguryaman.com/sqlde-insert-into-komutu/#comments</comments>
		<pubDate>Sat, 05 May 2012 05:50:35 +0000</pubDate>
		<dc:creator>Özgür YAMAN</dc:creator>
				<category><![CDATA[Veritabanı]]></category>
		<category><![CDATA[INSERT INTO]]></category>
		<category><![CDATA[sorgulama]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://ozguryaman.com/?p=738</guid>
		<description><![CDATA[SQL'de veritabanına kayıt eklemek için INSERT INTO deyimini kullanırız. Bu derste örnek bir tablo üzerinde INSERT INTO deyiminin kullanımıyla ilgili bazı örnekler yapacağız. Önceki derslerde de olduğu gibi, bu derste de aşağıdaki örnek tablomuzu kullanacağız. tablo: personel ID isim bolum dtarihi dyeri maas 24 Aylin Demiray Muhasebe 1982 Niğde 1100 42 Mehmet Eroğlu Bilgi İşlem [...]]]></description>
			<content:encoded><![CDATA[<p>SQL'de veritabanına kayıt eklemek için INSERT INTO deyimini kullanırız. Bu derste örnek bir tablo üzerinde INSERT INTO deyiminin kullanımıyla ilgili bazı örnekler yapacağız.<span id="more-738"></span></p>
<p>Önceki derslerde de olduğu gibi, bu derste de aşağıdaki örnek tablomuzu kullanacağız.</p>
<p><em>tablo: personel</em></p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
</tbody>
</table>
<p class="em"><strong>Not:</strong> Tablodaki ID alanı birincil anahtar, ID, dtarihi ve maas alanları sayısal, diğerleri metin tiptedir. Ayrıca normal şartlarda bolum ve dyeri alanlarında ilişki kurulması gerekir. Fakat burada konuyu basit tutmak amacıyla bilgiler bu şekilde kaydedilmiştir.</p>
<p>INSERT INTO deyiminin formatı şu şekildedir:</p>
<p><strong>INSERT INTO</strong> [tablo adı]<strong>(</strong>alan adları<strong>)</strong> <strong>VALUES</strong> <strong>(</strong>veriler<strong>)</strong></p>
<p>Bu formata göre INSERT INTO deyiminden sonra kayıt eklemek istediğimiz tablonun adını yazıyoruz. Tablo adından sonra parantez içerisinde tabloda veri eklemek istediğimiz alanları belirtiyoruz. Son olarak sıralı bir şekilde alanlara karşılık gelen verileri yazıyoruz. Burada tablo adından sonra alanları belirtmezsek, tabloda bulunan bütün alanlara veri gireceğimiz anlamına gelir. Basit bir örnekle başlayalım:</p>
<p>[sql]INSERT INTO personel VALUES(65,'Metin Yıldız','Reklam',1975,'İstanbul',1350)[/sql]</p>
<p>Bu SQL komutunda tablodan sonra herhangi bir alan adı belirtmedik. Dolayısıyla tablodaki bütün alanlara karşılık gelen değerleri VALUES (değerler) ifadesinden sonra yazdık. Ayrıca eğer ID alanı otomatik sayı olsaydı, otomatik sayıya dışardan değer giremeyeceğimiz için o kısmı es geçmemiz gerekecekti. Fakat buradaki tabloda metin tipinde olduğu için kendimiz girdik. Yine burada dikkat edilmesi gereken başka bir husus, metin tipindeki alanlara ekleyeceğimiz verileri tek tırnak arasına alıyoruz. Bu komuttan sonra tablomuza yeni bir kayıt eklenecek ve tablonun son hali şu şekilde olacaktır:</p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
<tr>
<td align="center">65</td>
<td>Metin Yıldız</td>
<td>Reklam</td>
<td align="center">1975</td>
<td>İstanbul</td>
<td>1350</td>
</tr>
</tbody>
</table>
<p>Başka bir örnekle devam edelim. Bu kez tablodaki belirli alanlara veri girişi yapacağız:</p>
<p>[sql]INSERT INTO personel(ID,isim,bolum) VALUES(71,'Serap Demirci','Reklam')[/sql]</p>
<p>Bu komuttan sonra tabloya yine bir kayıt ekelenecek, fakat bu kez sadece belirtilen alanlara veri eklenecek diğer alanlar boş kalacaktır. Dolayısıyla tablonun son hali şu şekilde olacaktır.</p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
<tr>
<td align="center">65</td>
<td>Metin Yıldız</td>
<td>Reklam</td>
<td align="center">1975</td>
<td>İstanbul</td>
<td>1350</td>
</tr>
<tr>
<td align="center">71</td>
<td>Serap Demirci</td>
<td>Reklam</td>
<td align="center"></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>Görüldüğü üzere dtarihi, dyeri, ve maas alanları boş kaldı. Eğer daha sonradan bu boş alanlara veri girilmek istenirse <a title="SQL'de UPDATE Komutu" href="http://ozguryaman.com/sqlde-update-komutu/">UPDATE</a> deyiminin kullanılması gerekir.</p>
<p>Özetlersek; INSERT INTO tablolara veri eklemek için kullanılıyor. İki şekilde kullanımı mevcut. Birinde alan adı belirtilmeksizin bütün alanlara veri giriliyor. İkincisinde ise sadece belirli alanlara veri giriliyor. Örneklerimiz bu kadar, faydalı olması dileğiyle.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozguryaman.com/sqlde-insert-into-komutu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL&#039;de UPDATE Komutu</title>
		<link>http://ozguryaman.com/sqlde-update-komutu/</link>
		<comments>http://ozguryaman.com/sqlde-update-komutu/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 09:24:05 +0000</pubDate>
		<dc:creator>Özgür YAMAN</dc:creator>
				<category><![CDATA[Veritabanı]]></category>
		<category><![CDATA[sorgulama]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[UPDATE]]></category>

		<guid isPermaLink="false">http://ozguryaman.com/?p=734</guid>
		<description><![CDATA[SQL dilinde UPDATE deyimi, veritabanında bulunan verileri değiştirmek-güncellemek amacıyla kullanılan bir deyimdir. Bu derste UPDATE deyiminin kullanımıyla ilgili bazı örnekler yapacağız. Önceki derslerde de olduğu gibi, bu derste de aşağıdaki örnek tablomuzu kullanacağız. tablo: personel ID isim bolum dtarihi dyeri maas 24 Aylin Demiray Muhasebe 1982 Niğde 1100 42 Mehmet Eroğlu Bilgi İşlem 1977 Ankara [...]]]></description>
			<content:encoded><![CDATA[<p>SQL dilinde UPDATE deyimi, veritabanında bulunan verileri değiştirmek-güncellemek amacıyla kullanılan bir deyimdir. Bu derste UPDATE deyiminin kullanımıyla ilgili bazı örnekler yapacağız.</p>
<p><span id="more-734"></span></p>
<p>Önceki derslerde de olduğu gibi, bu derste de aşağıdaki örnek tablomuzu kullanacağız.</p>
<p><em>tablo: personel</em></p>
<table>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
</table>
<p class="em"><strong>Not:</strong> Tablodaki ID alanı birincil anahtar, ID, dtarihi ve maas alanları sayısal, diğerleri metin tiptedir. Ayrıca normal şartlarda bolum ve dyeri alanlarında ilişki kurulması gerekir. Fakat burada konuyu basit tutmak amacıyla bilgiler bu şekilde kaydedilmiştir.</p>
<p>UPDATE deyiminin formatı şu şekildedir:</p>
<p><strong>UPDATE </strong>[tablo adı] <strong>SET</strong> [yeni bilgiler] <strong>WHERE</strong> [şartlar]</p>
<p>Bu formata göre UPDATE deyiminden sonra hangi veritabanı tablosunda güncelleme yapmak istiyorsak o tablonun adını yazıyoruz. SET deyiminden sonra değiştirmek istediğimiz bilgileri giriyoruz. Son olarak WHERE ifadesinden sonra değiştirme işlemi yapacağımız kayıtlarla ilgili şartı veya şartları yazıyoruz. WHERE ifadesinin kullanımı zorunlu değildir, fakat WHERE kullanılmazsa bütün kayıtlar değiştirme işleminden etkilenecektir. Basit bir örnekle başlayalım: </p>
<p>        [sql]UPDATE personel SET bolum='İdari'[/sql]</p>
<p>Bu SQL komutu herhangi bir şart aramaksızın (WHERE deyimini kullanmadık), personel tablosunda bulunan kayıtların bölümünü <em>İdari</em> olarak değiştirir.</p>
<p>Başka bir örnekle devam edelim. Bu örnekte bölümü Bilgi İşlem olan kayıtlardaki Bilgi İşlem kısmını Veri Güvenliği olarak değiştirmek istiyoruz. Dolayısıyla komutumuz şu şekilde olacak:</p>
<p>        [sql]UPDATE personel SET bolum='Veri Güvenliği' WHERE bolum='Bilgi İşlem'[/sql]</p>
<p>Bu komuttan sonra tabloda, şartı sağlayan iki kayıt güncellenecek ve tablomuzun son hali şu şekilde olacaktır:</p>
<table>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Veri Güvenliği</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Veri Güvenliği</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
</table>
<p>Tablonun son halini kullanarak, başka bir örnekle devam ediyoruz:</p>
<p>        [sql]UPDATE personel SET dtarihi=1978 AND dyeri='Kırıkkale' WHERE ID=42[/sql]</p>
<p>Bu SQL komutunda AND kullanarak iki alanı güncelledik, sonuç olarak, ID'si 42 olan kayıtta <em>dtarihi</em> alanı 1978 ve <em>dyeri</em> alanı Kırıkkale olarak değişecektir:</p>
<table>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Veri Güvenliği</td>
<td align="center">1978</td>
<td>Kırıkkale</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Veri Güvenliği</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
</table>
<p>Bu örnekte ise UPDATE deyiminin matematiksel olarak kullanımıyla ilgili bir örnek yapıyoruz:</p>
<p>        [sql]UPDATE personel SET maas=maas+100 WHERE ID=61[/sql]</p>
<p>ID numarası 61 olan personelin maaşını 100 <strong>arttırdık</strong>. Tablonun en son haline bakacak olursak:</p>
<table>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Veri Güvenliği</td>
<td align="center">1978</td>
<td>Kırıkkale</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Veri Güvenliği</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1400</td>
</tr>
</table>
<p>Buradaki toplama işlemi gibi çıkarma, çarpma, bölme gibi işlemler de UPDATE deyimi ile birlikte yapılabilir. Bu kadar örnek yeterli olmuştur umarım. Faydalı olması dileğiyle.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozguryaman.com/sqlde-update-komutu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL&#039;de Delete Komutu</title>
		<link>http://ozguryaman.com/sqlde-delete-komutu/</link>
		<comments>http://ozguryaman.com/sqlde-delete-komutu/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 21:03:15 +0000</pubDate>
		<dc:creator>Özgür YAMAN</dc:creator>
				<category><![CDATA[Veritabanı]]></category>
		<category><![CDATA[DELETE]]></category>
		<category><![CDATA[sorgulama]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://ozguryaman.com/?p=728</guid>
		<description><![CDATA[DELETE deyimi, veritabanında bulunan bir tablodaki istenilen kayıtları silmek amacıyla kullanılan temel bir SQL deyimidir. Bu derste örnek bir tablo üzerinde DELETE deyiminin kullanımıyla ilgili bazı örnekler yapacağız. Önceki derslerde de olduğu gibi, bu derste de aşağıdaki örnek tablomuzu kullanacağız. tablo: personel ID isim bolum dtarihi dyeri maas 24 Aylin Demiray Muhasebe 1982 Niğde 1100 [...]]]></description>
			<content:encoded><![CDATA[<p>DELETE deyimi, veritabanında bulunan bir tablodaki istenilen kayıtları silmek amacıyla kullanılan temel bir SQL deyimidir. Bu derste örnek bir tablo üzerinde DELETE deyiminin kullanımıyla ilgili bazı örnekler yapacağız.<span id="more-728"></span></p>
<p>Önceki derslerde de olduğu gibi, bu derste de aşağıdaki örnek tablomuzu kullanacağız.</p>
<p><em>tablo: personel</em></p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
</tbody>
</table>
<p class="em"><strong>Not:</strong> Tablodaki ID alanı birincil anahtar, ID, dtarihi ve maas alanları sayısal, diğerleri metin tiptedir. Ayrıca normal şartlarda bolum ve dyeri alanlarında ilişki kurulması gerekir. Fakat burada konuyu basit tutmak amacıyla bilgiler bu şekilde kaydedilmiştir.</p>
<p>DELETE deyiminin formatı şu şekildedir:</p>
<p><strong>DELETE</strong> <strong>FROM</strong> [tablo adı] <strong>WHERE</strong> [şartlar]</p>
<p>Burada önemli bir noktaya temas etmek istiyorum. DELETE deyimiyle yapılan işlemler sonucunda kayıt veya kayıtlar tamamen silinir. Örneğin; yukarıdaki tablodan ID'si 61 olan kaydı silmek istersek kayıt tamamen silinir, yani tabloda artık 3 kayıt kalır. Bir kayıttaki belli alanları silmek (temizlemek) istersek UPDATE deyimini kullanırız.</p>
<p>Bu formatta ilk dikkatimizi çeken şey DELETE deyiminden sonra hiçbir alan adı belirtmiyoruz. Basit bir örnekle başlayalım:</p>
<p>[sql]DELETE FROM personel[/sql]</p>
<p>Bu SQL komutu herhangi bir şart aramaksızın (WHERE deyimini kullanmadık), personel tablosunda bulunan kayıtların hepsini siler. Fakat burada dikkat edilmesi gereken husus, bu işlemden sonra personel tablosu yapısını aynen korur. Yani içindeki kayıtlar silinir ama tablo yapısı, alan isimleri, veri türleri, birincil anahtar, vs. hepsi korunur. Eğer tabloyu içindeki kayıtlarla beraber tamamen silmek istersek DELETE yerine DROP TABLE komutunu kullanırız.</p>
<p>Başka bir örnekle devam edelim. Bu örnekte bölümü Muhasebe olan kayıtları silmek istiyoruz. Dolayısıyla komutumuz şu şekilde olacak:</p>
<p>[sql]DELETE FROM personel WHERE bolum='Muhasebe'[/sql]</p>
<p>Bu komuttan sonra tablodan şartı sağlayan bir kayıt silinecek ve tablonun son hali şu şekilde olacaktır.</p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
</tbody>
</table>
<p>Başka bir örnekle devam ediyoruz:</p>
<p>[sql]DELETE FROM personel WHERE dTarihi&gt;1975 AND dTarihi&lt;1985[/sql]</p>
<p>Bu sorgunun anlamı da şudur: Personel tablosundan doğum tarihi 1975'ten büyük <strong>ve</strong> 1985'ten küçük (1975 ile 1985 yılları arasında) olan kayıtları sil. Orijinal tablomuzdaki kayıtlardan 3 tanesi bu şartı sağlıyor. Dolayısıyla 3 kayıt silincek ve geriye tek bir kayıt kalacaktır:</p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
</tbody>
</table>
<p>Örneklerimiz bu kadar, faydalı olması dileğiyle.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozguryaman.com/sqlde-delete-komutu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Websitesi Yarışmasında Öğrencim Birinci Oldu</title>
		<link>http://ozguryaman.com/websitesi-yarismasinda-ogrencim-birinci-oldu/</link>
		<comments>http://ozguryaman.com/websitesi-yarismasinda-ogrencim-birinci-oldu/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 15:18:09 +0000</pubDate>
		<dc:creator>Özgür YAMAN</dc:creator>
				<category><![CDATA[Kişisel]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[yarışma]]></category>

		<guid isPermaLink="false">http://ozguryaman.com/?p=722</guid>
		<description><![CDATA[Niğde İl Milli Eğitim Müdürlüğü tarafından düzenlenen "Anlat Niğde'ni" konulu web sitesi yarışmasına 11A sınıfından katılan öğrencim Mert BALDIR birinci oldu. Öğrencimi kazandığı bu başarısından dolayı tebrik ediyorum. Böyle bir alanda birincilik kazandığı için de ayrıca mutlu ve gururlu olduğumu belirtmek istiyorum. Mert'in yapmış olduğu websitesini görüntüleyin.]]></description>
			<content:encoded><![CDATA[<p>Niğde İl Milli Eğitim Müdürlüğü tarafından düzenlenen "Anlat Niğde'ni" konulu web sitesi yarışmasına 11A sınıfından katılan öğrencim Mert BALDIR birinci oldu. Öğrencimi kazandığı bu başarısından dolayı tebrik ediyorum. Böyle bir alanda birincilik kazandığı için de ayrıca mutlu ve gururlu olduğumu belirtmek istiyorum. <a href="http://nigde.meb.gov.tr/haberler/haberresim/2012-web-tasarim-sonuc/TML_Mert%20BALDIR/" target="_blank">Mert'in yapmış olduğu websitesini görüntüleyin.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ozguryaman.com/websitesi-yarismasinda-ogrencim-birinci-oldu/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>SQL&#039;de SELECT Komutu</title>
		<link>http://ozguryaman.com/sqlde-select-komutu/</link>
		<comments>http://ozguryaman.com/sqlde-select-komutu/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 20:36:08 +0000</pubDate>
		<dc:creator>Özgür YAMAN</dc:creator>
				<category><![CDATA[Veritabanı]]></category>
		<category><![CDATA[SELECT]]></category>
		<category><![CDATA[sorgulama]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://ozguryaman.com/?p=716</guid>
		<description><![CDATA[Bu dersimizde SQL'deki en temel deyimlerden biri olan SELECT deyimini öğreneceğiz. SELECT deyimi veritabanındaki bir veya birden fazla tablodan veri almak için kullanılır. Örneğin web sitemizde veritabanında bulunan herhangi bir bilgiyi (mesela bir üyenin detaylı bilgilerini) sayfada göstermek istersek, ilgili tablo(lar)daki verileri SELECT deyimi ile alırız. Bu işleme sorgulama denir. Bu derste aşağıdaki örnek tabloyu [...]]]></description>
			<content:encoded><![CDATA[<p>Bu dersimizde SQL'deki en temel deyimlerden biri olan SELECT deyimini öğreneceğiz. SELECT deyimi veritabanındaki bir veya birden fazla tablodan <strong>veri almak</strong> için kullanılır. Örneğin web sitemizde veritabanında bulunan herhangi bir bilgiyi (mesela bir üyenin detaylı bilgilerini) sayfada göstermek istersek, ilgili tablo(lar)daki verileri SELECT deyimi ile alırız. Bu işleme <strong>sorgulama</strong> denir. <span id="more-716"></span>Bu derste aşağıdaki örnek tabloyu kullanacağız:</p>
<p><em>tablo: personel</em></p>
<table>
<tr>
<th>ID</th>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
<th>dyeri</th>
<th>maas</th>
</tr>
<tr>
<td align="center">24</td>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
<td>Niğde</td>
<td>1100</td>
</tr>
<tr>
<td align="center">42</td>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
<td>Ankara</td>
<td>1450</td>
</tr>
<tr>
<td align="center">54</td>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
<td>Konya</td>
<td>1400</td>
</tr>
<tr>
<td align="center">61</td>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
<td>İstanbul</td>
<td>1300</td>
</tr>
</table>
<p><strong>Not:</strong> Tablodaki ID alanı birincil anahtar, ID, dtarihi ve maas alanları sayısal, diğerleri metin tiptedir. Ayrıca normal şartlarda bolum ve dyeri alanlarında ilişki kurulması gerekir. Fakat burada konuyu basit tutmak amacıyla bilgiler bu şekilde kaydedilmiştir.</p>
<p>Yukarıdaki örnek tabloda bir firmanın personel bilgileri tutulmaktadır. Burada her bir personele özgü bir ID numarası, personelin adı, çalıştığı bölüm, doğum yeri, doğum tarihi ve maaş bilgileri saklanmaktadır. Bizim amacımız SELECT deyimini kullanarak bu tablodaki verilere ulaşmak.</p>
<p>Bu derste kullanacağımız SELECT deyiminin yapısı şu şekildedir:</p>
<p><strong>SELECT</strong> [alanlar] <strong>FROM</strong> [tablo adı]</p>
<p>Bu formata göre alanlar kısmına veritabanındaki hangi alanları elde etmek istiyorsak onların isimlerini virgülle ayırarak yazarız. FROM'dan sonra ise tablonun adını yazmamız gerekiyor. Hemen bir örnekle açıklayalım: </p>
<p>[sql]SELECT isim, bolum, dtarihi FROM personel[/sql]</p>
<p>Bu sorgu, personel tablosundaki isim, bölüm ve dtarihi alanlarındaki verileri getirir. Dolayısıyla bu sorgunun sonucunda şu verileri elde ederiz:</p>
<table>
<tr>
<th>isim</th>
<th>bolum</th>
<th>dtarihi</th>
</tr>
<tr>
<td>Aylin Demiray</td>
<td>Muhasebe</td>
<td align="center">1982</td>
</tr>
<tr>
<td>Mehmet Eroğlu</td>
<td>Bilgi İşlem</td>
<td align="center">1977</td>
</tr>
<tr>
<td>Selim Kaya</td>
<td>Bilgi İşlem</td>
<td align="center">1965</td>
</tr>
<tr>
<td>Sevda Gökalp</td>
<td>Arşiv</td>
<td align="center">1980</td>
</tr>
</table>
<p>Peki personel tablosundaki bütün alanlardaki verileri elde etmek istersek? Tabloda bulunan bütün alanları virgülle ayırarak yazabiliriz. Fakat bunun daha kolay bir yolu var:</p>
<p>[sql]SELECT * FROM personel[/sql]</p>
<p>SELECT'ten sonra yazdığımız * ifadesi tabloda bulunan <strong>bütün alanları</strong> seçmemizi sağlar. Dolayısıyla bu sorgunun sonucunda tablodaki bütün verileri elde etmiş oluruz.</p>
<p>SQL dersleri diğer konularla devam edecek.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozguryaman.com/sqlde-select-komutu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP&#039;de Veritabanı İşlemleri</title>
		<link>http://ozguryaman.com/phpde-veritabani-islemleri-mysql-baglantisi/</link>
		<comments>http://ozguryaman.com/phpde-veritabani-islemleri-mysql-baglantisi/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 15:27:08 +0000</pubDate>
		<dc:creator>Özgür YAMAN</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sorgu]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[veritabanı]]></category>

		<guid isPermaLink="false">http://ozguryaman.com/?p=707</guid>
		<description><![CDATA[Bu derste PHP'de MySQL'e bağlanarak veritabanı işlemlerini nasıl gerçekleştirebileceğimizi göreceksiniz. Bu işlem toplam 4 adımda yapılıyor: MySQL'e bağlanma Veritabanını seçme SQL sorgusunu yapma Bağlantıyı kapatma Örnek: Okul veritabanında bulunan ogrenci tablosundaki ID'si 22 olan kaydı silmek için aşağıdaki PHP kodunu kullanmalıyız. [php] // MySQL'e bağlanıyoruz. Sunucumuz localhost, kullanıcı adı root ve şifre boş $baglanti = [...]]]></description>
			<content:encoded><![CDATA[<p>Bu derste PHP'de MySQL'e bağlanarak veritabanı işlemlerini nasıl gerçekleştirebileceğimizi göreceksiniz. Bu işlem toplam 4 adımda yapılıyor:</p>
<ol>
<li>MySQL'e bağlanma</li>
<li>Veritabanını seçme</li>
<li>SQL sorgusunu yapma</li>
<li>Bağlantıyı kapatma</li>
</ol>
<p><span id="more-707"></span></p>
<p><strong>Örnek:</strong> Okul veritabanında bulunan ogrenci tablosundaki ID'si 22 olan kaydı silmek için aşağıdaki PHP kodunu kullanmalıyız.</p>
<p>[php]<br />
// MySQL'e bağlanıyoruz. Sunucumuz localhost, kullanıcı adı root ve şifre boş<br />
$baglanti = mysql_connect("localhost", "root", "");</p>
<p>// Okul veritabanı üzerinde çalışacağımız için bu veritabanını seçiyoruz<br />
mysql_select_db("okul");</p>
<p>// SQL sorgumuzu yazıyoruz<br />
mysql_query("DELETE FROM ogrenci WHERE ID=22");</p>
<p>// Son olarak bağlantımızı kapatıyoruz<br />
mysql_close($baglanti);<br />
?&gt;</p>
<p>[/php]</p>
<p>Bu yapı diğer tüm işlemlerde de geçerli. Mesela kayıt eklerken ya da güncellerken de aynı yapıyı kullanıyoruz. Sadece mysql_query fonksiyonunda belirttiğimiz SQL cümlesini değiştirmemiz gerekiyor. SELECT'li sorgularda ise yine aynı yapı kullanılıyor olmasına rağmen, çekilen bilgiler ekranda gösterilmek istendiğinde while döngüsü kullanmamız gerekiyor:</p>
<p>[php]</p>
<p>// MySQL'e bağlanıyoruz. Sunucumuz localhost, kullanıcı adı root ve şifre boş<br />
$baglanti = mysql_connect("localhost", "root", "");</p>
<p>// Okul veritabanı üzerinde çalışacağımız için bu veritabanını seçiyoruz<br />
mysql_select_db("okul");</p>
<p>// SQL sorgumuzu yazıyoruz<br />
$sorgu = mysql_query("SELECT * FROM sinif");</p>
<p>// Sorgu sonucu elde edilen bilgilerden ogretmen alanını alt alta ekrana yazdırıyoruz<br />
while ($sonuc=mysql_fetch_assoc($sorgu)) {<br />
echo("$sonuc[ogretmen]&lt;br/&gt;");<br />
}</p>
<p>// Son olarak bağlantımızı kapatıyoruz<br />
mysql_close($baglanti);<br />
?&gt;</p>
<p>[/php]</p>
<p>Yukarıdaki kodlarda okul veritabanına bağlanarak sinif tablosundaki tüm kayıtlar sorgulanıyor. Daha sonra while döngüsü yardımıyla çekilen bilgiler ekrana yazdırılıyor. Burada sadece ogretmen alanı ekrana yazdırılmış. Mesela sube adında bir alanı yazdırmak isteseydik, $sonuc[sube] ifadesini kullanmamız gerekecekti.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozguryaman.com/phpde-veritabani-islemleri-mysql-baglantisi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doğrulama Kontrolleri ile İlgili Genel Uygulama</title>
		<link>http://ozguryaman.com/dogrulama-kontrolleri-ile-ilgili-genel-uygulama/</link>
		<comments>http://ozguryaman.com/dogrulama-kontrolleri-ile-ilgili-genel-uygulama/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 06:19:08 +0000</pubDate>
		<dc:creator>Özgür YAMAN</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[form doğrulama]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://ozguryaman.com/?p=696</guid>
		<description><![CDATA[ASP.NET bölümününün 7.dersinde anlattığım "Doğrulama Kontrolleri" ile ilgili tamamlayıcı bir soru hazırladım. Bu soruda istenenleri yapabildiğiniz taktirde, konuyu anlamışsınız demektir. Kaynak kodları yazının sonunda bulabilirsiniz. Soru: Otel Rezervasyon Formu Kullanıcıdan istenen bilgiler: Adı Soyadı Kaç kişi kalacak 0-6 yaş arası çocuk var mı? (E-H) Rezervasyon tarihi Ayrılma tarihi Tc Kimlik Numarası Mail adresi Doğrulama Kuralları: [...]]]></description>
			<content:encoded><![CDATA[<p>ASP.NET bölümününün 7.dersinde anlattığım "<a title="7.Ders: ASP.NET'te Form Doğrulama Bileşenleri (Form Validation)" href="http://ozguryaman.com/asp-nette-form-dogrulama-bilesenleri-validation-controls/">Doğrulama Kontrolleri</a>" ile ilgili tamamlayıcı bir soru hazırladım. Bu soruda istenenleri yapabildiğiniz taktirde, konuyu anlamışsınız demektir. Kaynak kodları yazının sonunda bulabilirsiniz.<span id="more-696"></span></p>
<h2>Soru: Otel Rezervasyon Formu</h2>
<p>Kullanıcıdan istenen bilgiler:</p>
<ul>
<li>Adı Soyadı</li>
<li>Kaç kişi kalacak</li>
<li>0-6 yaş arası çocuk var mı? (E-H)</li>
<li>Rezervasyon tarihi</li>
<li>Ayrılma tarihi</li>
<li>Tc Kimlik Numarası</li>
<li>Mail adresi</li>
</ul>
<p>Doğrulama Kuralları:</p>
<ul>
<li>Tüm alanlar doldurulmak zorunda</li>
<li>Adı soyadı rakamla başlayamaz</li>
<li>Kalacak kişi sayısı 1 ile 10 arasında bir tamsayı olmalı</li>
<li>0-6 yaş arası çocuk cevabı E veya H olmalı (Başka harf veya sayı olamaz)</li>
<li>Rezervasyon tarihi bugünden sonraki bir tarih olmalı</li>
<li>Ayrılma tarihi rezervasyon tarihinden sonraki bir tarih olmalı</li>
<li>TC kimlik ve Mail kurallara uygun olmalı</li>
<li>Oluşan hatalar için ValidationSummary bileşeni de kullanılacaktır.</li>
</ul>
<p class="download"><a href="http://ozguryaman.com/files/wp-content/uploads/2012/04/validation.rar">Bu örneğin kodlarını indir (Gülcan Pınar tarafından yazıldı)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ozguryaman.com/dogrulama-kontrolleri-ile-ilgili-genel-uygulama/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7.Ders: ASP.NET&#039;te Form Doğrulama Bileşenleri (Form Validation)</title>
		<link>http://ozguryaman.com/asp-nette-form-dogrulama-bilesenleri-validation-controls/</link>
		<comments>http://ozguryaman.com/asp-nette-form-dogrulama-bilesenleri-validation-controls/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 18:06:20 +0000</pubDate>
		<dc:creator>Özgür YAMAN</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[form doğrulama]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://ozguryaman.com/?p=681</guid>
		<description><![CDATA[Bu derste ASP.NET ile form doğrulama konusuna değiniyoruz. Form doğrulama; kullanıcının herhangi bir form elemanına bizim istediğimiz biçimde veri girmesini sağlamak için kullanılır. Örnek vermek gerekirse; kullanıcının doğum tarihi alanına geçersiz bir tarih yazmasını, gerekli bir alanı boş geçmesini, sayı yazacağı yerde metin yazmasını engellemek için bu kontrolleri kullanırız. Form Doğrulama Kontrolleri (Validation Controls) ASP.NET'te [...]]]></description>
			<content:encoded><![CDATA[<p>Bu derste ASP.NET ile form doğrulama konusuna değiniyoruz. Form doğrulama; kullanıcının herhangi bir form elemanına bizim istediğimiz biçimde veri girmesini sağlamak için kullanılır. Örnek vermek gerekirse; kullanıcının doğum tarihi alanına geçersiz bir tarih yazmasını, gerekli bir alanı boş geçmesini, sayı yazacağı yerde metin yazmasını engellemek için bu kontrolleri kullanırız.<span id="more-681"></span></p>
<h2>Form Doğrulama Kontrolleri (Validation Controls)</h2>
<p>ASP.NET'te 6 adet form doğrulama kontrolü mevcuttur. Bunlar;</p>
<ol>
<li><a href="#b1">RequiredFieldValidator</a></li>
<li><a href="#b2">RangeValidator</a></li>
<li><a href="#b3">CompareValidator</a></li>
<li><a href="#b4">RegularExpressionValidator</a></li>
<li><a href="#b5">CustomValidator</a></li>
<li><a href="#b6">ValidationSummary</a></li>
</ol>
<p>Biz de bu derste bu kontrollerin nasıl kullanıldıklarını öğreneceğiz.</p>
<h2 id="b1">1. RequiredFieldValidator (Gerekli Alan Doğrulayıcısı)</h2>
<p>Bu kontrol ile formumuzda bulunan herhangi bir alanın kullanıcı tarafından boş geçilmemesini sağlarız. Bu kontrolün kullanımı şu şekildedir:</p>
<p>[vbnet]<br />
&lt;asp:RequiredFieldValidator<br />
ID="reqIsim"<br />
ControlToValidate="txtIsim"<br />
Text="Gerekli"<br />
runat="server"/&gt;<br />
[/vbnet]</p>
<p>Buradaki ControlToValidate parametresi hangi elemanın kontrol edileceğini (burada txtIsim adındaki metin kutusunu kastediyor) belirtiyor. Text parametresi ise doğrulama gerçekleşmediğinde, yani eleman boş bırakıldığında gösterilecek hata mesajını ifade ediyor.</p>
<h2 id="b2">2. RangeValidator (Aralık Doğrulayıcısı)</h2>
<p>Bu kontrol ile kullanıcının belirli aralıklardaki değerleri girmesini sağlayabiliriz. Kullanımı şu şekildedir:</p>
<p>[vbnet]<br />
&lt;asp:RangeValidator<br />
ID="rvSozlu"<br />
ControlToValidate="txtSozlu"<br />
Type="Integer"<br />
MinimumValue="0"<br />
MaximumValue="100"<br />
Text="Geçersiz sayı"<br />
runat="server" /&gt;<br />
[/vbnet]</p>
<p>Daha önce bahsedildiği gibi ControlToValidate parametresi hangi elemanın kontrol edileceğini belirtiyor. Type parametresi ne tür bir veri tipi kullanılacağını belirtiyor. Burada Integer yazarak sayısal bir kontrol yapacağımızı belirttik. Onun yerine String yazarak karakter karşılaştırması da yapabilirdik. MinimumValue ve MaximumValue parametreleri alt ve üst sınırı belirliyor. Text ise yine doğrulama olmazsa, yani 0 ile 100 arasında bir sayı girilmezse gösterilecek hata mesajını belirtiyor.</p>
<p><strong>Önemli Not:</strong> Eğer kontrol edilen alan boş geçilirse, herhangi bir doğrulama hatası meydana gelmez. Aynı durum diğer doğrulama kontrolleri için de geçerlidir. Bunu engellemek için RequiredFieldValidatorkontrolünü, RangeValidator ile beraber kullanmalıyız.</p>
<h2 id="b3">3. CompareValidator (Karşılaştırma Doğrulayıcısı)</h2>
<p>Bu kontrol ile birkaç doğrulama işlemi yapabiliriz. Örneğin formda bulunan bir kontrolü belirli bir değerle kıyaslayabiliriz, iki farklı form elemanını karşılaştırabiliriz veya bir form elemanına belirli bir veri tipinde (tarih veya sayı gibi) değer girilmesini sağlayabiliriz. Örnek kullanımı şu şekildedir:</p>
<p>[vbnet]<br />
&lt;asp:CompareValidator<br />
ID="cvTarih"<br />
ControlToValidate="txtTarih"<br />
Operator="DataTypeCheck"<br />
Type="Date"<br />
Text="Geçersiz tarih"<br />
runat="server" /&gt;<br />
[/vbnet]</p>
<p>Bildiğimiz diğer parametrelerin dışında; Operator parametresi ne tür bir karşılaştırma yapacağımızı belirtiyor. Type ile de veritipini belirtiyoruz. Buradaki örnekte kullanıcının txtTarih alanına geçerli bir tarih girmesi istenmiş. Eğer bu alana 32/22/1988 gibi veya harflerden oluşan geçersiz bir tarih girilirse, hata mesajı görüntülenecektir.</p>
<h2 id="b4">4. RegularExpressionValidator (Düzenli İfade Doğrulayıcısı)</h2>
<p>Bu kontrol ile bir form elemanına girilen bilginin düzenli bir formatta girilip girilmediğini kontrol edebiliriz. Örneğin mail adresi, TC kimlik numarası, telefon numarası gibi belirli bir formatta veri girilmesi gereken form elemanlarında bu kontrolü kullanırız. Aşağıdaki örnekte kullanıcının metin kutusuna geçerli bir mail adresi girmesi gerekiyor.</p>
<p>[vbnet]<br />
&lt;asp:RegularExpressionValidator<br />
ID="revEposta"<br />
ControlToValidate="txtEposta"<br />
ValidationExpression="^\S+@\S+\.\S+$"<br />
Text="Email geçersiz."<br />
runat="server" /&gt;<br />
[/vbnet]</p>
<p>Yukarıdaki kontrol nesnesi txtEposta metin kutusuna geçerli bir mail adresi girilip girilmediğini kontrol ediyor. Bunu da ValidationExpression parametresine yazılan ifade ile sağlıyor. Buradaki ifade karmaşık gelse de biraz incelendiğinde anlamlı olduğu görülecektir. Bu alana değişik ifadeler yazılarak metin kutusuna değişik formattaki verilerin girilmesi sağlanabilir. Bu ifadelerden bazılarını Visual Web Developer veya Visual Studio'da RegularExpressionValidator kontrolünün özelliklerinde bulabilirsiniz. Regular Expressions konusuyla ilgilli detaylı bilgiyi ise <a href="http://www.regexlib.com/">http://www.regexlib.com/</a> adresinden alabilirsiniz.</p>
<h2 id="b5">5. CustomValidator (Özel Doğrulayıcı)</h2>
<p>Eğer yukarıdaki doğrulama kontrollerinden hiçbiri sizin isteğinizi karşılamıyorsa, CustomValidator kontrolü imdadınıza yetişebilir. Şöyle ki bu kontrol ile kendi doğrulama kodlarınızı yazabilirsiniz. Aşağıdaki örnek kullanımına bakalım:</p>
<p>[vbnet]<br />
&lt;asp:CustomValidator<br />
ID="csvYorum"<br />
ControlToValidate="txtYorum"<br />
Text="Yorumunuz çok uzun."<br />
runat="server" /&gt;<br />
[/vbnet]<br />
Burada CustomValidator kontrolünün ServerValidate olayına istediğiniz kodları yazarak, doğrulama fonksiyonunu oluşturabilirsiniz. Bu olay Visual Studio'da kontrole çift tıklayarak oluşturulabilir. Bizim örneğimize göre söz edilen olaya şu kodlar yazılmalıdır:<br />
[vbnet]<br />
Protected Sub csvYorum_ServerValidate1(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles csvYorum.ServerValidate<br />
If args.Value.Length<br />
args.IsValid = True<br />
Else<br />
args.IsValid = False<br />
End If<br />
End Sub<br />
[/vbnet]</p>
<h2 id="b6">6. ValidationSummary (Doğrulama Özeti)</h2>
<p>Son olarak göreceğimiz ValidationSummary kontrolü ile formda bulunan elemanlara eklediğimiz doğrulama kontrollerine göre, doğrulanmayan alanlara ait hata mesajlarını listeleyebiliriz. Yukarıdaki örneklerde diğer kontrollerde hata mesajları için Text parametresini kullandık. Fakat ValidationSummary kontrolünü kullanabilmek için bu diğer kontrollerin ErrorMessage parametrelerini kullanmamız gerekir. Esasında Text ile kısa bir mesaj verip ErrorMesage ile de hatanın biraz daha detaylı hali verilir. ValidationSummary kontrolünün bazı önemli özellikleri şunlardır:</p>
<ul>
<li>DisplayMode: Hata mesajlarının nasıl gösterileceğini belirtir. Alabileceği değerler: BulletList, List, SingleParagraph.</li>
<li>HeaderText: Mesajlar için bir başlık oluşturmamızı sağlar.</li>
<li>ShowMessageBox: Hataları mesaj kutusunda görüntüler.</li>
</ul>
<p>Kodları kısa tutmak maksadıyla, diyelim ki formumuzda birisi ad, birisi de soyad için iki tane metin kutusu olsun. Her iki metin kutusu için de birer adet RequiredFieldValidator kontrolü eklemiş olalım. Bu durumda oluşabilecek hataları ValidationSummary kontrolünde göstermek için aşağıdaki kodları yazmalıyız:<br />
[vbnet]<br />
&lt;asp:ValidationSummary<br />
ID="vs1"<br />
HeaderText="Bazı hatalar oluştu"<br />
DisplayMode="List"<br />
runat="server" /&gt;<br />
[/vbnet]<br />
<strong>Validation Controls ile ilgili bazı önemli bilgiler:</strong></p>
<ol>
<li>Bir form elemanı ile birden fazla doğrulama kontolü ilişkilendirilebilir. Örneğin txtFiyat adındaki metin kutusu ile aynı anda hem RequiredFieldValidator hem de CompareValidator kontrolleri ilişkilendirilebilir. Yani hem bu alanın boş geçilmemesini, hem de bu alana bir sayı girilmesini isteyebiliriz. Bu durumda doğrulama kontrollerinin Display özelliklerini Dynamic yapmak sonuçların daha güzel görünmesini sağlayacaktır.</li>
<li>Page.IsValid özelliği ile sayfadaki form elemanlarının doğrulanıp doğrulanmadığını kontrol edebiliriz. Eğer doğru ise True değeri döndürülür.</li>
<li>Bu işlemler Javascript destekli olarak yürütülürler. Fakat browser'da JS kapalı bile olsa server tarafında aynı işlemler yapılır. Dolayısıyla JS açık veya kapalı olması farketmez.</li>
<li>Eğer sayfada birden fazla form varsa doğrulama kontollerinin ValidationGroups parametrelerine aynı değerlerin atanması gerekir. Mesela birinci forma Login, ikinciye Arama gibi.</li>
</ol>
<p>Konuyla ilgili takıldığınız yerleri aşağıdaki yorum formunu kullanarak iletebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozguryaman.com/asp-nette-form-dogrulama-bilesenleri-validation-controls/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adamlar Yapmış :) Ben Nasıl Düşünemedim!</title>
		<link>http://ozguryaman.com/adamlar-yapmis-ben-nasil-dusunemedim/</link>
		<comments>http://ozguryaman.com/adamlar-yapmis-ben-nasil-dusunemedim/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 07:07:04 +0000</pubDate>
		<dc:creator>Özgür YAMAN</dc:creator>
				<category><![CDATA[Kişisel]]></category>

		<guid isPermaLink="false">http://ozguryaman.com/?p=676</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><iframe style="margin-top:20px" width="420" height="315" src="http://www.youtube.com/embed/bYcF_xX2DE8" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://ozguryaman.com/adamlar-yapmis-ben-nasil-dusunemedim/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

