Advanced SQL işlemleri ve örnek sorgularla senaryolar



Elbette, SQL (Structured Query Language) veritabanı yönetiminde kullanılan bir dildir ve karmaşık veri setleriyle çalışırken oldukça güçlüdür. İşte bazı ileri düzey SQL işlemleri ve bunlara ait örnek sorgular:


1. JOIN İşlemleri

Senaryo: İki farklı tablodaki verileri birleştirme

Örnek Sorgu:


sql

Copy code

SELECT employees.name, departments.name

FROM employees

JOIN departments ON employees.department_id = departments.id;

2. Alt Sorgular (Subqueries)

Senaryo: Bir sorgu içinde başka bir sorgu çalıştırma

Örnek Sorgu:


sql

Copy code

SELECT name

FROM employees

WHERE department_id IN (SELECT id FROM departments WHERE name = 'IT');

3. Pencere Fonksiyonları (Window Functions)

Senaryo: Veri üzerinde gruplama yapmadan istatistiksel işlemler gerçekleştirme

Örnek Sorgu:


sql

Copy code

SELECT name, salary, AVG(salary) OVER (PARTITION BY department_id) as avg_department_salary

FROM employees;

4. Common Table Expressions (CTE)

Senaryo: Karmaşık sorguları daha anlaşılır hale getirme

Örnek Sorgu:


sql

Copy code

WITH regional_sales AS (

  SELECT region, SUM(amount) AS total_sales

  FROM orders

  GROUP BY region

)

SELECT region

FROM regional_sales

WHERE total_sales > (SELECT AVG(total_sales) FROM regional_sales);

5. İndeksleme ve Performans Optimizasyonu

Senaryo: Sorgu hızını artırmak için veritabanında indeks oluşturma

Örnek Sorgu:


sql

Copy code

CREATE INDEX idx_employee_name ON employees(name);

6. Trigger Kullanımı

Senaryo: Belirli bir veritabanı işlemi gerçekleştiğinde otomatik olarak başka işlemlerin tetiklenmesi

Örnek Sorgu:


sql

Copy code

CREATE TRIGGER log_salary_change

AFTER UPDATE OF salary ON employees

FOR EACH ROW

BEGIN

  INSERT INTO salary_audit(employee_id, old_salary, new_salary, change_date)

  VALUES(:OLD.id, :OLD.salary, :NEW.salary, CURRENT_TIMESTAMP);

END;

7. Recursive CTEs

Senaryo: Kendini tekrar eden sorgular yazma, özellikle hiyerarşik veri yapıları için

Örnek Sorgu:


sql

Copy code

WITH RECURSIVE subordinates AS (

  SELECT id, name, manager_id

  FROM employees

  WHERE name = 'John Doe'

  UNION ALL

  SELECT e.id, e.name, e.manager_id

  FROM employees e

  INNER JOIN subordinates s ON s.id = e.manager_id

)

SELECT * FROM subordinates;

Bu örnekler SQL'in güçlü ve esnek yapısını göstermektedir. Gerçek dünya uygulamalarında, bu sorguların veritabanınızın yapısına ve ihtiyaçlarınıza göre uyarlanması gerekebilir.


Elbette, SQL'in ileri düzey özelliklerine dair daha fazla senaryo ve örnek sorguları aşağıda bulabilirsiniz:


8. GROUP BY ve HAVING ile Karmaşık Gruplama

Senaryo: Belirli kriterlere göre gruplanmış veriler üzerinde koşullu sorgular yapmak

Örnek Sorgu:


sql

Copy code

SELECT department_id, AVG(salary)

FROM employees

GROUP BY department_id

HAVING AVG(salary) > 50000;

9. EXISTS ve NOT EXISTS Kullanımı

Senaryo: Bir alt sorgunun sonucuna göre koşullu filtreleme yapmak

Örnek Sorgu:


sql

Copy code

SELECT name

FROM employees

WHERE EXISTS (SELECT 1 FROM department WHERE id = employees.department_id AND name = 'HR');

10. CASE WHEN Kullanımı

Senaryo: Sorgu içinde koşullu mantık uygulamak

Örnek Sorgu:


sql

Copy code

SELECT name, salary,

       CASE 

           WHEN salary > 60000 THEN 'High'

           WHEN salary BETWEEN 40000 AND 60000 THEN 'Medium'

           ELSE 'Low'

       END AS salary_range

FROM employees;

11. Pivot Tablolar

Senaryo: Verileri yeniden şekillendirerek farklı bir bakış açısı kazandırmak

Örnek Sorgu:


sql

Copy code

SELECT * 

FROM (

  SELECT department, salary

  FROM employees

) AS source_table

PIVOT (

  AVG(salary)

  FOR department IN ('Sales', 'HR', 'IT', 'Finance')

) AS pivot_table;

12. Veritabanı İşlemleri (Transaction Management)

Senaryo: Birden fazla işlemi bir işlem bloğu olarak gruplandırmak

Örnek Sorgu:


sql

Copy code

BEGIN TRANSACTION;

UPDATE accounts SET balance = balance - 100 WHERE id = 1;

UPDATE accounts SET balance = balance + 100 WHERE id = 2;

COMMIT;

13. Veri Tiplerini ve Fonksiyonlarını Kullanma

Senaryo: Özel veri tipleri ve fonksiyonlarla çalışmak

Örnek Sorgu:


sql

Copy code

SELECT name, CAST(salary AS DECIMAL(10,2))

FROM employees;

14. FULL OUTER JOIN Kullanımı

Senaryo: İki tabloyu birleştirirken, her iki tablodaki tüm kayıtları dahil etmek

Örnek Sorgu:


sql

Copy code

SELECT employees.name, departments.name

FROM employees

FULL OUTER JOIN departments ON employees.department_id = departments.id;

15. Özel Fonksiyonlar Oluşturma

Senaryo: Özel durumlar için kullanıcı tanımlı fonksiyonlar yazmak

Örnek Sorgu:


sql

Copy code

CREATE FUNCTION calculate_bonus(salary DECIMAL)

RETURNS DECIMAL

BEGIN

  RETURN salary * 0.1;

END;

Bu örnekler, SQL'in çeşitliliğini ve veritabanı sorgulama ve yönetimindeki gücünü ortaya koymaktadır. Veritabanınızın yapısına ve iş ihtiyaçlarınıza göre bu sorguları uyarlamak önemlidir.

Hiç yorum yok

Rastgele İçerik

DonanımHaber

© tüm hakları saklıdır
made with by templateszoo