<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Ömer Yaltırık - Frontend Developer]]></title><description><![CDATA[Ömer Yaltırık Websitesi - Frontend Developer - JavaScript - CSS - Bootstrap - TailwindCSS - C++ - ReactJS - NextJS - Svelte - Sveltekit - Git - Github]]></description><link>https://omeryaltirik.com.tr</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 04:58:23 GMT</lastBuildDate><atom:link href="https://omeryaltirik.com.tr/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[VueJS'te Dahili Özel Nitelikler ('ref', 'key' ve 'is')]]></title><description><![CDATA[key
key özel niteliği, Vue'nun sanal DOM algoritmasına yeni düğüm listesini eski düğüm listesiyle karşılaştırırken düğümleri tanımlaması için bir ipucu verir.

Beklenen Tipler: sayı | string | sembol

Detaylar:

Anahtarlar olmadan, Vue, eleman hareke...]]></description><link>https://omeryaltirik.com.tr/vuejste-dahili-ozel-nitelikler-ref-key-ve-is</link><guid isPermaLink="true">https://omeryaltirik.com.tr/vuejste-dahili-ozel-nitelikler-ref-key-ve-is</guid><category><![CDATA[VueJs Built-in Special Attributes]]></category><category><![CDATA[VueJS Dahili Özel Nitelikler]]></category><category><![CDATA[Vue.js]]></category><dc:creator><![CDATA[Ömer YALTIRIK]]></dc:creator><pubDate>Thu, 13 Jun 2024 18:48:06 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1718304383005/40131055-3c51-4f0a-866f-70b6fdeaaba1.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-key"><code>key</code></h3>
<p><code>key</code> özel niteliği, Vue'nun sanal DOM algoritmasına yeni düğüm listesini eski düğüm listesiyle karşılaştırırken düğümleri tanımlaması için bir ipucu verir.</p>
<ul>
<li><p><strong>Beklenen Tipler:</strong> sayı | string | sembol</p>
</li>
<li><p><strong>Detaylar:</strong></p>
<ul>
<li><p>Anahtarlar olmadan, Vue, eleman hareketini en aza indiren ve aynı türdeki elemanları mümkün olduğunca yerinde düzeltmeye çalışan bir algoritma kullanır.</p>
</li>
<li><p>Anahtarlarla, elemanları anahtarların sırasına göre yeniden sıralar ve artık mevcut olmayan anahtarlara sahip elemanları her zaman kaldırır veya yok eder.</p>
</li>
<li><p>Aynı ebeveynin çocukları benzersiz anahtarlara sahip olmalıdır. Yinelenen anahtarlar render hatalarına neden olur.</p>
</li>
<li><p><strong>Kullanım:</strong></p>
<ul>
<li><p>Genellikle <code>v-for</code> ile kullanılır:</p>
<pre><code class="lang-html">  <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">v-for</span>=<span class="hljs-string">"item in items"</span> <span class="hljs-attr">:key</span>=<span class="hljs-string">"item.id"</span>&gt;</span>{{ item.name }}<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</code></pre>
</li>
<li><p>Ayrıca bir elemanın veya bileşenin yeniden kullanılmak yerine değiştirilmesini zorlamak için de kullanılabilir:</p>
<pre><code class="lang-html">  <span class="hljs-tag">&lt;<span class="hljs-name">transition</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">:key</span>=<span class="hljs-string">"text"</span>&gt;</span>{{ text }}<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">transition</span>&gt;</span>
</code></pre>
<p>  Metin değiştiğinde, <code>&lt;span&gt;</code> her zaman yamalanmak yerine değiştirilecek, bu yüzden bir geçiş tetiklenecek.</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="heading-ref"><code>ref</code></h3>
<p><code>ref</code>, bir elemana veya alt bileşene bir referans kaydetmek için kullanılır.</p>
<ul>
<li><p><strong>Beklenen Tipler:</strong> string | fonksiyon</p>
</li>
<li><p><strong>Detaylar:</strong></p>
<ul>
<li><p>Options API'de, referans bileşenin <code>this.$refs</code> nesnesi altında kaydedilir:</p>
<pre><code class="lang-html">  <span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">ref</span>=<span class="hljs-string">"p"</span>&gt;</span>hello<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
</code></pre>
<pre><code class="lang-javascript">  <span class="hljs-comment">// stored as this.$refs.p</span>
  <span class="hljs-built_in">this</span>.$refs.p
</code></pre>
</li>
<li><p>Composition API'de, referans aynı isimle bir <code>ref</code> içinde saklanır:</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">setup</span>&gt;</span><span class="javascript">
  <span class="hljs-keyword">import</span> { ref } <span class="hljs-keyword">from</span> <span class="hljs-string">'vue'</span>
  <span class="hljs-keyword">const</span> p = ref()
  </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>

  <span class="hljs-tag">&lt;<span class="hljs-name">template</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">ref</span>=<span class="hljs-string">"p"</span>&gt;</span>hello<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">template</span>&gt;</span>
</code></pre>
</li>
<li><p>Alternatif olarak, <code>ref</code> bir fonksiyon değeri kabul edebilir ve bu, referansın nerede saklanacağı konusunda tam kontrol sağlar:</p>
<pre><code class="lang-html">  <span class="hljs-tag">&lt;<span class="hljs-name">ChildComponent</span> <span class="hljs-attr">:ref</span>=<span class="hljs-string">"(el) =&gt; child = el"</span> /&gt;</span>
</code></pre>
</li>
<li><p>Referans kaydının zamanlaması önemlidir: referanslara erişmeden önce bileşenin monte edilmesini beklemelisiniz.</p>
</li>
<li><p><code>this.$refs</code> reaktif değildir, bu yüzden veri bağlama için şablonlarda kullanmamalısınız.</p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-is"><code>is</code></h3>
<p><code>is</code>, dinamik bileşenleri bağlamak için kullanılır.</p>
<ul>
<li><p><strong>Beklenen Tipler:</strong> string | bileşen</p>
</li>
<li><p><strong>Detaylar:</strong></p>
<ul>
<li><p><code>is</code> niteliği bir doğal HTML elemanı üzerinde kullanıldığında, bu, doğal bir web platformu özelliği olan özelleştirilmiş yerleşik eleman olarak yorumlanacaktır.</p>
</li>
<li><p>Ancak, Vue'nun doğal bir elemanı bir Vue bileşeni ile değiştirmesi gerektiği bir kullanım durumu vardır. <code>is</code> niteliğinin değerinin önüne <code>vue:</code> ekleyebilirsiniz:</p>
<pre><code class="lang-html">  <span class="hljs-tag">&lt;<span class="hljs-name">table</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">tr</span> <span class="hljs-attr">is</span>=<span class="hljs-string">"vue:my-row-component"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">table</span>&gt;</span>
</code></pre>
</li>
</ul>
</li>
</ul>
<ul>
<li><p>Kaynak:</p>
<p>  %[https://vuejs.org/api/built-in-special-attributes.html#key]</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[VueJS'te 'v-bind' direktifi nasıl çalışır?]]></title><description><![CDATA[Vue.js, modern web uygulamaları geliştirmek için kullanılan popüler bir JavaScript framework'üdür. v-bind Vue'deki en temel ve kullanışlı direktiflerden biridir. v-bind direktifi, HTML elementlerinin niteliklerini (attributes) Vue bileşeninin veriler...]]></description><link>https://omeryaltirik.com.tr/vuejste-v-bind-direktifi-nasil-calisir</link><guid isPermaLink="true">https://omeryaltirik.com.tr/vuejste-v-bind-direktifi-nasil-calisir</guid><category><![CDATA[v-bind]]></category><category><![CDATA[Vue.js]]></category><category><![CDATA[vue]]></category><category><![CDATA[Vue3]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Vue Framework]]></category><dc:creator><![CDATA[Ömer YALTIRIK]]></dc:creator><pubDate>Thu, 06 Jun 2024 19:41:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1717702596284/18699949-41f4-4d5a-9edf-2bc78fd5a5e4.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Vue.js, modern web uygulamaları geliştirmek için kullanılan popüler bir JavaScript framework'üdür. <code>v-bind</code> Vue'deki en temel ve kullanışlı direktiflerden biridir. <code>v-bind</code> direktifi, HTML elementlerinin niteliklerini (attributes) Vue bileşeninin verilerine (data) bağlamak için kullanılır.</p>
<h3 id="heading-v-bind-direktifinin-mantigi"><code>v-bind</code> Direktifinin Mantığı</h3>
<p><code>v-bind</code> direktifi, HTML'deki herhangi bir nitelik (attribute) ile Vue bileşeninin veri nesnesi (data object) arasındaki bağı kurar. Bu sayede, veri nesnesindeki değişiklikler otomatik olarak ilgili HTML elemanına yansır.</p>
<h3 id="heading-temel-kullanim">Temel Kullanım</h3>
<p>Örnek 1: Bir <code>img</code> etiketinin <code>src</code> niteliğini bağlama</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"app"</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">v-bind:src</span>=<span class="hljs-string">"imageUrl"</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">"Description"</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<p>JavaScript kısmı:</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> app = <span class="hljs-keyword">new</span> Vue({
  <span class="hljs-attr">el</span>: <span class="hljs-string">'#app'</span>,
  <span class="hljs-attr">data</span>: {
    <span class="hljs-attr">imageUrl</span>: <span class="hljs-string">'https://example.com/image.jpg'</span>
  }
});
</code></pre>
<p>Bu örnekte, <code>imageUrl</code> değişkeni değiştirildiğinde, <code>&lt;img&gt;</code> etiketinin <code>src</code> niteliği de otomatik olarak güncellenir.</p>
<h3 id="heading-kisa-kullanim">Kısa Kullanım</h3>
<p><code>v-bind</code> için kısa bir sözdizimi de mevcuttur. <code>:</code> karakteri, <code>v-bind</code> direktifinin kısaltması olarak kullanılabilir.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">:src</span>=<span class="hljs-string">"imageUrl"</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">"Description"</span>&gt;</span>
</code></pre>
<h3 id="heading-dinamik-sinif-class-ve-stil-style-baglama">Dinamik Sınıf (Class) ve Stil (Style) Bağlama</h3>
<p>Vue'de <code>v-bind</code> kullanarak dinamik olarak sınıf ve stil bağlamak da mümkündür.</p>
<p>Örnek 2: Dinamik sınıf bağlama</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"app"</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">:class</span>=<span class="hljs-string">"classObject"</span>&gt;</span>Hello World!<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<p>JavaScript kısmı:</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> app = <span class="hljs-keyword">new</span> Vue({
  <span class="hljs-attr">el</span>: <span class="hljs-string">'#app'</span>,
  <span class="hljs-attr">data</span>: {
    <span class="hljs-attr">classObject</span>: {
      <span class="hljs-string">'active'</span>: <span class="hljs-literal">true</span>,
      <span class="hljs-string">'text-danger'</span>: <span class="hljs-literal">false</span>
    }
  }
});
</code></pre>
<p>Bu örnekte, <code>classObject</code> içindeki <code>active</code> ve <code>text-danger</code> anahtarları true ve false değerleri alarak ilgili sınıfların uygulanmasını sağlar.</p>
<p>Örnek 3: Dinamik stil bağlama</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"app"</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">:style</span>=<span class="hljs-string">"styleObject"</span>&gt;</span>Hello World!<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<p>JavaScript kısmı:</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> app = <span class="hljs-keyword">new</span> Vue({
  <span class="hljs-attr">el</span>: <span class="hljs-string">'#app'</span>,
  <span class="hljs-attr">data</span>: {
    <span class="hljs-attr">styleObject</span>: {
      <span class="hljs-attr">color</span>: <span class="hljs-string">'red'</span>,
      <span class="hljs-attr">fontSize</span>: <span class="hljs-string">'20px'</span>
    }
  }
});
</code></pre>
<p>Bu örnekte, <code>styleObject</code> içindeki <code>color</code> ve <code>fontSize</code> anahtarları, div'in stilini dinamik olarak belirler.</p>
<h3 id="heading-dizi-veya-nesne-baglama">Dizi veya Nesne Bağlama</h3>
<p>Özellikle class ve style gibi özellikler için Vue'de dizi veya nesne kullanarak birden fazla değeri dinamik olarak bağlayabilirsiniz.</p>
<p>Örnek 4: Dizi kullanarak sınıf bağlama</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"app"</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">:class</span>=<span class="hljs-string">"[classA, classB]"</span>&gt;</span>Hello World!<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<p>JavaScript kısmı:</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> app = <span class="hljs-keyword">new</span> Vue({
  <span class="hljs-attr">el</span>: <span class="hljs-string">'#app'</span>,
  <span class="hljs-attr">data</span>: {
    <span class="hljs-attr">classA</span>: <span class="hljs-string">'active'</span>,
    <span class="hljs-attr">classB</span>: <span class="hljs-string">'text-danger'</span>
  }
});
</code></pre>
<p>Bu örnekte, <code>classA</code> ve <code>classB</code> değişkenlerine bağlı olarak <code>active</code> ve <code>text-danger</code> sınıfları div'e eklenir.</p>
<h3 id="heading-ozet">Özet</h3>
<p><code>v-bind</code> direktifi, HTML niteliklerini Vue bileşeninin verilerine bağlayarak, kullanıcı arayüzünün dinamik ve reaktif olmasını sağlar. Bu direktif, veri değişikliklerini otomatik olarak HTML elemanlarına yansıtarak, daha az kod yazarak daha fazla iş yapmamızı sağlar.</p>
<h3 id="heading-daha-ileri-ornekler">Daha İleri Örnekler</h3>
<p><a target="_blank" href="https://vuejs.org/guide/introduction.html">Vue belgelerinde</a> daha karmaşık örnekler ve kullanım senaryoları bulabilirsiniz. Ancak yukarıdaki temel örnekler, <code>v-bind</code> direktifinin nasıl çalıştığını ve neden kullanıldığını anlamamıza yardımcı olacaktır.</p>
]]></content:encoded></item><item><title><![CDATA[SQL Temel Kavramları]]></title><description><![CDATA[Temel Kavramlar
SQL, veritabanları ile iletişim kurmak için kullanılan bir dildir. Veritabanı, bilgilerin düzenli bir şekilde saklandığı ve yönetildiği bir yerdir. SQL kullanarak veritabanlarından veri çekebilir, veri ekleyebilir, güncelleyebilir vey...]]></description><link>https://omeryaltirik.com.tr/sql-temel-kavramlari</link><guid isPermaLink="true">https://omeryaltirik.com.tr/sql-temel-kavramlari</guid><category><![CDATA[SQL]]></category><dc:creator><![CDATA[Ömer YALTIRIK]]></dc:creator><pubDate>Tue, 28 May 2024 21:28:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1716931447272/eaf11492-8990-464b-8587-f834ce40d2bf.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-temel-kavramlar">Temel Kavramlar</h3>
<p>SQL, veritabanları ile iletişim kurmak için kullanılan bir dildir. Veritabanı, bilgilerin düzenli bir şekilde saklandığı ve yönetildiği bir yerdir. SQL kullanarak veritabanlarından veri çekebilir, veri ekleyebilir, güncelleyebilir veya silebilirsiniz.</p>
<h3 id="heading-temel-sql-sorgulari">Temel SQL Sorguları</h3>
<h4 id="heading-1-select-sorgulari-veri-cekme">1. <strong>SELECT Sorguları (Veri Çekme)</strong></h4>
<p>SELECT sorguları, veritabanından veri çekmek için kullanılır.</p>
<p><strong>Temel Yapı:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">SELECT</span> sütun1, sütun2, ...
<span class="hljs-keyword">FROM</span> tablo_adi
<span class="hljs-keyword">WHERE</span> koşul;
</code></pre>
<p><strong>Örnek:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">SELECT</span> Adi, Soyadi
<span class="hljs-keyword">FROM</span> Birey
<span class="hljs-keyword">WHERE</span> Yas &gt; <span class="hljs-number">30</span>;
</code></pre>
<p>Bu sorgu, <code>Birey</code> tablosundan yaşı 30'dan büyük olan bireylerin isim ve soyisimlerini seçer.</p>
<h4 id="heading-2-insert-sorgulari-veri-ekleme">2. <strong>INSERT Sorguları (Veri Ekleme)</strong></h4>
<p>INSERT sorguları, veritabanına yeni veri eklemek için kullanılır.</p>
<p><strong>Temel Yapı:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">INSERT</span> <span class="hljs-keyword">INTO</span> tablo_adi (sütun1, sütun2, ...)
<span class="hljs-keyword">VALUES</span> (deger1, deger2, ...);
</code></pre>
<p><strong>Örnek:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">INSERT</span> <span class="hljs-keyword">INTO</span> Birey (Adi, Soyadi, Yas)
<span class="hljs-keyword">VALUES</span> (<span class="hljs-string">'Ahmet'</span>, <span class="hljs-string">'Yılmaz'</span>, <span class="hljs-number">35</span>);
</code></pre>
<p>Bu sorgu, <code>Birey</code> tablosuna yeni bir birey ekler.</p>
<h4 id="heading-3-update-sorgulari-veri-guncelleme">3. <strong>UPDATE Sorguları (Veri Güncelleme)</strong></h4>
<p>UPDATE sorguları, mevcut veriyi güncellemek için kullanılır.</p>
<p><strong>Temel Yapı:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">UPDATE</span> tablo_adi
<span class="hljs-keyword">SET</span> sütun1 = deger1, sütun2 = deger2, ...
<span class="hljs-keyword">WHERE</span> koşul;
</code></pre>
<p><strong>Örnek:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">UPDATE</span> Birey
<span class="hljs-keyword">SET</span> Yas = <span class="hljs-number">36</span>
<span class="hljs-keyword">WHERE</span> Adi = <span class="hljs-string">'Ahmet'</span> <span class="hljs-keyword">AND</span> Soyadi = <span class="hljs-string">'Yılmaz'</span>;
</code></pre>
<p>Bu sorgu, <code>Birey</code> tablosundaki adı 'Ahmet' ve soyadı 'Yılmaz' olan bireyin yaşını 36 olarak günceller.</p>
<h4 id="heading-4-delete-sorgulari-veri-silme">4. <strong>DELETE Sorguları (Veri Silme)</strong></h4>
<p>DELETE sorguları, veritabanından veri silmek için kullanılır.</p>
<p><strong>Temel Yapı:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">FROM</span> tablo_adi
<span class="hljs-keyword">WHERE</span> koşul;
</code></pre>
<p><strong>Örnek:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">FROM</span> Birey
<span class="hljs-keyword">WHERE</span> Adi = <span class="hljs-string">'Ahmet'</span> <span class="hljs-keyword">AND</span> Soyadi = <span class="hljs-string">'Yılmaz'</span>;
</code></pre>
<p>Bu sorgu, <code>Birey</code> tablosundan adı 'Ahmet' ve soyadı 'Yılmaz' olan bireyi siler.</p>
<h3 id="heading-ileri-seviye-sorgular">İleri Seviye Sorgular</h3>
<h4 id="heading-1-join-sorgulari-tablolari-birlestirme">1. <strong>JOIN Sorguları (Tabloları Birleştirme)</strong></h4>
<p>JOIN sorguları, birden fazla tabloyu birleştirmek için kullanılır.</p>
<p><strong>Temel Yapı:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">SELECT</span> t1.sütun1, t2.sütun2, ...
<span class="hljs-keyword">FROM</span> tablo1 t1
<span class="hljs-keyword">JOIN</span> tablo2 t2 <span class="hljs-keyword">ON</span> t1.ortak_sütun = t2.ortak_sütun
<span class="hljs-keyword">WHERE</span> koşul;
</code></pre>
<p><strong>Örnek:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">SELECT</span> Birey.Adi, Birey.Soyadi, Adres.Sehir
<span class="hljs-keyword">FROM</span> Birey
<span class="hljs-keyword">JOIN</span> Adres <span class="hljs-keyword">ON</span> Birey.BireyID = Adres.BireyID;
</code></pre>
<p>Bu sorgu, <code>Birey</code> ve <code>Adres</code> tablolarını <code>BireyID</code> sütunu üzerinden birleştirir ve her bireyin adı, soyadı ve şehir bilgisini getirir.</p>
<h4 id="heading-2-group-by-ve-having-sorgulari-gruplama-ve-filtreleme">2. <strong>GROUP BY ve HAVING Sorguları (Gruplama ve Filtreleme)</strong></h4>
<p>GROUP BY, verileri belirli bir sütuna göre gruplamak için kullanılır. HAVING, gruplar üzerinde koşul uygulamak için kullanılır.</p>
<p><strong>Temel Yapı:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">SELECT</span> sütun, <span class="hljs-keyword">COUNT</span>(*)
<span class="hljs-keyword">FROM</span> tablo_adi
<span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> sütun
<span class="hljs-keyword">HAVING</span> <span class="hljs-keyword">COUNT</span>(*) &gt; koşul;
</code></pre>
<p><strong>Örnek:</strong></p>
<pre><code class="lang-sql"><span class="hljs-keyword">SELECT</span> Adi, Soyadi, <span class="hljs-keyword">COUNT</span>(*)
<span class="hljs-keyword">FROM</span> Birey
<span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> Adi, Soyadi
<span class="hljs-keyword">HAVING</span> <span class="hljs-keyword">COUNT</span>(*) &gt; <span class="hljs-number">1</span>;
</code></pre>
<p>Bu sorgu, aynı isim ve soyisme sahip bireyleri gruplar ve birden fazla olanları seçer.</p>
<h3 id="heading-ozet">Özet</h3>
<ol>
<li><p><strong>SELECT</strong>: Veritabanından veri seçer.</p>
</li>
<li><p><strong>INSERT</strong>: Veritabanına yeni veri ekler.</p>
</li>
<li><p><strong>UPDATE</strong>: Veritabanındaki veriyi günceller.</p>
</li>
<li><p><strong>DELETE</strong>: Veritabanındaki veriyi siler.</p>
</li>
<li><p><strong>JOIN</strong>: Birden fazla tabloyu birleştirir.</p>
</li>
<li><p><strong>GROUP BY ve HAVING</strong>: Verileri gruplar ve gruplara koşul uygular.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Temel 'Git' Komutları]]></title><description><![CDATA[Bu yazımda kendime not olması için Git versiyon kontrol sistemini temel seviyede kullanabilmek için bir kaç komut ve ne işe yaradıklarını ekleyeceğim.

Yukarıdaki fotoğrafta Git çalışma mantığı ve temel bazı komutları görebiliriz. Öncelikle bilmemiz ...]]></description><link>https://omeryaltirik.com.tr/temel-git-komutlari</link><guid isPermaLink="true">https://omeryaltirik.com.tr/temel-git-komutlari</guid><category><![CDATA[Git]]></category><category><![CDATA[Git Commands]]></category><category><![CDATA[git branch]]></category><category><![CDATA[Temel GIT Komutları]]></category><category><![CDATA[Git Versiyon Kontrol Sistemi]]></category><dc:creator><![CDATA[Ömer YALTIRIK]]></dc:creator><pubDate>Tue, 24 Oct 2023 14:22:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1712576766595/76b5d317-3ebb-46c7-9f26-972ee3e02aef.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Bu yazımda kendime not olması için Git versiyon kontrol sistemini temel seviyede kullanabilmek için bir kaç komut ve ne işe yaradıklarını ekleyeceğim.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1698155223177/e343bd0c-975a-43f6-b6c0-04a3dbe9763d.jpeg" alt class="image--center mx-auto" /></p>
<p>Yukarıdaki fotoğrafta Git çalışma mantığı ve temel bazı komutları görebiliriz. Öncelikle bilmemiz gereken 4 kavram:</p>
<ol>
<li><p><strong><mark>Untracked</mark></strong> (izlenmeyen): Git tarafından henüz takip edilmeye başlanmamış dosyaları ifade eder.</p>
</li>
<li><p><strong><mark>Unstaged </mark></strong> (hazırlanmamış): Değişiklik yapılmış/güncellenmiş ama commitlenmek için henüz hazırlanmamış dosyaları ifade eder.</p>
</li>
<li><p><strong><mark>Staged </mark></strong> (hazırlanmış): Commitlenmeye hazır durumda olan dosyaları ifade eder.</p>
</li>
<li><p><strong><mark>Deleted </mark></strong> (silinmiş): Projeden silinmiş ancak GIT üzerinden kaldırılmamış dosyaları ifade eder.</p>
</li>
</ol>
<p>Temel Git Scm komutları:</p>
<ul>
<li><p><code>$ git init</code> : git initialization'un kısaltması olup, henüz versiyonlanmamış olan projeyi git ile versiyonlama yapmayı başlatmamızı sağlar ve proje dizinine boş bir <code>.git</code> reposu oluşturur.</p>
</li>
<li><p><code>$ git config --global</code> <a target="_blank" href="http://user.name"><code>user.name</code></a> <code>"Name Surname", $ git config --global</code> <a target="_blank" href="http://user.email"><code>user.email</code></a> <code>"</code><a target="_blank" href="mailto:test@email.com"><code>test@email.com</code></a><code>"</code> : git ilk kurulduğunda bir defaya özel olmak üzere username ve email ayarlamamızı yapmak için yukarıdaki komutlarda ilgili yerleri değiştirmek için kullanılır. Bu ayarları yapmadan uzak sunucuya commit atarken hata alırız.</p>
</li>
<li><p><code>$ git add &lt;dosya veya klasor_ismi&gt;</code> : Yeni eklenen veya üzerinde değişiklik yapılan dosyaları git'in takip etmesi / staged ortamına göndermek için kullanılır.</p>
</li>
<li><p><code>$ git add .</code> veya <code>$ git add *</code> veya <code>$ git add -A .</code> : Yukarıdaki komut ile dosyaları tek tek staged ortamına göndermek yerine buradaki bu 3 komut ile bütün dosyaları staged ortamına tek seferde gönderebiliriz ve git'in takip etmesini sağlayabiliriz. 3 komut da aynı işi yapar.</p>
</li>
<li><p><code>$ git rm --cached &lt;dosya veya klasor_ismi&gt;</code> : Staged ortamına eklenmiş bir dosyanın takibinin bırakılması yani untracked (izlenmeyen) hale getirilmesini sağlayan komuttur.</p>
</li>
<li><p><code>$ git rm &lt;dosya veya klasor_ismi&gt;</code> : Dosyayı / klasörü git'ten silmemizi sağlayan komuttur.</p>
</li>
<li><p><code>$ git status</code> : Üzerinde çalışılan projenin o anki durumu hakkında bilgi verir. Yapılan değişiklikler, eklenen ve silinen dosyalar gibi bilgiler listelenir.</p>
<ol>
<li><p>Bazı GIT kavramları :</p>
<ul>
<li><p><mark>On branch main</mark> -&gt; Main branch'ınde olduğumuzu,</p>
</li>
<li><p><mark>Changes to be commited</mark> -&gt; Commit'lenmeye hazır değişiklikler olduğunu,</p>
</li>
<li><p><mark>Modified</mark>: örneğin index.html -&gt; Index.html dosyasında değişiklik yaptığımızı,</p>
</li>
<li><p><mark>Deleted</mark>: örneğin styles.css -&gt; styles.css dosyasını sildiğimiz,</p>
</li>
<li><p><mark>Changes not staged for commit</mark> -&gt; Üzerinde değişiklik yapılan ama staged ortamına gönderilmemiş dosyaları ifade eder.</p>
</li>
<li><p><mark>Untracked files</mark> -&gt; takibi yapılmayan dosyaları ifade eder.</p>
</li>
</ul>
</li>
</ol>
</li>
<li><p><code>$ git commit -m "ilk commit mesajı"</code> : Commit, staged ortamına alınan dosyaların Local Repository’e gönderilmesidir. En iyi uygulama yöntemi her kayıt sırasında yapılan değişiklikleri açıklayıcı bir mesaj eklemektir. Ayrıca her commit benzersiz bir kimliğe (unique ID) sahip olur. Bu sayede eski bir commit'e geri dönebilirsiniz ve herhangi bir kayıp yaşama ihtimaliniz kalmaz.</p>
</li>
<li><p><code>$ git log</code> : Projedeki commit geçmişini görüntülememizi sağlar. Bütün commit'ler, id'si, yazarı, tarihi ve mesajı ile beraber listelenir.</p>
</li>
<li><p><code>$ git branch &lt;branch_name&gt;</code> : Projeye yeni bir branch eklemek için kullanılır.</p>
</li>
<li><p><code>$ git branch -a</code> : Tüm uzak ve yerel branch'lari listelemek için kullanılır.</p>
</li>
<li><p><code>$ git branch -d &lt;branch_name&gt;</code> : Bir branch'ı silmek için kullanılır.</p>
</li>
<li><p><code>$ git checkout &lt;branch_name&gt;</code> : Checkout branch’ler arası veya commit'ler arası geçiş yapmak istediğimizde kullanılır. Mevcutta var olan branch'a geçiş yapmak için bu komut kullanılır.</p>
</li>
<li><p><code>$ git checkout -b &lt;branch_name&gt;</code> : Yeni bir branch oluşturup, bu branch'a geçiş yapmak için kullanılır.</p>
</li>
<li><p><code>$ git checkout &lt;commit_ID&gt;</code> : Commitler arası geçiş yapmak için: (Eski bir versiyona dönmek istediğimiz zaman) kullanılır.</p>
</li>
<li><p><code>$ git merge &lt;branch_name&gt;</code> : Başka bir branch'da olan değişiklikleri, bulunduğumuz branch ile birleştirmek istediğimizde kullanılır.</p>
</li>
<li><p><code>$ git clone &lt;remote_URL&gt;</code> : Mevcut bir Remote Repository'de bulunan dosyaların bilgisayarımızda bir kopyasının oluşturulmasını sağlar.</p>
</li>
<li><p><code>$ git push origin master</code> : Projemizde aldığımız commit'leri, remote repository'e gönderir. (Burada bahsi geçen <code>origin</code> remote repository’nin kök dizinini belirtir ve sabit bir isimdir. <code>master</code> ise sizin çalıştığınız branch (dal)’ı belirtir.)</p>
</li>
<li><p><code>$ git remote add origin</code> <a target="_blank" href="http://uzak_deponun_adresi.git"><code>http://uzak_deponun_adresi.git</code></a> : Henüz remote repository’niz yoksa aşağıdaki komut ile local deponuzu uzak sunucudaki depoya bağlayabilirsiniz.</p>
</li>
<li><p><code>$ git diff HEAD</code> : Çalışma dizini ile repository (HEAD) arasındaki farklılıkları görmek için kullanılır.</p>
</li>
<li><p><code>$ git diff</code> : Repository üzerinde yapılan değişikliklerden sonra dosyalar arasında oluşan farklılıkları göterir.</p>
</li>
<li><p><code>$ git diff &lt;commit_id_1&gt;..&lt;commit_id_2&gt;</code> : İki commit arasındaki farklılıkları görmek için kullanılır.</p>
</li>
<li><p><code>$ git diff --staged</code> : Çalışma dizini ve staged ortamı arasındaki farkları görmek için kullanılır.</p>
</li>
</ul>
<p>Kaynaklar</p>
<ul>
<li><a target="_blank" href="https://www.patika.dev">https://www.patika.dev</a> (Cohorts eğitim içeriği notum)</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[C++ Dilinde Kaçış Karekteri "\" (Ters Slash) Kullanımı]]></title><description><![CDATA["Ters slash" (\) C++ ve birçok programlama dilinde kaçış karakteri (escape character) olarak adlandırılır ve özel bir anlama sahiptir. Kaçış karakteri, bir karakterin normal anlamından saptığını veya özel bir işlevi olduğunu belirtir. İşte bazı yaygı...]]></description><link>https://omeryaltirik.com.tr/c-dilinde-kacis-karekteri-ters-slash-kullanimi</link><guid isPermaLink="true">https://omeryaltirik.com.tr/c-dilinde-kacis-karekteri-ters-slash-kullanimi</guid><category><![CDATA[C++]]></category><category><![CDATA[Escape Character]]></category><category><![CDATA[Cplusplus Dilinde Kaçış Karakteri Kullanımı]]></category><category><![CDATA[Cplusplus kaçış karakteri]]></category><dc:creator><![CDATA[Ömer YALTIRIK]]></dc:creator><pubDate>Sat, 21 Oct 2023 20:18:01 GMT</pubDate><content:encoded><![CDATA[<p>"Ters slash" (<code>\</code>) C++ ve birçok programlama dilinde kaçış karakteri (escape character) olarak adlandırılır ve özel bir anlama sahiptir. Kaçış karakteri, bir karakterin normal anlamından saptığını veya özel bir işlevi olduğunu belirtir. İşte bazı yaygın kullanımları:</p>
<ol>
<li><p>Kaçış Karakterleri:</p>
<ul>
<li><p><code>\"</code>: Çift tırnak işaretini (") bir metin içinde kullanırken, bir tırnak işareti olarak algılanmaması için kullanılır.</p>
</li>
<li><p><code>\'</code>: Tek tırnak işaretini (') bir metin içinde kullanırken, bir tırnak işareti olarak algılanmaması için kullanılır.</p>
</li>
<li><p><code>\\</code>: Ters slash işaretini () bir metin içinde kullanırken, bir kaçış karakteri olarak algılanmaması için kullanılır.</p>
</li>
</ul>
</li>
<li><p>Yeni Satır (<code>\n</code>): <code>\n</code>, metin içinde yeni bir satır karakterini temsil eder. Metin içinde bu kaçış karakterini kullanarak metinler arasında yeni satırlar ekleyebilirsiniz.</p>
</li>
<li><p>Sekme (<code>\t</code>): <code>\t</code>, metin içinde bir sekme karakterini temsil eder. Metin içinde bu kaçış karakterini kullanarak metin içinde düzenlemeler yapabilirsiniz.</p>
</li>
<li><p>Unicode ve Özel Karakterler: Bazı kaçış karakterleri, Unicode karakterlerini veya özel sembollerini metin içinde temsil etmek için kullanılır. Örneğin, <code>\uXXXX</code> ile Unicode karakterlerini belirtebilirsiniz.</p>
</li>
</ol>
<p>İşte bir örnek: Eğer bir C++ programında bir metin içinde çift tırnak işareti (<code>"</code>) kullanmak isterseniz, bu şekilde kullanabilirsiniz:</p>
<pre><code class="lang-cpp"><span class="hljs-built_in">cout</span> &lt;&lt; <span class="hljs-string">"Bu bir \"metin\" içinde çift tırnak kullanımıdır."</span> &lt;&lt; <span class="hljs-built_in">endl</span>;
</code></pre>
<p>Ters slash (<code>\</code>) bu durumda, çift tırnak işaretini metin içinde yazmak için kullanılan kaçış karakteridir.</p>
<p>Kod satırında yürütülen kodun çıktısı aşağıdaki şekilde olacaktır.  </p>
<blockquote>
<p>Bu bir "metin" içinde çift tırnak kullanımıdır.</p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[C++ operatörleri]]></title><description><![CDATA[Bu yazı bölüm dersimden çıkardığım küçük özet niteliğinde olup zamanla eklemeler ve güncellemeler yapmayı planlıyorum onun için daha çok kendime not niteliğindedir.
C++ programlama dilindeki ilişkisel ve mantıksal operatöler;
• •İlişkisel ifadeler bi...]]></description><link>https://omeryaltirik.com.tr/cpp-operatorleri</link><guid isPermaLink="true">https://omeryaltirik.com.tr/cpp-operatorleri</guid><category><![CDATA[C++]]></category><category><![CDATA[basic operations in c++]]></category><category><![CDATA[C++ Operatöleri]]></category><dc:creator><![CDATA[Ömer YALTIRIK]]></dc:creator><pubDate>Sat, 23 Sep 2023 13:16:41 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1695475954247/7fb12711-3149-4f4c-b3ae-de71b80bf73b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Bu yazı bölüm dersimden çıkardığım küçük özet niteliğinde olup zamanla eklemeler ve güncellemeler yapmayı planlıyorum onun için daha çok kendime not niteliğindedir.</p>
<p>C++ programlama dilindeki ilişkisel ve mantıksal operatöler;</p>
<p>• •İlişkisel ifadeler bir koşulun doğrulunu kontrol etmek için kullanılır. Bir ilişkisel ifade; bir ilişkisel operatör ve iki işlenen kullanılarak oluşturulur. Bu operatörler büyüktür (&gt;), büyük eşittir (&gt;=), küçüktür (&lt;) ve küçük eşittir (&lt;=) olmak üzere 4 adettir.</p>
<p>• İlişkisel operatörlere ek olarak eşittir (==) ve eşit değildir (!=) operatörleri iki değerin birbirine eşit olup olmama durumlarını test etmek için kullanılır. İlişkisel operatörler ile basit koşullar oluşturulabilir.</p>
<p>• Daha karmaşık koşullar ise ancak mantıksal operatörlerin yardımı ile elde edilir. C++ programlama dilinde kullanabileceğimiz 3 farklı mantıksal operatör vardır. Bunlar; VE (&amp;&amp;), VEYA (||) ve DEĞİL (!) operatörleridir.</p>
<hr />
<p>** Mantıksal operatörler, eşitlik ve ilişkisel operatörlere göre daha düşük ama atama operatörüne göre daha yüksek önceliğe sahiptirler.</p>
]]></content:encoded></item></channel></rss>