<?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>Bilgisayar &#187; SQL Örnekleri</title>
	<atom:link href="https://www.bilgisayar.me/index.php/category/veritabani/sql_ornekleri/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bilgisayar.me</link>
	<description></description>
	<lastBuildDate>Wed, 29 Aug 2018 20:31:06 +0000</lastBuildDate>
	<language>tr-TR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.29</generator>
	<item>
		<title>MYSQL tarih örnekleri</title>
		<link>https://www.bilgisayar.me/index.php/2015/07/15/mysql-tarih-ornekleri/</link>
		<comments>https://www.bilgisayar.me/index.php/2015/07/15/mysql-tarih-ornekleri/#comments</comments>
		<pubDate>Thu, 16 Jul 2015 00:32:22 +0000</pubDate>
		<dc:creator><![CDATA[Hakan Atılgan]]></dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[SQL Örnekleri]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.bilgisayar.me/?p=1140</guid>
		<description><![CDATA[SQL tarih sorgu örnekleri]]></description>
				<content:encoded><![CDATA[<p>MYSQL tablosundan X aydan eski olan kayıtları sil/göster.</p>
<pre class="prettyprint linenums" >
// X yerine herhangi bir sayı koyun
//sil
DELETE FROM tablo WHERE tarih &lt; DATE_SUB(NOW(), INTERVAL X MONTH);
//göster
SELECT * FROM tablo WHERE tarih &lt; DATE_SUB(NOW(), INTERVAL X MONTH);
</pre>
<p>MYSQL tablosundan bugünkü kayıtları sil/göster.</p>
<pre class="prettyprint linenums" >
//sil
DELETE FROM tablo WHERE tarih = CURDATE();
//göster
SELECT * FROM tablo WHERE tarih = CURDATE();
</pre>
<p>Son X aylık kayıtları sil/göster.</p>
<pre class="prettyprint linenums" >
// X yerine herhangi bir sayı koyun
//sil
DELETE FROM tablo WHERE tarih &gt;= DATE_ADD(Now(), INTERVAL - X MONTH);
//göster
SELECT * FROM tablo WHERE tarih &gt;= DATE_ADD(Now(), INTERVAL - X MONTH);
</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.bilgisayar.me/index.php/2015/07/15/mysql-tarih-ornekleri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Veritabanı tablosunda kaç adet beğendim-beğenmedim kayıt sayısını bulma</title>
		<link>https://www.bilgisayar.me/index.php/2015/06/19/bir-tabloda-kac-adet-begendim-begenmedim-kayit-sayisini-bulma/</link>
		<comments>https://www.bilgisayar.me/index.php/2015/06/19/bir-tabloda-kac-adet-begendim-begenmedim-kayit-sayisini-bulma/#comments</comments>
		<pubDate>Sat, 20 Jun 2015 02:19:35 +0000</pubDate>
		<dc:creator><![CDATA[Hakan Atılgan]]></dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[SQL Örnekleri]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.bilgisayar.me/?p=804</guid>
		<description><![CDATA[Bir tabloda kaç adet beğendim-beğenmedim-kararsızım kayıtlarının toplam sayısını bulmak için kullanabileceğimiz sql sorgusu]]></description>
				<content:encoded><![CDATA[<p>0 &#8211; beğenmedim<br />
1 &#8211; beğendim<br />
2 &#8211; kararsız</p>
<p>Eğer bütün kayıtlar sadece bir tablo sırasında ise, yani tablomuz aşağıdaki gibi ise</p>
<p>kayit<br />
&#8212;&#8212;-<br />
1<br />
2<br />
1<br />
0<br />
1<br />
1<br />
&#8230;<br />
2</p>
<p>SQL sorgumuz aşağıdaki gibi olacaktır.</p>
<pre class="prettyprint linenums" >
SELECT 
    SUM(IF(kayit = 0, 1, 0)) as begenmedim,
    SUM(IF(kayit = 1, 1, 0))  as begendim,
    SUM(IF(kayit = 2, 1, 0))  as kararsiz
FROM tablo
</pre>
<p>Bazen kayıtlarımız farklı sıralarda olabilir. Örneğin,</p>
<p>Ford     Mazda    Anadol<br />
&#8212;-     &#8212;&#8211;    &#8212;&#8212;<br />
1         1          1<br />
0         1          1<br />
1         1          2<br />
2         2          0<br />
1         2          1<br />
1         0          1<br />
0         1          2<br />
..       ..         ..<br />
1         0          1</p>
<p>Öyleyse, SQL sorgumuzu şöyle yazabiliriz.</p>
<pre class="prettyprint linenums" >
SELECT
     SUM(IF(Ford = 0, 1, 0)) as Ford,
     SUM(IF(Mazda = 0, 1, 0)) as Mazda,
     SUM(IF(Anadol = 0, 1, 0)) as Anadol
FROM tablo
UNION
SELECT
     SUM(IF(Ford = 1, 1, 0)) as Ford,
     SUM(IF(Mazda = 1, 1, 0)) as Mazda,
     SUM(IF(Anadol = 1, 1, 0)) as Anadol
FROM tablo
UNION
SELECT 
     SUM(IF(Ford = 2, 1, 0)) as Ford,
     SUM(IF(Mazda = 2, 1, 0)) as Mazda,
     SUM(IF(Anadol = 2, 1, 0)) as Anadol
FROM tablo
</pre>
<p>Eğer sadece 0(beğenmedim) ve 1(beğendim) sorgulatmak istiyorsak, aşağıdaki sql sorgusunu kullanabiliriz.</p>
<pre class="prettyprint linenums" >
SELECT
     SUM(IF(Ford = 0, 1, 0)) as Ford,
     SUM(IF(Mazda = 0, 1, 0)) as Mazda,
     SUM(IF(Anadol = 0, 1, 0)) as Anadol
FROM tablo
UNION
SELECT
     SUM(IF(Ford = 1, 1, 0)) as Ford,
     SUM(IF(Mazda = 1, 1, 0)) as Mazda,
     SUM(IF(Anadol = 1, 1, 0)) as Anadol
FROM tablo
</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.bilgisayar.me/index.php/2015/06/19/bir-tabloda-kac-adet-begendim-begenmedim-kayit-sayisini-bulma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kompleks/Gelişmiş MYSQL/SQL Sorguları</title>
		<link>https://www.bilgisayar.me/index.php/2015/06/13/kompleks-mysql-sorgulari/</link>
		<comments>https://www.bilgisayar.me/index.php/2015/06/13/kompleks-mysql-sorgulari/#comments</comments>
		<pubDate>Sat, 13 Jun 2015 18:40:02 +0000</pubDate>
		<dc:creator><![CDATA[Hakan Atılgan]]></dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[SQL Örnekleri]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.bilgisayar.me/?p=541</guid>
		<description><![CDATA[Uygulamalarınızda rahatlıkla kullanabileceginiz, MYSQL/SQL komplex/gelişmiş sorgu örnekleri]]></description>
				<content:encoded><![CDATA[<p>Aşağıdaki sql sorgusu payment tablosundaki son altı ayın satışlarını aylık olarak listeler.</p>
<pre class="prettyprint linenums" >
// SAKILA veritabanı, payment tablosu
SELECT  
	SUM( IF( DATE_FORMAT(payment_date,&#039;%Y-%m&#039;)  = DATE_FORMAT(CURDATE(),&#039;%Y-%m&#039;) , amount, 0 ) ) &#039;Ay 1&#039;,
	SUM( IF( DATE_FORMAT(payment_date,&#039;%Y-%m&#039;)  = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH),&#039;%Y-%m&#039;), amount, 0 ) ) &#039;Ay 2&#039;,
	SUM( IF( DATE_FORMAT(payment_date,&#039;%Y-%m&#039;)  = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 2 MONTH),&#039;%Y-%m&#039;), amount, 0 ) ) &#039;Ay 3&#039;,
	SUM( IF( DATE_FORMAT(payment_date,&#039;%Y-%m&#039;)  = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH),&#039;%Y-%m&#039;), amount, 0 ) ) &#039;Ay 4&#039;,
	SUM( IF( DATE_FORMAT(payment_date,&#039;%Y-%m&#039;)  = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 4 MONTH),&#039;%Y-%m&#039;), amount, 0 ) ) &#039;Ay 5&#039;,
	SUM( IF( DATE_FORMAT(payment_date,&#039;%Y-%m&#039;)  = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 5 MONTH),&#039;%Y-%m&#039;), amount, 0 ) ) &#039;Ay 6&#039;
FROM payment
ORDER BY payment_date DESC 
</pre>
<p>Yukarıdaki sql sorgusunu çalıştırdığımızda, aşağıdaki gibi bir sonuç elde etmiş oluruz.</p>
<p><a href="http://www.bilgisayar.me/wp-content/uploads/2015/06/altiaylik.jpg" data-rel="lightbox-image-0" data-rl_title="" data-rl_caption="" title=""><img src="http://www.bilgisayar.me/wp-content/uploads/2015/06/altiaylik.jpg" alt="altiaylik" width="307" height="59" class="alignnone size-full wp-image-543" /></a></p>
<h3>Bu haftanın satışlarını bulmak için,</h3>
<pre class="prettyprint linenums" >
SELECT  
    SUM(amount) as &#039;Bu hafta&#039;
FROM payment
WHERE YEARWEEK(payment_date) = YEARWEEK(CURDATE())
ORDER BY payment_date 
</pre>
<h3>Bu ayın satışlarını bulmak için,</h3>
<pre class="prettyprint linenums" >
SELECT  
    SUM(amount) as &#039;Bu Ay&#039;
FROM payment
WHERE DATE_FORMAT(payment_date,&#039;%Y-%m&#039;)=DATE_FORMAT(CURDATE(),&#039;%Y-%m&#039;)
ORDER BY payment_date 
</pre>
<h3>Bu yılın satışlarını bulmak için,</h3>
<pre class="prettyprint linenums" >
SELECT  
    SUM(amount) as &#039;Bu Yıl&#039;
FROM payment
WHERE DATE_FORMAT(payment_date,&#039;%Y&#039;)=DATE_FORMAT(CURDATE(),&#039;%Y&#039;)
ORDER BY payment_date 
</pre>
<h3>Bu ay ve önceki ayın satışlarını bulmak için,</h3>
<pre class="prettyprint linenums" >
SELECT  
    SUM( IF( DATE_FORMAT(payment_date,&#039;%Y-%m&#039;) = DATE_FORMAT(CURDATE(),&#039;%Y-%m&#039;), amount, 0 ) ) &#039;Bu Ay&#039;,
    SUM( IF( DATE_FORMAT(payment_date,&#039;%Y-%m&#039;) = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH),&#039;%Y-%m&#039;), amount, 0 ) ) &#039;Önceki Ay&#039;
FROM payment
</pre>
<h3>Son 10 satışı bulmak için,</h3>
<pre class="prettyprint linenums" >
SELECT payment_date, amount
FROM payment
ORDER BY payment_date DESC 
LIMIT 10
</pre>
<h3>En yüksek 10 satışı bulmak için,</h3>
<pre class="prettyprint linenums" >
SELECT payment_date, max(amount) as fiyat
FROM payment
GROUP BY payment_date
ORDER BY fiyat DESC 
LIMIT 10
</pre>
<h3>En düşük 10 satışı bulmak için,</h3>
<pre class="prettyprint linenums" >
SELECT payment_date, min(amount) as fiyat
FROM payment
GROUP BY payment_date
ORDER BY fiyat ASC
LIMIT 10 /* 10 sayısı ilk 10 satışı verir. 15 olarak değiştirdimizde, en düşük 15 satışı bulmuş oluruz*/
</pre>
<h3>Bu ayın en yüksek 10 satışını bulmak için,</h3>
<pre class="prettyprint linenums" >
SELECT payment_date,amount 
FROM payment 
WHERE MONTH(payment_date) = MONTH(CURDATE()) AND YEAR(payment_date)  =  YEAR(CURDATE()) AND YEAR(payment_date) = YEAR(CURDATE())
GROUP BY payment_date
ORDER BY SUM(amount) DESC
LIMIT 5
</pre>
<h4>Müşteriye göre satışların toplamını, satışların ortalamasını ve satış adetinin bulunması için,</h4>
<pre class="prettyprint linenums" >
SELECT CONCAT(c.first_name,&#039; &#039;, c.last_name) as isim,
       SUM(p.amount) AS `Toplam`, 
       AVG(p.amount) as &#039;Averaj&#039;,
       COUNT(*) as &#039;Adet&#039; FROM payment p
INNER JOIN customer c ON p.customer_id = c.customer_id 
GROUP BY isim 
ORDER BY `Toplam` DESC 
LIMIT 10
</pre>
<p><a href="http://www.bilgisayar.me/wp-content/uploads/2015/06/toplamadet.jpg" data-rel="lightbox-image-1" data-rl_title="" data-rl_caption="" title=""><img src="http://www.bilgisayar.me/wp-content/uploads/2015/06/toplamadet.jpg" alt="toplamadet" width="348" height="264" class="alignnone size-full wp-image-556" /></a></p>
<h4>Günlere göre satış adetini bulmak,</h4>
<p>Aşağıdaki sorgu Son 30 Gün, 30 ile 60 gün arası, 60 ile 90 gün arası ve 90 günden önceki satış adetlerini bulmak için kullanılabilir. Ufak bır değişlikle adet yerine satış toplam değerleride bulunabilir. Örneğin, SUM (IF&#8217; deki 1 sayısı yerine amount yazıldığında satışların toplamını elde edersiniz.</p>
<pre class="prettyprint linenums" >
SELECT  
       SUM( IF(  p.payment_date &gt; DATE_SUB( SYSDATE( ) ,INTERVAL 30 DAY), 1, 0 ) ) &#039;Son 30 Gün&#039;,
       SUM( IF(  p.payment_date  BETWEEN DATE_SUB( SYSDATE( ) ,INTERVAL 60 DAY) AND DATE_SUB( SYSDATE( ) ,INTERVAL 30 DAY), 1, 0 ) ) &#039;30-60 Gün&#039;, 
       SUM( IF(  p.payment_date BETWEEN DATE_SUB( SYSDATE( ) ,INTERVAL 90 DAY ) AND DATE_SUB( SYSDATE( ) ,INTERVAL 60 DAY ), 1, 0 ) ) &#039;60-90 Gün&#039;, 
       SUM( IF(  p.payment_date &lt;= DATE_SUB(SYSDATE(), INTERVAL 90 DAY), 1, 0 ) ) &#039;90 Gün öncesi&#039;
FROM customer c
INNER JOIN payment p ON  p.customer_id = c.customer_id 
</pre>
<p><a href="http://www.bilgisayar.me/wp-content/uploads/2015/06/sonotusgun.jpg" data-rel="lightbox-image-2" data-rl_title="" data-rl_caption="" title=""><img src="http://www.bilgisayar.me/wp-content/uploads/2015/06/sonotusgun.jpg" alt="sonotusgun" width="374" height="47" class="alignnone size-full wp-image-561" /></a></p>
<h4>Bir sorgu içinde bütün satışları, bu hafta, ay ve yıl içindeki bütün satışları bul,</h4>
<pre class="prettyprint linenums" >
SELECT Round(sum(d.amount),2) as &#039;Bütün Satışlar&#039;, 
    ( SELECT Round(sum(b.amount),2)
           FROM payment b
          WHERE YEARWEEK(b.payment_date) = YEARWEEK(CURRENT_DATE)
    ) AS &#039;Bu Hafta&#039;,
    ( SELECT Round(sum(c.amount),2)
           FROM payment c
          WHERE  date_format(c.`payment_date`, &#039;%Y-%m&#039;) = date_format(now(), &#039;%Y-%m&#039;)
    ) AS &#039;Bu Ay&#039;,
    ( SELECT Round(sum(d.amount),2)
           FROM payment d
          WHERE  date_format(d.`payment_date`, &#039;%Y&#039;) = date_format(now(), &#039;%Y&#039;)
    ) AS &#039;Bu Yıl&#039;
FROM payment d
</pre>
<p><a href="http://www.bilgisayar.me/wp-content/uploads/2015/06/butunsatislar1.jpg" data-rel="lightbox-image-3" data-rl_title="" data-rl_caption="" title=""><img src="http://www.bilgisayar.me/wp-content/uploads/2015/06/butunsatislar1.jpg" alt="butunsatislar" width="307" height="52" class="alignnone size-full wp-image-577" /></a></p>
<h4>Yıllık, aylara göre toplam satışları ve satış adetini bul,</h4>
<pre class="prettyprint linenums" >
SELECT  
         IfNull(Year,&#039;Toplam&#039;) `Yıl`,  
	  `Ocak`, `Şubat`, `Mart`, `Nisan`, `Mayıs`, `Haziran`, `Temmuz`, `Ağustos`, `Eylül`, `Ekim`, `Kasım`, `Aralık`,  
	  Qty AS &#039;Satış Adedi&#039;,  
	  Yrly as &#039;Yıllık Toplam&#039; 
FROM ( 
  SELECT  
         year(payment_date) AS &#039;Year&#039;, 
         Round(Sum(CASE WHEN Month(payment_date)= 1 THEN amount ELSE 0 END),2) AS `Ocak`, 
         Round(Sum(CASE WHEN Month(payment_date)= 2 THEN amount ELSE 0 END),2) AS `Şubat`, 
         Round(Sum(CASE WHEN Month(payment_date)= 3 THEN amount ELSE 0 END),2) AS `Mart`, 
         Round(Sum(CASE WHEN Month(payment_date)= 4 THEN amount ELSE 0 END),2) AS `Nisan`, 
         Round(Sum(CASE WHEN Month(payment_date)= 5 THEN amount ELSE 0 END),2) AS `Mayıs`, 
         Round(Sum(CASE WHEN Month(payment_date)= 6 THEN amount ELSE 0 END),2) AS `Haziran`, 
         Round(Sum(CASE WHEN Month(payment_date)= 7 THEN amount ELSE 0 END),2) AS `Temmuz`, 
         Round(Sum(CASE WHEN Month(payment_date)= 8 THEN amount ELSE 0 END),2) AS `Ağustos`, 
         Round(Sum(CASE WHEN Month(payment_date)= 9 THEN amount ELSE 0 END),2) AS `Eylül`, 
         Round(Sum(CASE WHEN Month(payment_date)=10 THEN amount ELSE 0 END),2) AS `Ekim`, 
         Round(Sum(CASE WHEN Month(payment_date)=11 THEN amount ELSE 0 END),2) AS `Kasım`, 
         Round(Sum(CASE WHEN Month(payment_date)=12 THEN amount ELSE 0 END),2) AS `Aralık`, 
         Count(*) AS Qty, 
         Round(Sum(amount),2) AS Yrly 
   FROM payment 
   GROUP BY year  
  /*WITH ROLLUP  - with rollup, tablonun son satırında satışların toplam degerlerini listeler. Pivot table*/
) AS sums
</pre>
<p><a href="http://www.bilgisayar.me/wp-content/uploads/2015/06/aylik.jpg" data-rel="lightbox-image-4" data-rl_title="" data-rl_caption="" title=""><img src="http://www.bilgisayar.me/wp-content/uploads/2015/06/aylik.jpg" alt="aylik" width="921" height="49" class="alignnone size-full wp-image-580" /></a></p>
<p>PHP kullanarak aşağıdaki gibi bir tablo oluşturabilirsiniz.<br />
<a href="http://www.bilgisayar.me/wp-content/uploads/2015/06/salesmonthly.jpg" data-rel="lightbox-image-5" data-rl_title="" data-rl_caption="" title=""><img src="http://www.bilgisayar.me/wp-content/uploads/2015/06/salesmonthly-1024x148.jpg" alt="salesmonthly" width="720" height="104" class="alignnone size-large wp-image-582" /></a></p>
<h4>Çeyrek içindeki bütün satışların toplamını, satışların adetini bul,</h4>
<pre class="prettyprint linenums" >
SELECT C.yil, C.ceyrek, C.adet,C.toplam
FROM payment AS Q,
     ( SELECT YEAR(payment_date) AS yil, /*yıl*/
            FLOOR( ( MONTH(payment_date) - 1 ) / 3 ) AS ceyrek, /*çeyrek*/
            COUNT(*) AS adet, /*toplam satış adeti*/
            SUM(amount) as toplam /*toplam satış*/
       FROM payment
       GROUP BY YEAR(payment_date), FLOOR( ( MONTH(payment_date) - 1 ) / 3 )
    ) AS C
GROUP BY C.ceyrek
ORDER BY C.yil, C.ceyrek
</pre>
<p><a href="http://www.bilgisayar.me/wp-content/uploads/2015/06/ceyrek.jpg" data-rel="lightbox-image-6" data-rl_title="" data-rl_caption="" title=""><img src="http://www.bilgisayar.me/wp-content/uploads/2015/06/ceyrek.jpg" alt="ceyrek" width="244" height="101" class="alignnone size-full wp-image-587" /></a></p>
<p><small></small><br />
<div class="su-note" style="border-color:#e5e4e4;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><div class="su-note-inner su-clearfix" style="background-color:#fefdfd;border-color:#ffffff;color:#000000;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;">Örneklerimizde MYSQL&#8217;in sağlamış oldugu SAKILA veritabanını kullanacağız. Sakila veritabanını yüklemek için <a href="http://dev.mysql.com/doc/index-other.html" target="_blank"><br />
 burayı tıklayın <i class="fa fa-external-link"></i></a></div></div>
<div class="su-note" style="border-color:#e5e4e4;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><div class="su-note-inner su-clearfix" style="background-color:#fefdfd;border-color:#ffffff;color:#000000;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;">Gelişmiş/kompleks sql sorguları için daha fazla bilgiye sahip olmak istiyorsanız, <a href="http://www.artfulsoftware.com/infotree/queries.php" target="_blank"><br />
 buraya tıklayın <i class="fa fa-external-link"></i></a>  (site ingilizcedir)</div></div>
]]></content:encoded>
			<wfw:commentRss>https://www.bilgisayar.me/index.php/2015/06/13/kompleks-mysql-sorgulari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
