SQL Komutları – Web Tasarım & Programlama
SQL

SQL Komutları

SQL, ilişkisel bir veritabanındaki verilerin alınması ve yönetimi için tasarlanmış bir veritabanı dilidir. SQL Yapılandırılmış Sorgu Dili anlamına gelir. Bu yazıda size SQL’de sıklıkla kullanılan komutların yazımlarını ve kullanım örneklerini yazacağım.

Bu bilgiler bir SQL için gerekli olan konuların çoğunu ve nasıl çalıştığını anlamanızı sağlayacak.

SQL yazım kuralları , tüm temel SQL sözdizimini kavrayıp, SQL diline hızlı bir başlangıç yapmanızı sağlayacaktır.

Bu yazı ile sık kullanılan SQL komutlarına özet olarak ulaşma şansı bulacaksınız.

Ayrıca Yazının sonunda bu sayfada anlatılan SQL Komutlarına ait onlarca örneği barındıran SQL Çalışma Soruları ve Cevaplarına ait linke tıklayabilirsiniz.

Tüm bu SQL komutları , SELECT, INSERT, UPDATE, DELETE, ALTER, DROP, CREATE, USE, SHOW gibi anahtar kelimelerin herhangi biriyle başlar ve  noktalı virgülle (;) biter.

Yukarıdaki büyük harfler ile yazılmış olmasına rağmen SQL dili büyük küçük harf duyarsızdır.  UPDATE, Update yada update aynı anlamları ifade etmektedir.

 

SQL Komutları Yazım Kuralları

 

SQL SELECT Kullanımı

SQL SELECT  Komutu: SQL SELECT deyimi,  veritabanı tablosundan verileri tablo şeklinde almak için kullanılır. Bu sonuç tabloları da sonuç kümeleri olarak adlandırılır. Bütün SQL dillerinde kullanımı aynıdır.Aşağıda SELECT Komutu kullanımları ve örnekleri bulunmaktadır.

SQL Server / MySQL / SQLite / Oracle:

sutun1, sutun2, … değerleri istediğimiz tablonun alanlarını göstermektedir.

 

Tüm SQL Sütunlarını alma: Tüm satırları çekmek için yazılması gereken SQL SELECT komutu ise şu şekilde olmalıdır.

SQL Server / MySQL / SQLite / Oracle:

 

SQL DISTINCT Kullanımı

SQL DISTINCT Kullanımı :SELECT DISTINCT deyimi, yalnızca farklı (farklı) değerleri döndürmek için kullanılır.
Bir tablonun içinde, bir sütun genellikle birçok yinelenen değer içerir; ve bazen sadece farklı (farklı) değerleri listelemek istersiniz. Böyle durumlarda Distinct Komutu kullanılır. Kullanımı aşağıdaki gibidir.

SQL Server / MySQL / SQLite / Oracle:

 

SQL SELECT WHERE Kullanımı

SQL SELECT WHERE Kullanımı : WHERE cümlesi tablodaki kayıtları filtrelemek için kullanılır.
WHERE yan tümcesi, yalnızca belirtilen bir koşulu yerine getiren kayıtları ayıklamak için kullanılır. Belitilen koşulu yerine getiren kayıtların listelenmesi için kullanılan WHERE komutu kullanımı aşağıdaki gibidir.

SQL Server / MySQL / SQLite / Oracle:

 

 

SQL AND / OR / NOTKullanımı

WHERE yan tümcesi AND, OR ve NOT işleçleri ile birleştirilebilir.
AND ve OR işleçleri, birden çok koşulu temel alarak kayıtları filtrelemek için kullanılır:

AND operatörü, AND ile ayrılan tüm koşullar DOĞRU ise bir kayıt görüntüler.
OR operatörü, OR tarafından ayrılan koşullardan herhangi biri DOĞRU ise bir kayıt görüntüler.
NOT operatörü koşullar DOĞRU OLMADIĞINDA bir kayıt görüntüler.

SQL AND, OR, NOT Kullanımı aşağıdaki bibidir.

SQL Server / MySQL / SQLite / Oracle:

Örnek:sirket tablosunda yaşı 25′ ten büyük ve maaşı 6500′ e büyük eşit olanları listeleme

Yukarıdaki örnekte AND yerine OR kullanılsaydı, iki şarttan birini yerine getiren kayıtlar listelenmiş olacaktı. Şöyle ki maaşına bakılmaksızın yaşı 25′ ten büyük olan tüm kayıtlar ve yaşına bakılmaksızın maaşı 6500′ den büyük olan tüm kayıtlar listelenecekti.

SQL SELECT IN Kullanımı :

SQL SELECT IN Kullanımı :  IN operatörü, bir WHERE maddesinde birden çok değer belirtmenize izin verir.
IN komutu genellikle  birden fazla OR koşulu kullanılacağı zaman SQL yazımını kolaylaştırmak için kullanılır.

Genel kullanımı ve örneği alttaki kodlardan görebilirsiniz.

SELECT IN eşleşen kayıtlar için kullanılabileceği gibi,  NOT IN ile de eşleşmenin dışındaki kayıtları çekmek için kullanılabilir.
SELECT IN ile başka bir SQL SELECT ifadesinden dönen değeri de seçip IN içinde kullanmak mümkündür.
Bilgi: İçerideki SELECT ifadesinden dönen kaydın tek değer olması gerektiğine dikkat edilmesi de gerekir.

SQL Server / MySQL / SQLite / Oracle:

Örnek: Musteri tablosunda ülkesi Almanya,Fransa ya da ABD olan kayıtları listeleyelim.

Yukarıdaki SQL kodlarını OR kullanarakta yapabilirsiniz. OR kullanarak yazılan SQL kodunda 3 tane OR ifadesi olacaktır.

SQL BETWEEN Kullanımı

SQL BETWEEN Kullanımı : BETWEEN operatörü, belirli bir aralıktaki değerleri seçer. Değerler sayı, metin veya tarih olabilir.
BETWEEN operatörü kullanımındafiltrelemeye  başlangıç ​​ve bitiş değerleri dahildir.

Ayrıca BETWEEN ifadesinin başına NOT getirilmek şartı ile şartın dışında kalanlar da sorgulanabilir.

SQL Server / MySQL / SQLite / Oracle:

SQL LIKE Kullanımı

SQL LIKE Kullanımı : SLIKE işleci bir sütunda belirtilen bir deseni aramak için bir WHERE yan tümcesinde kullanılır.  Örnek olarak ilk iki harfi “Ta” olan, ya da 3. harfi Y, 5. harfi K olan gibi..

LIKE operatörü ile birlikte kullanılan iki joker karakter vardır:

% – Yüzde işareti sıfır, bir veya birden çok karakteri temsil eder.
_ – Alt çizgi tek bir karakteri temsil eder

SQL Server / MySQL / SQLite / Oracle:

Like Komutu Desen kullanımı Örnekleri

LIKE Kullanım Örneği Açıklama
WHERE sirket LIKE ‘a%’ “a” harfi ile başlayan kayıtları döndürür.
WHERE sirket LIKE ‘%a’ “a” harfi ile biten kayıtları döndürür.
WHERE sirket LIKE ‘%ya%’ Herhangi bir pozisyonda ‘ya’ olan herhangi bir değeri bulur.
WHERE sirket LIKE ‘_r%’ İkinci karakteri ‘r’ olan kayıtları döndürür.
WHERE sirket LIKE ‘a_%_%’ ‘a’ ile başlayan ve en az 3 karakter uzunluğunda olan tüm değerleri bulur.
WHERE sirket LIKE ‘a%o’  ‘a’ ile başlayan ve ‘o’ ile biten kayıtları döndürür.

SQL ORDER BY Kullanımı

SQL ORDER BY Kullanımı : ORDER BY anahtar sözcüğü, sonuç kümesini artan veya azalan sırada sıralamak için kullanılır.
ORDER BY anahtar sözcüğü, kayıtları varsayılan olarak artan sırada sıralar.
Kayıtları azalan sırayla sıralamak için DESC anahtar sözcüğünü kullanın.

ORDER BY komutu birden fazla sütunuda sıralayabilir. Örneğin isimleri artan maaşları azalan sıralama gibi.

SQL Order By Komutu Kullanımı ve Örneği aşağıdaki gibidir.

SQL Server / MySQL / SQLite / Oracle:

 

SQL GROUP BY Kullanımı

SQL GROUP BY Kullanımı  : GROUP BY deyimi genellikle sonuç kümesini bir veya daha fazla sütunla gruplamak için toplama işlevleri (COUNT, MAX, MIN, SUM, AVG) ile kullanılır.
Bilgi: Bir kural değildir ama  GROUP BY ile kümelenen alan SELECT ifadesinden sonra kullanılır.
Kümeleme fonksiyonlarına aggregate fonksiyonlar denilmektedir.

SQL Server / MySQL / SQLite / Oracle:

 

SQL COUNT Kullanımı

SQL COUNT Kullanımı : COUNT () komutu , belirtilen bir ölçütle eşleşen satır sayısını döndürür. Örnek olarak maaşı 3000 üzeri olan kayıt sayısı.

SQL Server / MySQL / SQLite / Oracle:

Örnek: Maası 3000 ve üzeri kayıtların adetini gösterelim.

 

SQL SUM Kullanımı

SQL SUM Kullanımı :SUM () komutu, sayısal bir sütunun toplamını döndürür.

SQL Server / MySQL / SQLite / Oracle:

 

SQL AVG Kullanımı

SQL AVG Komutu Kullanımı : AVG()  komutu Belirtilen sütundaki değerlerin ortalamasını getirir.

SQL Server / MySQL / SQLite / Oracle:

 

SQL HAVING Kullanımı

SQL HAVING Kullanımı :  GROUP BY ile gruplanan kayıtları sınırlandırmak için kullanılır.

WHERE şartı bireysel kayıtlar için sınırlandırma yaparken HAVING sadece gruplama için kullanılabilir.
Bilgi: HAVING ve WHERE aynı sorgularda kullanılabilir.

SQL Server / MySQL / SQLite / Oracle:

 

SQL CREATE TABLE Kullanımı

SQL CREATE TABLE Kullanımı : CREATE TABLE ifadesi, bir veritabanında yeni bir tablo oluşturmak için kullanılır.

Aşağıdaki, CREATE TABLE ifadesinin temel sözdizimini göstermektedir.

Aşağıdaki İfadede;

  • CREATE TABLE ifadesi, oluşturulacak yeni tablonun adını ve isteğe bağlı olarak şema adını belirtmek için kullanılır.
  • Bu ifadeden sonra parantez içindeki ifadeler sütun ya da diğer ifadeyle alan adlarını belirlemek için kullanılır. Genellikle bir tablonun içinde birden fazla sütun bulunmaktadır. Bu durumda , her sütun tanımını virgülle ayırmanız gerekir.
    Bir sütun tanımı, sütun adını takip eden veri türü şeklindedir. Örneğin NUMBER, VARCHAR, DATE vb. Daha sonra ise NOT NULL, PRIMARY KEY VB , bir sütun kısıtlaması varsa yazılmalıdır..

 

SQL Server / MySQL / SQLite / Oracle:

Örnek:

 

 

SQL DROP TABLE Kullanımı

SQL DROP TABLE Kullanımı : Mevcut SQL Tablosunu kaldırmak için kullanılır. Tablo ve içindeki veriler geri dönüşü olmayacak şekilde silinecektir.

SQL Server / MySQL / SQLite / Oracle:

Örnek:

 

SQL CREATE INDEX Kullanımı :

 SQL CREATE INDEX İfadesi,  tablolarda dizinler oluşturmak için kullanılır. Oluşturulan diziler ile sorgulama sonuçları veritabanından çok daha hızlı bir şeklide getirilir.

SQL Server Yazım:

MySQL Yazım:

SQLite Yazım:

 

Oracle Yazım:

 

SQL DROP INDEX Kullanımı  :

Oluşturulmuş index değerini kaldırmak için kullanılır. Bir indeks kaldırıldığında, performansın yavaşlatılabileceği veya geliştirilebileceğine dikkat edilmelidir.

SQL Server Yazım:

MySQL Yazım:

SQLite Yazım:

Oracle Yazım:

SQL TRUNCATE TABLE Kullanımı  :

SQL TRUNCATE TABLE komutu, mevcut bir tablodaki tüm verileri silmek için kullanılır.

SQL Server Yazım:

MySQL Yazım:

SQLite Yazım:

Oracle Yazım:

 

SQL ALTER TABLE Kullanımı  :

ALTER TABLE ifadesi, varolan bir tabloda sütun eklemek, silmek veya değiştirmek için kullanılır.
ALTER TABLE ifadesi, varolan bir tablo üzerinde çeşitli kısıtlamalar eklemek ve silmek için de kullanılır.

SQL Server Yazım:

MySQL Yazım:

SQLite Yazım:

Örnek: Aşağıdaki SQLite komutları sirket tablosunu firma olarak yeniden adlandırır.

Oracle Yazım:

 

SQL ALTER TABLE IDENTITY Kulanımı:

Otomatik artan sayı yapmak için sütun oluşturulurken yapılası gerekiyor.

SQL Server Yazım:

MySQL Yazım:

SQLite Yazım:

Oracle Yazım:

 

SQL INSERT INTO Kullanımı  :

SQL INSERT INTO İfadesi, tabloya yeni kayıtlar eklemek için kullanılır.

SQL Server Yazım:

MySQL Yazım:

 

SQLite Yazım:

Örnek:

 

Oracle Yazım:

 

SQL UPDATE Kullanımı   :

UPDATE komutu, bir tablodaki varolan kayıtları değiştirmek amacıyla kullanılır.
Önemli Not: şart belirtilmediğinde güncellemeden tablodaki tüm kayıtlar etkilenecektir.

SQL Server Yazım:

MySQL Yazım:

SQLite Yazım:

 

Oracle Yazım:

 

SQL DELETE Kullanımı  :

SQL DELETE İfadesi, veritabanından kayıt yada kayıtları silmek için kullanılır.

Önemli Not: Şart belirtilmezse tablodaki tüm kayıtlar silinecektir.

 

SQL Server Yazım:

MySQL Yazım:

 

SQLite Yazım:

 

Oracle Yazım:

 

SQL CREATE DATABASE Kullanımı  :

SQL CREATE DATABASE komutu yeni bir database (veritabanı) oluşturmak için kullanılır.

SQL Server Yazım:

MySQL Yazım:

SQLite Yazım:

Oracle Yazım:

 

SQL DROP DATABASE Kullanımı  :

Bir veritabanı kaldırılmak yani silinmek istenirse SQL DROP DATABASE  komutu kullanılır.

SQL Server Yazım:

MySQL Yazım:

SQLite Yazım:

 

Oracle Yazım:

 

SQL USE Kullanımı  : SQL Komutlarının çalıştırılacağı veritabanını seçmek için kullanılır.

SQL Server Yazım:

MySQL Yazım:

SQLite Yazım:

Oracle Yazım:

 

SQL Create View Komutu Kullanımı:

SQL’de, görünüm bir SQL ifadesinin sonuç kümesine dayalı sanal bir tablodur.

Bir görünüm, gerçek bir tablo gibi, satır ve sütun içerir. Görünümdeki alanlar, veritabanındaki bir veya daha fazla gerçek tablodan alanlardır.

SQL işlevlerini, WHERE ve JOIN deyimlerini bir görünüme ekleyebilir ve verileri tek bir tablodan geliyormuş gibi sunabilirsiniz.

SQL Yazım:

ÖRNEK SQL KOMUTLARI SORULARI ve CEVAPLARI için TIKLA

1 Yorum

  • Ahmet hocam merhabalar, benim SUM fonksiyonu ileilgili bir sorunum var bir türlü çözemedim.
    Olau şu şekilde tbl_alis ve tbl_satis şeklinde iki tane tablom var. tbl_alis (id, ted_id, urun_id, adet, fiyat, tutar) şeklinde alanlarım var. tbl_satis (id, urun_id, adet, fiyat, tutar) alanlarım var. Amacım şu şekilde bir sorgu gerçekleştirmek; hangi üründen toplam kaç adet alınmış ve toplam kaç adet satılmış.
    sorgum şu şekilde;

    SELECT tbl_alis.urun_id, SUM(tbl_alis.adet) [alis_adet], SUM(tbl_satis.adet) [satis_adet]
    FROM tbl_alis FULL JOIN tbl_satis ON tbl_satis.urun_id=tbl_alis.urun_id
    GROUP BY tbl_alis.urun_id

    diyelim ki 3 farklı ürünüm olsun ve aliş tablosuna her üründen 5er tane alış ekleyelim (toplam 3 kayıt var)
    ve satış tablosuna bu ürünleri tek celsede satalım (toplam 3 kayıt var)
    bu şekilde yapınca sorgu sorunsuz çalışıyor.

    urun_id / alis_adet / satis_adet
    1 / 5 / 5
    2 / 5 / 5
    3 / 5 / 5

    sorun şu ki satış tablosuna bu ürünlerin kimini 1er1er kimini 2şer2şer satış kaydı atadık diyelim;
    (1 numaralı ürün için 1ad+2ad+1ad+1ad toplam 4kayıt),
    (2 numaralı ürün için 2ad+2ad+1ad toplam 3kayıt),
    (3 numaralı ürün için 3ad+2ad toplam 2kayıt)

    bu sefer sonuç;

    urun_id / alis_adet / satis_adet
    1 / 20 / 5
    2 / 15 / 5
    3 / 10 / 5

    şeklinde oluyor. sorgunun yaptığı hatalı hesaplama alış adedini satışta o ürüne ait kaç tane kayıt varsa o sayıyla çarpıyor, aynı ürün için alış kayıtlarda arttıkça satış adetlerinin toplamınıda o kadar kayıtla çarpıyor. sonucu nasıl doğru hesaplatabilirim?

Yorum yap