Merhaba arkadaşlar yeni bir eğitim serisine başlıyoruz SQL eğitim serisi. Bu SQL eğitim serisi nde sizlere SQL sorgulama dilini temelden ileri seviyeye örneklerle aktarmaya çalışacağım. Bu seride SQL nedir, ne için kullanılır ve syntax larının anlamı nelerdir gibi soruların cevaplarını bulacağız.
Bu eğitim serisinde CREATE, INSERT, SELECT, ORDER BY ve DISTINCT komutlarını inceleyeceğiz.
Bu yazı boyunca sorgularımızı SQL Server üzerinde yazacağız. SQL sorgu dilini MySQL, SQLite ve MSSQL gibi çalıştığınız yada çalışmak istediğiniz her platformda rahatça uygulayabilirsiniz. Eğer MSSQL yüklemek ve MSSQL de çalışmak isterseniz buradaki yazımızı okuyabilirsiniz.
SQL Sözdizimi (SQL Syntax)
SQL’i, Sözdizimi adı verilen benzersiz bir kurallar ve yönergeler dizisi izler. Bu öğretici, tüm temel SQL söz dizimini listeleyerek SQL ile hızlı bir başlangıç yapmanızı sağlar.
Tüm SQL ifadeleri SELECT, INSERT, UPDATE, DELETE, ALTER, DROP, CREATE, USE, SHOW gibi anahtar kelimelerle başlar ve tüm ifadeler noktalı virgül (;) ile biter.
Burada dikkat edilmesi gereken en önemli nokta, SQL’in büyük / küçük harfe duyarlı olmamasıdır, bu da SELECT ve select’in SQL deyimlerinde aynı anlama sahip olduğu anlamına gelir. Oysa MySQL, tablo adlarında fark yaratır. Yani, MySQL ile çalışıyorsanız, o zaman veritabanında var olan tablo isimlerini vermeniz gerekir.
SQL CREATE TABLE Kullanımı
CREATE komutu SQL de yeni bir şey oluşturmamıza yardımcı olur. Bir veri tabanı yada bir tablo oluşturmak için CREATE komutu kullanılır.
Bir veri tabanı oluşturmak için CREATE DATABASE veritabani_adi
Teknokodi adında veritabanımızı oluşturalım. Bunun için
Bizim yeni bir tabloya ihtiyacımız var ve bu yüzden CREATE TABLE komutunu kullanabiliriz. CREATE TABLE ifadesi ile birlikte alanları ve bu alanların veri tiplerini de oluşturmalıyız. Yukarıdaki resimde verilen kişi tablosunu oluşturmak için;
Burada int veri tipini sayısal değer alacak alanlara verdik. Varchar veri tipini ise harf ve rakam alabilecek alanlar için kullandık. Parantez içinde 50 yazmamızın sebebi ise maksimum alabileceği karakter sayısına işaret etmektedir.
NOT NULL yazığımız yerler kesinlikle doldurulması gereken alanlardır. ID alanımıza hem IDENTITY(1,1) hem de PRIMARY KEY(Id) özelliğini verdik. Burada PRIMARY KEY ile birincil anahtar olduğunu belirttik ve IDENTITY(1,1) ile 1 den başlayıp birer birer artarak otomatik doldurulacak bir alan olduğunu söyledik.

SQL INSERT INTO Kullanımı
INSERT INTO komutu SQL de oluşturduğumuz tablolara değer girmemize olanak sağlayan bir komuttur. 2 farklı şekilde kullanılabilir.
Hangi alanlara değer girileceğini seçer ve onların değerlerini girebiliriz. Burada yine tüm alanları da seçebiliriz yada 1 alan da seçebiliriz.
INSERT INTO tablo_name (column1, column2, column3, …)
VALUES (value1, value2, value3, …);
Eğer tüm alanları dolduracak isek sadece tablo adını yazıp değerlerini dolduradabiliriz.
INSERT INTO table_name
VALUES (value1, value2, value3, …);
Şimdi örneğimize göre biz de tablomuzu dolduralım;
INSERT INTO USERS (ad, soyad, yas, meslek, adres)
VALUES
(‘Ahmet’,’Can’,28,’Mühendis’,’Kayseri’),
(‘Kübra’,’Şimşek’,26,’Mühendis’,’Ankara’),
(‘Ali’,’Zengin’,25,’Doktor’,’İstanbul’),
(‘Zehra’,’Sarı’,32,’Psikolog’,’İzmir’),
(‘Ayşe’,’Kuru’,17,’Öğrenci’,’Antalya’);

SQL SELECT Kullanımı
Şimdi INSERT INTO ile kaydettiğimiz kayıtları görüntülemek için SELECT komutunu kullanalım. SELECT komutunun birden fazla kullanımı vardır ve FROM ile kullanılır.
* ile kullanımı.
SELECT ifadesini * ile kullanırsak tüm kayıtları ve alanları bize getirecektir. USERS tablomuzdaki kayıtları görüntülemek için
SELECT * FROM USERS sorgusunu kullanabiliriz.

Eğer sadece tek bir alanın verilerini getirmek istersek * yerine o alanın adını yazmamız yeterlidir.
SELECT ad FROM veya SELECT ad, soyad FROM .. gibi
USERS tablosundan kullanıcıların isimlerini ve yaşlarını getirelim;

SQL ORDER BY Kullanımı
Kayıtları belirlediğimiz alanlara göre alfabetik yada numerik olarak azalan yada artan şekilde sıralama yapmamızı sağlar.
SELECT * FROM table_name ORDER BY alan_adi {ASC|DESC} şeklinde kullanılır. ASC (ascending) parametresi ile küçükten büyüğe, DESC (descending) parametresi ile büyükten küçüğe göre sıralar.
Şimdi tablomuzda isimleri büyükten küçüğe doğru (Z-A) sıralayalım.

Şimdi de tablomuzda yaşları küçükten büyüğe doğru (0-9) sıralayalım.

SQL DISTINCT Kullanımı
Tablomuzdaki belirttiğimiz bir alandaki tekrarlı kayıtları eleyerek o kayıttan sadece 1 adet göstermesini sağlar.
SELECT DISTINCT column1, column2….columnN FROM table_name şeklinde kullanılır.
Bizim tablomuzdaki meslek sütununda 2 adet mühendis kaydı var. Bu meslek sütununu DISTINCT sorgusundan geçirirsek.
