Zawartość kursu
Podstawy zapytań SELECT
Celem tego bloku jest nauka podstawowej składni polecenia SELECT, używania aliasów, wyrażeń obliczeniowych oraz sortowania wyników
0/2
Filtrowanie danych – WHERE
Nauka filtrowania wierszy za pomocą klauzuli WHERE, operatorów porównania, BETWEEN, IN, LIKE, IS NULL oraz łączenia warunków AND/OR.
0/3
Funkcje wbudowane
Praktyczne zastosowanie funkcji tekstowych, liczbowych oraz daty i czasu dostępnych w Oracle SQL.
0/2
Łączenie tabel.
Łączenie tabel przy użyciu JOIN wewnętrznego i zewnętrznego, operatorów zbiorowych UNION i INTERSECT.
0/2
Grupowanie danych= GROUP BY, HAVING.
Agregowanie danych, funkcje grupujące oraz filtrowanie wyników zagregowanych.
0/2
Zapytania zagnieżdżone – SUBQUERIES
Podzapytania w klauzulach WHERE, FROM i SELECT. Operatory IN, EXISTS, ANY, ALL.
0/2
DDL i DML – Tworzenie i modyfikacja obiektów.
Tworzenie tabel, wstawianie, aktualizacja i usuwanie danych. Transakcje COMMIT / ROLLBACK.
0/2
Wskazówki do nauki i egzaminu Oracle SQL Fundamentals
0/1
Zbiór zadań: Wprowadzenie do pracy z Oracle SQL

Zadanie 39.

SELECT employee_id, first_name, last_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

 

Zadanie 40.

SELECT e.employee_id, e.first_name, e.last_name
FROM employees e
WHERE e.department_id IN (
    SELECT d.department_id
    FROM departments d
    JOIN locations l ON d.location_id = l.location_id
    WHERE l.city = 'London'
);

 

Zadanie 41.

SELECT e.first_name, e.last_name, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.department_id
WHERE e.salary = (SELECT MAX(salary) FROM employees);

 

Zadanie 42.

SELECT e.employee_id, e.last_name, e.salary,
       (SELECT AVG(salary)
        FROM employees e2
        WHERE e2.department_id = e.department_id) AS srednia_dzialu
FROM employees e;

 

Zadanie 43.

SELECT d.department_name, sub.liczba
FROM departments d
JOIN (SELECT department_id, COUNT(*) AS liczba
      FROM employees
      GROUP BY department_id
      HAVING COUNT(*) > 5) sub
  ON d.department_id = sub.department_id;

 

Zadanie 44.

SELECT e.employee_id, e.first_name, e.last_name
FROM employees e
WHERE EXISTS (
    SELECT 1 FROM employees sub
    WHERE sub.manager_id = e.employee_id

 

📝 Omówienie

Podzapytanie w WHERE jest najczęstszym zastosowaniem. Podzapytanie skalarne (w SELECT) musi zwracać dokładnie jedną wartość. Inline view (podzapytanie w FROM) traktowane jest jak tymczasowa tabela. EXISTS jest wydajniejszy niż IN przy dużych zbiorach danych – zatrzymuje skanowanie po znalezieniu pierwszego pasującego wiersza. Podzapytania skorelowane (odwołujące się do tabeli zewnętrznej) są wykonywane raz dla każdego wiersza zapytania zewnętrznego.

 

 

Przewijanie do góry