2024-04-04 07:27:01 +00:00
|
|
|
|
---
|
|
|
|
|
contributors:
|
|
|
|
|
- ["Metin Yalçınkaya", "https://github.com/mtnylnky"]
|
|
|
|
|
filename: learnsql-tr.sql
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
-- Yorumlar iki tire ile başlar
|
|
|
|
|
|
|
|
|
|
-- KISITLAR
|
|
|
|
|
Not null -- Bir kolon asla boş olamaz
|
|
|
|
|
default -- Boş olan yerlere varsayılan bir değer atar
|
|
|
|
|
unique -- Bir kolondaki tüm değerlerin farklı olması kısıtlaması
|
|
|
|
|
primary key -- Bir tablodaki her veri için kimlik bilgisi niteliğindedir
|
|
|
|
|
check -- Bir kolondaki değerlerin belli bir kısıtlamayı sağlamasını sağlar
|
|
|
|
|
|
|
|
|
|
-- Tablo oluşturulur
|
|
|
|
|
CREATE TABLE tablo1 ();
|
|
|
|
|
|
|
|
|
|
-- Tabloyu içerisinde kolonlar ile oluşturma
|
|
|
|
|
CREATE TABLE tablo1(id INTEGER PRIMARY KEY NOT NULL UNIQUE, ad TEXT, soyad TEXT, yas INTEGER);
|
|
|
|
|
|
|
|
|
|
-- TABLO varlığını kontrol eder
|
|
|
|
|
.table
|
|
|
|
|
|
|
|
|
|
-- Veri tabanında olan bütün tabloları görüntüler.
|
|
|
|
|
.schema
|
|
|
|
|
|
|
|
|
|
-- Satır ekle
|
|
|
|
|
INSERT INTO tablo1 ( ad, soyad) VALUES ("Deger1","Deger2");
|
|
|
|
|
|
|
|
|
|
-- Veritabanında tablo üzerindeki verileri görüntüle
|
|
|
|
|
-- Sadece 'ad' gibi sınırlı bir veri için
|
|
|
|
|
SELECT ad FROM tablo1;
|
|
|
|
|
-- Bütün veriler için
|
|
|
|
|
SELECT * FROM tablo1;
|
|
|
|
|
|
|
|
|
|
-- Veri güncelleme
|
|
|
|
|
UPDATE tablo1 SET ad = "deger1-2"; WHERE name = "Deger1";
|
|
|
|
|
|
|
|
|
|
-- Satır sil
|
|
|
|
|
DELETE FROM tablo1 WHERE id = 1;
|
|
|
|
|
DELETE FROM tablo1 WHERE ad = "Deger1" OR ad = "Deger2";
|
|
|
|
|
|
|
|
|
|
-- Tabloya sonradan kolon ekleme
|
|
|
|
|
ALTER TABLE tablo1 ADD COLUMN email TEXT;
|
|
|
|
|
|
|
|
|
|
-- Tablodaki kolon adı değiştirme
|
|
|
|
|
EXEC sp_rename ' tablo1.[ad]', Ad, 'COLUMN';
|
|
|
|
|
|
|
|
|
|
-- Tablo adı değiştirme
|
|
|
|
|
ALTER TABLE table1 RENAME TO Table1;
|
|
|
|
|
|
|
|
|
|
-- Tabloyu silme
|
|
|
|
|
DROP TABLE Table1;
|
|
|
|
|
|
|
|
|
|
-- BİR TABLOYU BAŞKA TABLO KULLANARAK DOLDURMAK
|
|
|
|
|
INSERT INTO Tablo2 SELECT id,ad, soyad, email from Tablo1;
|
|
|
|
|
|
|
|
|
|
-- LIKE KOMUTU
|
|
|
|
|
-- Belirli bir kritere göre arama yaparken kullanılır
|
|
|
|
|
-- Adı 'A' ile başlayan veriler
|
|
|
|
|
SELECT * FROM tablo1 WHERE adi LIKE "A%";
|
|
|
|
|
-- İçinde 'A' olan veriler
|
|
|
|
|
SELECT * FROM tablo1 WHERE adi LIKE "%A%";
|
|
|
|
|
|
|
|
|
|
-- LIMIT KOMUTU
|
|
|
|
|
-- Gösterilen satır sayısını sınırlamak için
|
|
|
|
|
SELECT * FROM Tablo1 LIMIT 6;
|
|
|
|
|
-- Gösterilen satırları belirli bir noktadan başlamak üzere sınırlamak için
|
|
|
|
|
SELECT * FROM Tablo1 LIMIT 6 OFFSET 3;
|
|
|
|
|
|
|
|
|
|
-- ORDER BY KOMUTU
|
|
|
|
|
-- Herhangi bir kolona göre gösterilen değerleri azalan veya artan şekilde sıralamak için
|
|
|
|
|
SELECT kolon FROM tablo1 WHERE yas ORDER BY column1, column2, .. columnN] [ASC | DESC];
|
|
|
|
|
SELECT * FROM Tablo1 ORDER BY yas ASC
|
|
|
|
|
SELECT * FROM Tablo1 ORDER BY yas DESC
|
|
|
|
|
|
|
|
|
|
-- DISTINCT ANAHTAR SÖZCÜĞÜ
|
|
|
|
|
-- Bu anahtar sözcükle sadece farklı değerler gösterilir.
|
|
|
|
|
SELECT DISTINCT yas FROM tablo1;
|
|
|
|
|
|
|
|
|
|
-- JOIN KOMUTU
|
|
|
|
|
-- CROSS JOIN
|
|
|
|
|
-- Cross join bir tablodaki her satırı ikinci tablodaki bir satır ile eşleştirmek için kulanılır.
|
|
|
|
|
-- Eğer birinci tabloda x satır ikinci tabloda y satır varsa sonuçta x*y satır olur.
|
|
|
|
|
SELECT ... FROM table1 CROSS JOIN table2 …
|
|
|
|
|
SELECT ad, yas FROM Tablo1 CROSS JOIN Tablo2;
|
|
|
|
|
|
|
|
|
|
-- INNER JOIN
|
|
|
|
|
-- Inner join iki tablodaki ortak kolon değerlerini kullanarak bir sonuç üretir.
|
|
|
|
|
SELECT ... FROM table1 [INNER] JOIN table2 ON conditional_expression …
|
|
|
|
|
SELECT ad, yas FROM Tablo1 INNER JOIN Tablo2 ON Tablo1.ad = Tablo2.soyad;
|
|
|
|
|
|
|
|
|
|
-- OUTER JOIN
|
|
|
|
|
-- Outer join iki tablodaki ortak kolon değerlerinin dışında kalanları kullanarak bir sonuç üretir.
|
|
|
|
|
SELECT isci_num, isim, dept FROM Tablo1 LEFT OUTER JOIN Tablo2 ON Tablo1.id = Tablo2.isci_num;
|
|
|
|
|
|
|
|
|
|
-- ÇEKİRDEK FONKSİYONLAR
|
|
|
|
|
COUNT -- Sayma
|
|
|
|
|
AVG -- Ortalama
|
|
|
|
|
ABS -- Mutlak değer
|
|
|
|
|
SUM -- Toplam
|
|
|
|
|
RANDOM -- Rastgele
|
|
|
|
|
ROUND -- Yuvarlama
|
|
|
|
|
MAX -- Maksimim
|
|
|
|
|
MIN -- Minimum
|
|
|
|
|
UPPER -- Büyük Harf
|
|
|
|
|
LOWER -- Küçük Harf
|
|
|
|
|
LENGTH -- Uzunluk
|
|
|
|
|
CURRENT_TIMESTAMP -- Zaman
|
|
|
|
|
|
|
|
|
|
SELECT max(yas) FROM Table1;
|
|
|
|
|
SELECT min(yas) FROM Table1;
|
|
|
|
|
SELECT avg(yas) FROM Table1;
|
|
|
|
|
SELECT * From Table1 WHERE yas ==18;
|
|
|
|
|
SELECT sum(yas) FROM Table1;
|
|
|
|
|
SELECT random() AS Random;
|
|
|
|
|
SELECT upper(ad) FROM Table1;
|
|
|
|
|
SELECT lower(ad) FROM Table1;
|
|
|
|
|
SELECT ad, length(ad) FROM Table1;
|
2024-04-21 05:11:54 +00:00
|
|
|
|
```
|