SQL QUERY 1 - ĆWICZENIA
W tej części skupimy się na dobrych praktykach: formatowaniu kodu, używaniu zaawansowanych filtrów, komentowaniu oraz tworzeniu aliasów.
Plik z którym będziemy pracować:
https://docs.google.com/spreadsheets/d/11iqR2eL5pDQCo5Q4DnSdw28fSYqYFHql5iR6XSCeZ_I/edit?usp=sharing
1. Formatowanie: Wielkie litery, wcięcia i średniki
SQL jest językiem niewrażliwym na wielkość liter (case-insensitive) – dla komputera select i SELECT to to samo. Jednak w środowisku profesjonalnym przyjęto konwencję, by słowa kluczowe pisać wielkimi literami. Ułatwia to szybkie odróżnienie komend od nazw tabel czy kolumn.
Warto również stosować średnik ; na końcu zapytania. Jest to standard (ANSI SQL-92) oznaczający koniec instrukcji. Choć niektóre systemy zadziałają bez niego, wyrób w sobie nawyk jego stawiania.
Przykład nieczytelny: select imie, nazwisko from studenci_finansow where wynik_egzaminu > 80
Przykład czytelny:
SQL
SELECT
imie,
nazwisko
FROM
Studenci_Finansow
WHERE
wynik_egzaminu > 80;
2. Zaawansowane filtrowanie (WHERE i operator LIKE)
Do tej pory szukaliśmy dokładnych dopasowań (np. wynik = 90). Co jednak, jeśli szukamy wzorca? Tutaj z pomocą przychodzi operator LIKE oraz znak wieloznaczny % (procent). Znak % zastępuje dowolny ciąg znaków.
Jeśli szukasz studenta o nazwisku "Nowak": WHERE nazwisko = 'Nowak'
Jeśli szukasz wszystkich studentów, których nazwisko zaczyna się na literę "K": WHERE nazwisko LIKE 'K%'
W naszym zbiorze danych zapytanie to zwróci osoby takie jak: Kowalski, Kamińska czy Krawczyk.
3. Wybieranie wszystkich kolumn (SELECT *)
Czy można pobrać wszystko naraz? Tak, służy do tego gwiazdka *.
SQL
SELECT * FROM Studenci_Finansow;
Uwaga praktyczna: Choć jest to poprawne składniowo, w pracy z dużymi bazami danych (Big Data) należy używać gwiazdki ostrożnie. Pobranie milionów wierszy i setek kolumn może "zatkać" serwer. Jako analityk powinieneś precyzyjnie wskazywać, jakich danych potrzebujesz.
4. Komentarze w kodzie
Komentarze to fragmenty tekstu ignorowane przez komputer, ale bezcenne dla człowieka. Służą do opisywania, co robi dany kawałek kodu. W SQL komentarz liniowy zaczynamy od dwóch myślników --.
SQL
SELECT
imie,
nazwisko,
stypendium
FROM
Studenci_Finansow
WHERE
stypendium IS NULL -- Wybieramy studentów, którzy nie otrzymali jeszcze stypendium
Dobra praktyka nakazuje komentowanie skomplikowanych warunków logicznych, aby wrócić do nich po miesiącach i nadal rozumieć swój kod.
5. Aliasy (Pseudonimy)
Aliasy pozwalają tymczasowo zmienić nazwę kolumny lub tabeli w wynikach zapytania, aby była bardziej czytelna. Używamy do tego słowa kluczowego AS. Alias nie zmienia danych w bazie, a jedynie ich etykietę w raporcie.
Przykład: Chcemy, aby w raporcie kolumna wynik_egzaminu nazywała się ładniej: Punkty.
SQL
SELECT
nazwisko,
wynik_egzaminu AS Punkty
FROM
Studenci_Finansow;
SQL w praktyce:
Wyobraź sobie, że jesteś analitykiem w Dziekanacie. Kierownik Katedry Finansów prosi Cię o przygotowanie listy potencjalnych kandydatów do prestiżowego koła naukowego "Inwestor".
Krok 1: Przegląd danych Najpierw sprawdzasz, co masz w bazie, używając SELECT *.
SQL
SELECT * FROM Studenci_Finansow;
Krok 2: Filtracja kierunkowa Koło naukowe zajmuje się giełdą, więc interesują Cię tylko osoby ze specjalizacją "Rynki Kapitałowe".
SQL
SELECT
id_studenta,
nazwisko,
specjalizacja,
wynik_egzaminu
FROM
Studenci_Finansow
WHERE
specjalizacja = 'Rynki Kapitałowe';
Krok 3: Wykluczenie słabych wyników (Operator <>) Zauważasz, że na liście są osoby z bardzo niskimi wynikami. Chcesz wykluczyć studentów, którzy mają wynik poniżej 40 punktów, aby przedstawić promotorowi tylko rokujących kandydatów. Użyjemy operatora <> (różny od) lub po prostu warunku matematycznego.
Załóżmy, że chcemy wykluczyć studenta Grzegorza (wynik 32). Użyjemy operatora AND, aby połączyć warunki.
SQL
SELECT
id_studenta,
nazwisko,
specjalizacja,
wynik_egzaminu
FROM
Studenci_Finansow
WHERE
specjalizacja = 'Rynki Kapitałowe'
AND wynik_egzaminu >= 40; -- Wykluczamy wyniki poniżej 40 pkt
Dzięki temu zapytaniu dostarczasz przełożonemu gotową listę wartościowych kandydatów, oszczędzając czas na ręczne przeglądanie arkuszy.
FROM: Klauzula wskazująca tabelę źródłową.
Aliasy (AS): Tymczasowe nazwy nadawane kolumnom lub tabelom dla zwiększenia czytelności.
SELECT: Klauzula określająca, które kolumny chcemy zobaczyć.
WHERE: Klauzula filtrująca rekordy (wiersze) na podstawie warunków.
Komentarze (--): Tekst wyjaśniający kod, ignorowany przez bazę danych.
LIKE: Operator służący do wyszukiwania wzorców w tekście (np. nazwisk na literę 'K').