Daha Sonra Sık Kullanılanlara Eklenecek Ultimate SQL Hile Sayfası [222]

Yayınlanan: 2022-06-17

SQL veya Yapılandırılmış Sorgu Dili, silme, oluşturma, güncelleme, okuma vb. gibi ilişkisel veritabanı işlemlerini yönetmeye yönelik bir dizi komuttur .

SQL, 1987'den beri ilişkisel veritabanları tarafından kullanılan uluslararası standarttır. Dört tür SQL komutu vardır:

  • Veri Tanımlama Dili (DDL) – Bu komutlar, veritabanının yapısını tanımlar . Örneğin, bırakın, yeniden adlandırın, değiştirin ve oluşturun. Veritabanı yapısını etkilerler. Örneğin, bir veritabanı oluşturmak veya bir tabloyu yeniden adlandırmak.
  • Veri İşleme Dili (DML) – Bu komutlar verilerle çalışmak için kullanılır. Örneğin, ekleyin, seçin, güncelleyin, silin. Bunlar tabloları veya veritabanı yapısını değil, tablolarda bulunan verileri etkiler. Örneğin, yeni bir satır eklemek veya satırdaki bir değeri güncellemek.
  • İşlem Kontrol Dili (TCL) – Bu komutlar, veritabanındaki işlem işlemeyi kontrol eder. Örneğin, geri alma, kaydetme, taahhüt etme. Bu komutların veritabanı üzerinde kalıcı bir etkisi vardır. Örneğin, bir işlem başarısız olsa bile tüm işlemi önceki duruma geri almak.
  • Veri Kontrol Dili (DCL) – Veri Kontrol komutları, kullanıcıları yetkilendirmek ve bir kullanıcıya veya gruba yalnızca gerekli izinleri vermek için kullanılır. Örneğin, bir kullanıcı salt okuma iznine sahip olabilirken, bir başkası okuma ve yazma iznine sahip olabilir. Erişim kontrolü, verme, reddetme ve iptal etme komutları kullanılarak yapılır.

Aşağıda en kullanışlı komutları içeren SQL Cheat sayfası bulunmaktadır. Hile sayfası, doğru sözdizimi ve bir sorgunun beklenen sonucu ile gerekli komutlara hızlı bir şekilde başvurmanıza yardımcı olacaktır. Bu hile sayfasında, diğer iki türün kullanımı oldukça basit olduğu için DDL ve DML komutlarına odaklanıyoruz.

Veri Tanımlama ve Manipülasyon Sorguları

Emretmek Tanım Örnek
EKLE Mevcut tabloya bir sütun veya kısıtlama (belirtildiği gibi) ekler. ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name);

ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name);
TABLOYU DEĞİŞTİR Bir tablonun sütununu eklemek, güncellemek veya silmek için belirtilen tabloyu değiştirir. ALTER TABLE employee ADD last_name varchar2(255);

ALTER TABLE employee DROP COLUMN last_name;
KOLON DEĞİŞTİR Sütunun veri türünü değiştirin. Örneğin, çalışan tablosunun join_date sütununun türünü varchar2'den datetime'a değiştirmek için. ALTER TABLE employee ALTER COLUMN joining_date datetime;
TÜM SELECT, WHERE ve HAVING ile kullanılan mantıksal operatör ve tüm değerler alt sorgu koşulunu karşılıyorsa true değerini döndürür SELECT employee_name, joining_date from employee WHERE employee_id = ALL (select employee_id from department_details WHERE department = 'R&D');
VE Yalnızca WHERE yan tümcesindeki tüm koşullar karşılandığında true değerini döndüren mantıksal işleç. SELECT employee_name, salary from employee WHERE city = 'California' AND salary > 2000;
HİÇ Mantıksal operatör; alt sorgu değerlerinden biri bile where yan tümcesindeki koşulu sağlıyorsa true değerini döndürür SELECT employee_id, employee_name from employee WHERE employee_id = ANY (select employee_id from department_details WHERE department = 'HR' OR department = 'R&D');
OLARAK Sorgu yürütme zamanına kadar tablo veya sütun için bir takma ad oluşturur; bu ad, özellikle tablo birleştirmeleri sırasında birden çok kez kullanıldığında yararlıdır SELECT count(employee_id) AS employees_from_houston from employee WHERE city = 'Houston';
ASC ORDER BY yan tümcesi ile kullanılan verileri artan bitiş sırasına göre döndürür. ORDER BY, sonuçları varsayılan olarak artan şekilde sıralar. SELECT employee_name, joining_date, salary from employee ORDER BY employee_name ASC;
ARASINDA Bir aralıktaki değerleri seçmek için SELECT employee_name, joining_date, department_id from employee WHERE salary BETWEEN 40000 AND 100000;
DAVA Bir dizi ifadeden oluşur; doğru olan ifadenin değerini döndürür, eğer koşullardan hiçbiri sağlanmazsa, ELSE kısmındaki koşul yürütülür. Başka yoksa, NULL döndürür. SELECT order_amount, customer_id, contact_email CASE WHEN order_amount > 3000 THEN "Eligible for 40% discount" WHEN order_amount between 2000 and 3000 THEN "Eligible for 25% discount" ELSE "Eligible for 5% discount" END FROM order_details;
VERİTABANI YARAT Belirtilen ada sahip yeni bir veritabanı oluşturur CREATE DATABASE movies_development;
TABLO OLUŞTUR Belirtilen tablo adı ve sütun adları ve türleri ile yeni bir tablo oluşturur CREATE TABLE movie_info (movie_name varchar2(255), release_date datetime, lead_actor varchar2(255), music_director varchar2(255));
VARSAYILAN CREATE veya ALTER TABLE komutlarıyla kullanılan, belirtilen sütun için varsayılan bir değer ayarlar CREATE TABLE employee (joining_date SET DEFAULT CURRENT_DATE);

ALTER TABLE product ALTER is_available SET DEFAULT true;
SİLMEK Belirtilen tablodan verileri siler DELETE from employee where employee_id = 345;
TANIM ORDER BY yan tümcesiyle birlikte kullanılan verileri de sc bitiş sırasına göre döndürür. SELECT employee_name, joining_date, salary from employee ORDER BY employee_name DESC;
DROP KOLON Belirtilen tablodan belirtilen sütunu siler. ALTER TABLE employee DROP COLUMN employee_name;
VERİTABANI BIRAK Tüm veritabanını siler DROP DATABASE movies_development;
VARSAYILAN BIRAK Belirtilen sütunun varsayılan değerini siler ALTER TABLE employee ALTER COLUMN is_available DROP DEFAULT;
BIRAKMA TABLOSU Belirtilen tabloyu siler DROP TABLE employee;
VAR Alt sorguda bir kaydın olup olmadığını kontrol eder ve bir veya daha fazla sonuç bulunursa true değerini döndürür. SELECT employee_id, contact_number FROM employee WHERE EXISTS (SELECT employee_id, department FROM department WHERE employee_id = 345 AND department = 'HR');
İTİBAREN Verilerin seçilmesi veya silinmesi gereken tabloyu belirtir SELECT * FROM employee; DELETE FROM employee where employee_id = 345;
GRUP TARAFINDAN Verileri, toplama işlevleri için kullanılan belirtilen sütuna göre gruplandırır Her ülkedeki çalışan sayısını göster

SELECT COUNT(employee_id), country from employee GROUP BY country;

Her departmanın çalışanlarının ortalama puanlarını gösterir

SELECT AVG(rating), department from employee GROUP BY department;
İÇİNDE Birden çok OR koşulu kullanmak yerine WHERE yan tümcesinde aynı anda birden çok değer seçmek için kullanılır SELECT employee_name FROM employee WHERE country IN ('India', 'United Kingdom', 'Singapore', 'Australia');
İNDEKS Index, verileri sorgulamayı daha verimli ve daha hızlı hale getirir. Dizinler genellikle en çok aranan sütunlarda oluşturulur. Dizin oluştur:
CREATE INDEX idx_employee ON employee (first_name, last_name);

Değerlerin kopyalanamayacağı benzersiz bir dizin oluşturun:
CREATE UNIQUE INDEX idx_employee ON employee (first_name, last_name);

Dizini silin:
ALTER TABLE employee DROP INDEX idx_employee;
TAKIN Tabloya yeni satır ekleme INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java');
NULL Boş değerleri kontrol eder SELECT employee_id from employee where employee_name IS NULL;
NULL DEĞİL Null olmayan değerleri kontrol eder SELECT employee_id, core_skill from employee where core_skill IS NOT NULL;
BEĞENMEK Belirli bir desenle eşleşen tüm değerleri döndürür SELECT employee_id, first_name, last_name where first_name LIKE '%tony';
GİBİ DEĞİL Verilen modelle eşleşmeyen tüm değerleri döndürür SELECT employee_id, first_name, last_name where first_name NOT LIKE '%tony';
VEYA Where yan tümcesindeki koşullardan biri yerine getirilirse true döndürür SELECT * from employee where country = 'India' OR country = 'Australia';
TARAFINDAN SİPARİŞ Sonuçları artan düzende (varsayılan olarak) veya sorguda belirtilen sırada ( artan bitiş veya azalan bitiş) sıralar SELECT employee_name, salary from employee ORDER BY salary DESC;
SIRA SAYISI Sorgunun WHERE yan tümcesinde belirtilen belirtilen sayıda satırı döndürür SELECT * from employee where ROWNUM <= 5; This will return the first five rows in the resultset.
SEÇME Verilen koşullara göre tablonun belirtilen sütunlarını seçer. * belirtilirse, tüm sütun değerleri döndürülür. SELECT employee_id from employee; SELECT * from employee;
İÇİNDE SEÇ Kaynak tablodaki verileri başka bir hedef tabloya kopyalar. Tüm sütunları (*) veya belirli sütunları seçebilirsiniz. SELECT * INTO new_employee_info FROM employee; SELECT employee_name, joining_date, core_skill INTO new_employee_info FROM employee;
ÜST SEÇ Tablodan belirtilen sayıda kayıt seçer SELECT TOP 5 employee_id from employee where employee_rating = 5;
AYARLAMAK GÜNCELLEME işlemi sırasında bir sütunun değerini yeni belirtilen değere ayarlar. UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345;
BAZI Alt sorgudaki koşullardan biri karşılanırsa true değerini döndürür. SOME, ANY komutuna benzer. SELECT employee_id, employee_name from employee WHERE salary > SOME (select salary from employee WHERE department = 'HR');
KESME TABLOSU Tablodan verileri siler – tablonun silinmeyeceğini unutmayın. TRUNCATE TABLE log_info;
BİRLİK Birleştirilmiş 2 veya daha fazla tablodan farklı değerler döndürür. Yinelenen değerleri de almak için UNION ALL kullanın. SELECT city from employee UNION SELECT city from office_locations;
BENZERSİZ Belirtilen sütuna benzersiz bir kısıtlama ekler; bu, sütunun yinelenen değerlere sahip olamayacağı anlamına gelir. Tablo oluşturma veya değiştirme komutları sırasında kullanılabilir. CREATE TABLE employee (employee_id int NOT NULL, UNIQUE(employee_id));

ALTER TABLE employee ADD UNIQUE(employee_id);
GÜNCELLEME Belirtilen sütunun değerini yeni bir değerle günceller UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345;
DEĞERLER Tabloya yeni bir değer satırı eklemek için INSERT komutuyla birlikte kullanılır INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java');
NEREDE Select ifadesinin sonuç kümesini filtrelemek için koşullar ekler SELECT * from employee WHERE salary > 20000;
Hızlı başvuru için SQL Komutları Hile sayfası

Toplama işlevleri

Toplama işlevleri, int ve float gibi sayısal sütunlarda çalışan veri işleme komutlarıdır. Bunlar, veri tabanı düzeyinde verilerin filtrelenmesine ve sıralanmasına yardımcı olur. Yaygın olarak kullanılan bazı toplama işlevleri şunlardır:

İŞLEV TANIM ÖRNEK
ortalama Belirtilen sütunun ortalama değerini döndürür SELECT AVG(marks) from students where subject = 'English';
MIN Belirtilen sütunun en küçük değerini döndürür SELECT MIN(price) from product WHERE product_category = 'shoes';
MAKS Belirtilen sütunun en büyük değerini döndürür SELECT MAX(quantity), product_name from inventory;
SAYMAK Sorguyu karşılayan satır sayısını döndürür Çalışan tablosundaki toplam kayıt sayısını gösterir.

SELECT COUNT(*) from employee;

Maaşı 20000'den fazla olan çalışan sayısını göster

SELECT COUNT(*) from employee where salary > 20000;
TOPLA Belirtilen sayısal sütunun değerlerinin toplamını döndürür SELECT SUM(marks) from students where subject = 'English';
Ortak toplama işlevleri

SQL Birleşimleri

SQL birleşimleri, birden çok tablodaki verileri bağlayıp filtreledikleri için çok önemlidir. Birleştirmeler biraz zor ve düzgün yürütülmezse beklenmedik sonuçlar verebilir. Aşağıdaki tablo, 4 tür SQL birleştirmesine hızlı bir şekilde başvurmanıza yardımcı olacaktır:

KATILMA TÜRÜ TANIM SÖZDİZİMİ ÖRNEK
İç birleşim Birleştirilen tablolarda eşleşen kayıtları döndürür; kavşağa benzer. tablo1'den sütun1, sütun2… SEÇİN tablo1.sütunN üzerinde tablo2'ye İÇ BİRLEŞTİR = tablo2.sütunN; select c.customer_id, o.order_id, c.customer_phone from customer c INNER JOIN order o on c.customer_id = o.customer_id;
Tam (dış) birleştirme Her iki tarafta - sol veya sağ - eşleşen tüm kayıtları döndürür. Sendikaya benzer. tablo1'den sütun1, sütun2… SEÇİN tablo1.sütunN üzerinde FULL OUTER JOIN tablo2 = tablo2.sütunN; select c.customer_id, o.order_id, c.customer_phone from customer c FULL OUTER JOIN order o on c.customer_id = o.customer_id;
Sol yönden katılım Soldaki tablodaki tüm kayıtları ve sağdaki tablodaki ölçütlerle eşleşen kayıtları döndürür tablo1'den sütun1, sütun2… SEÇİN SOL tablo2'ye tablo1.sütunN'den JOIN = tablo2.sütunN; select c.country_id, c.country_name, l.location_name from country c LEFT JOIN locations l on c.country_id = l.country_id;
Sağ birleştirme Sağdaki tablodaki tüm kayıtları ve soldaki tablodaki ölçütlerle eşleşen kayıtları döndürür tablo1'den sütun1, sütun2… SEÇİN tablo1.sütunN üzerinde tablo2'ye SAĞDAN KATIL = tablo2.sütunN; select c.country_id, c.country_name, l.location_name from country c RIGHT JOIN locations l on c.country_id = l.country_id;
Sözdizimi ve örnek içeren birleştirme türleri

Ek kaynaklar

SQL, yazılım geliştiriciler, veri bilimcileri ve analistler için önemli bir araçtır. Bir hile sayfası biçimindeki SQL komutlarının kullanışlı bir referansı, size çok zaman kazandırabilir ve her bir anahtar kelimenin beklenen çıktısını anlamanıza yardımcı olabilir.

Ek bilgi için lütfen aşağıdaki kaynaklara bakın:

SQL Eğitimi: SQL Hile Sayfası

Intellipaat: SQL Komutları Hile Sayfası

WebsiteSetup: SQL Hile Sayfası

ProgrammingWithMosh: SQL Hile Sayfası

PostgreSQL Hile Sayfası