2023-08-08 : Bu komut özetini kısaca ve hızlıca MySql RDBMS'ini tekrar etmek için oluşturdum.
2023-11-03 : Güncellenen konular ve deneyimimin artması ile yeni bilgiler ekledim.
2023-11-04 : MYSQL dosyasından bu konuyu çıkarttım.
2024-10-01 : Yazılım güncellemeleri uygulandı.
Asla konusu kapanmayacak bir konu olan veritabanı programlamada anlayışınızı ve becerilerinizi sağlamlaştırmak için uygulamalı pratik ve gerçek dünya projelerine odaklanmayı unutmayın, bana da unutturmayın.
SQL (Structured Query Language), veritabanlarında işlemlerini gerçekleştirmek için kullanılan bir sorgu dilidir.
Veritabanlarının temel bileşenidir ve veritabanı yönetim sistemleri (DBMS) tarafından desteklenir.
-
Veritabanı işlemleri: SQL, veritabanlarında veri depolama, alma, güncelleme ve silme işlemlerini gerçekleştirmek için kullanılır.
-
Sorgulama: SQL, veritabanlarında sorgulama işlemleri gerçekleştirmek için kullanılır.
-
Veri tanımlama: SQL, veritabanlarında veri tanımlama işlemleri gerçekleştirmek için kullanılır.
-
Veri kontrolü: SQL, veritabanlarında veri kontrolü işlemleri gerçekleştirmek için kullanılır.
-
Veritabanı yönetimini kolaylaştırır: SQL, veritabanı yönetimini kolaylaştırır ve veritabanı işlemlerini hızlandırır.
-
Veri güvenliğini sağlar: SQL, veritabanı güvenliğini sağlar ve verilerin korunmasını sağlar.
-
Veri analizini kolaylaştırır: SQL, veritabanı analizini kolaylaştırır ve verilerin analizini hızlandırır.
-
Karmaşıktır: SQL, karmaşık bir dil olabilir ve öğrenilmesi zor olabilir.
-
Hata yapabilir: SQL, hata yapabilir ve veritabanına zarar verebilir.
-
Güvenlik açıkları olabilir : SQL, güvenlik açıkları olabilir ve veritabanına saldırılar olabilir.
SELECT ___ FROM ___
SELECT column1, column2 FROM table_name -- sadece column1 ve 2 yi seçer SELECT * FROM table_name -- tablodaki her sütunu seçer
SELECT DISTINCT ____ FROM ___
-- DISTINCT: Sütundaki benzersiz değerleri alır SELECT DISTINCT column1, column2 FROM table_name
SELECT ___ FROM ___ WHERE kosul
-- WHERE : madde kayıtları filtrelemek için kullanılır. -- Sadece belirtilen koşulu sağlayan kayıtları çıkarmak için kullanılır. SELECT * FROM table_name WHERE valuee>10 SELECT * FROM table_name WHERE CustomerID = 1 -- = eşitse -- > büyükse -- < küçükse -- >= <= büyük/küçük eşitse -- != <> eşit değilse -- BETWEEN arasındaysa -- LIKE benzerse -- IN birden fazla değerlerden birine eşitse
AND / OR / NOT / AND NOT / OR NOT /
-- __ AND __ : && : 2'si gerekli -- __ OR __ : || :1'i gerekli -- NOT __ : != :2'si de olmamalı SELECT * FROM Ogrenciler WHERE County = 'TR' AND City = 'Ankara' SELECT * FROM Ogrenciler WHERE County = 'TR' OR Langg = 'TR' SELECT * FROM Ogrenciler WHERE County IS NOT NULL AND NOT AGE > 33 SELECT * FROM Ogrenciler WHERE NOT City = 'Istanbul' OR NOT City = 'Ankara' -- AND ( __ OR __ ) : Parantez kullanabilirsin
ORDER BY __ ASC | DESC
-- ORDER BY __ : artan düzende sıralar -- ORDER BY __ ASC : artan düzende sıralar -- ORDER BY __ DESC: azalan düzende sıralar SELECT * FROM Ogrenciler ORDER BY Ad SELECT * FROM Ogrenciler ORDER BY Puan DESC SELECT * FROM Ogrenciler ORDER BY Country ASC, Ad DESC
INSERT INTO __ VALUES __
-- INSERT INTO: Yeni kayıtlar eklemek için kullanılır INSERT INTO Ogrenciler VALUES (0, 'Ali', 12, 1 , 20, 30, 40) INSERT INTO Ogrenciler (O_id, Ad) VALUES (1, 'Veli') INSERT INTO Ogrenciler (O_id, Ad, Yas) VALUES (1, 'Osman', 15), (1, 'Hakan', 13)
DELETE ___
-- DELETE : Tabloda var olan kayıtları silmek için kullanilir. DELETE FROM table_name WHERE condition; DELETE FROM Ogrenciler WHERE Sinif > 4 AND (Ad LIKE 'X%' OR Ad LIKE 'x%') -- DİKKATTT Tum Tablonun icindekileri siler DELETE FROM table_name
___ LIMIT _
-- LIMIT : döndürülecek row sayısını belirtmek için kullanılır. SELECT column_name(s) FROM table_name WHERE condition LIMIT numberr SELECT O_id , Ad FROM Ogrenciler WHERE Puan > 3.9 LIMIT 3 SELECT * FROM Ogrenciler WHERE Lang = 'en' LIMIT 10 SELECT column_name(s) FROM table_name LIMIT numberr SELECT * FROM Sehirler LIMIT 85 -- ORDER BY gibi sıralayıcılarla da kullanabilirsiniz.
MIN() MAX() AVG() SUM() COUNT()
-- DISTINCT: Sütundaki benzersiz değerleri alır SELECT COUNT(column_name) FROM table_name WHERE condition; SELECT AVG(column_name) FROM table_name LIMIT 5 SELECT SUM(column_name) FROM table_name SELECT COUNT(Country) FROM Ogrenciler Where Puan > 5 SELECT MIN(Puan) AS Dusuk FROM Ogrenciler SELECT MAX(Puan) AS Yuksek FROM Ogrenciler Sinif = 1
_______ LIKE ___
-- LIKE : Sütunda belirtilen bir dizimi aramak için SELECT column1, column2, ... FROM table_name WHERE columnn LIKE pattern; SELECT * FROM Ogrenciler WHERE Ad LIKE 'O%' SELECT * FROM Ogrenciler WHERE City LIKE 'A%' -- % : Sıfır veya daha fazla karakteri temsil eder -- _ : Tek bir karakteri temsil eder -- 'a%' : a ile başlıyan -- '%a' : a ile biten -- '% %' : boşluk olan -- '_r%' : 2. harfi r olan -- 'a_%' : a ile başlıyan en az 2 karakterli metin -- 'a%b' : a ile başlıyan b ile biten
___ IN __
-- IN : birden fazla koşulun kısaltılmış halidir SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...); SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT STATEMENT); SELECT * FROM Ogrenciler WHERE Puan IN (4, 5, 6) SELECT * FROM Ogrenciler WHERE City IN ('ankara', 'instanbul') SELECT * FROM Ogrenciler WHERE Ad NOT IN ('Ali', 'ali', 'Veli', 'veli')
_____ BETWEEN __ AND __
-- BETWEEN: belirli bir aralıktaki değerleri seçer. Sayi, Metin, Tarih... SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2; SELECT * FROM Ogrenciler WHERE Puan BETWEEN 4 AND 6 SELECT * FROM Ogrenciler WHERE Tarih NOT BETWEEN '2000-01-25' AND '2010-10-30' SELECT * FROM Ogrenciler WHERE Ad BETWEEN 'A' AND 'B'
_________ AS __
-- AS: bir tabloya veya tablodaki bir sütuna geçici bir isim vermek için kullanılır. -- Sütun adlarını daha okunabilir hale getirmek için sıklıkla kullanılır. -- Bir takma ad yalnızca söz konusu sorgu süresince var olur. SELECT column_name AS alias_name FROM table_name; SELECT column_name(s) FROM table_name AS alias_name; SELECT O_id AS idd , Ad AS Ogrenci_adi FROM Ogrenciler SELECT O_id, Ad, Yas FROM Customers AS c, Orders AS o WHERE City = 'ankara';
________ JOIN __ ON __
-- JOIN : 2+ tablodaki satırları, ilişkili bir sütuna göre birleştirir SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Order INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID; SELECT Liste1.id FROM Liste2 LEFT JOIN Soyad ON Liste1.id = Liste2.id; -- INNER JOIN: Eşleşen (ortak) değerlere sahip kayıtlar -- LEFT JOIN: Sol tablodaki tüm kayıtları ve sağ tablodaki eşleşen kayıtlar -- RIGHT JOIN: Sağ tablodaki tüm kayıtları ve sol tablodaki eşleşen kayıtlar -- CROSS JOIN: Her iki tablodan da tüm kayıtlar
__________ UNION _________
-- UNION: Sütundaki benzersiz değerleri alır SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;
_____ GROUP BY __
-- DISTINCT: Sütundaki benzersiz değerleri alır SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);
______ HAVING ___
-- HAVING : WHERE ile benzerdir ama belirgin farkı toplama yapar SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition ORDER BY column_name(s); SELECT COUNT(O_id), Sinif, Sehir FROM Ogrenciler GROUP BY Sinif HAVING COUNT(O_id) > 20
__________ EXISTS _______
-- EXISTS : alt sorgudaki bir kaydın varlığını test etmek. SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition); SELECT * FROM Ogrenciler WHERE EXISTS ( SELECT 1 FROM Ogrenciler WHERE Sinif IS NOT NULL);
__________ ANY _____
-- ANY : alt sorgu değerlerinden HERHANGİ BİRİ koşulu karşılıyorsa TRUE döndürür SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition); SELECT * FROM Ogrenciler Where O_id = ANY ( SELECT O_id FROM Kalanlar WHERE Puan>2 )
__________ ALL _____
-- ANY : aralıktaki tüm değerler için doğruysa TRUE olacağı anlamına gelir. SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition); SELECT * FROM Ogrenciler Where Puan > ALL ( SELECT Puan FROM Sinavlar )
CASE _____ WHEN _ THEN ELSE_____ END
-- CASE: Koşulları inceler ve ilk koşul karşılandığında değer döndürür -- Switch - Case - Default gibi. -- Hiçbir koşul doğru değilse, cümledeki else değeri döndürür -- SELECT, ORDER BY, WHERE, HAVING, UPDATE, INSERT gibi ifadelerden sonra da.. CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionN THEN resultN ELSE result END; SELECT O_id, Ad, Puan, CASE WHEN Puan >= 90 THEN 'A' WHEN Puan >= 80 THEN 'B' WHEN Puan >= 70 THEN 'C' WHEN Puan >= 60 THEN 'D' ELSE 'F' END AS BasariDurumu FROM Ogrenciler; -- En Sevdiğim <3
IFNULL() COALESCE()
-- IFNULL : ifadenin NULL olması durumunda 2. değeri döndürür. -- COALESCE: ifadenin NULL olması durumunda sonraki değerlerden döndürür. SELECT Ad, Puan * IFNULL(ders_sayisi, 0) FROM Ogrenciler; SELECT Ad, Puan * COALESCE(ders_sayisi, donem_sayisi, 0) FROM Ogrenciler;
Nice to see you. Good luck!!!