Dane firmy zyja w bazach. Umiejetnosc zadania pytania w SQL โ 'ilu userow nie logowalo sie 90 dni?' โ zamienia Cie z osoby proszacej o raport w osobe, ktora sama go zdobywa. To supermoc w IT.
Model relacyjny
Baza relacyjna to zbior **tabel** (wiersze = rekordy, kolumny = pola). Tabele lacza sie przez **klucze**: **klucz glowny (PK)** unikalnie identyfikuje wiersz, **klucz obcy (FK)** wskazuje na wiersz w innej tabeli.
SELECT โ serce SQL
SELECT login, ostatnie_logowanie
FROM uzytkownicy
WHERE aktywny = 1
ORDER BY ostatnie_logowanie ASC
LIMIT 10;
- **SELECT** โ ktore kolumny.
- **FROM** โ z ktorej tabeli.
- **WHERE** โ filtr wierszy (warunek).
- **ORDER BY** โ sortowanie (ASC/DESC).
- **LIMIT** โ ile wierszy zwrocic.
Agregacje i grupowanie
SELECT dzial, COUNT(*) AS liczba
FROM uzytkownicy
GROUP BY dzial
HAVING COUNT(*) > 5;
JOIN โ laczenie tabel
| Typ JOIN | Zwraca |
|---|---|
| INNER JOIN | Tylko pasujace wiersze z obu tabel |
| LEFT JOIN | Wszystkie z lewej + pasujace z prawej (reszta NULL) |
| RIGHT JOIN | Wszystkie z prawej + pasujace z lewej |
| FULL JOIN | Wszystkie z obu, dopasowane gdzie sie da |
SELECT u.login, d.nazwa
FROM uzytkownicy u
INNER JOIN dzialy d ON u.dzial_id = d.id;
Indeksy i CRUD
**Indeks** to jak spis tresci ksiazki โ przyspiesza wyszukiwanie kosztem miejsca i wolniejszych zapisow. Zapytanie po niezindeksowanej kolumnie na duzej tabeli = przemial calosci. Cztery operacje **CRUD**: INSERT (create), SELECT (read), UPDATE, DELETE.