2.1 Wprowadzenie do SQL
Jeśli masz bazę danych (DB), aw niej - tabelę z pewnymi danymi, to najczęstszym zadaniem jest znalezienie określonych danych w tej tabeli. W tym celu 40 lat temu wynaleziono SQL.
SQL oznacza ustrukturyzowany język zapytań .
Najprostsze zapytanie SQL wygląda następująco:
SELECT column1, column2, … columnN FROM table
Załóżmy, że masz tabelę pracowników z listą pracowników Twojego startupu:
ID | nazwa | zawód | wynagrodzenie | wiek | data_dołączenia |
---|---|---|---|---|---|
1 | Iwanow Iwan | Programista | 100 000 | 25 | 2012-06-30 |
2 | Pietrow Pietr | Programista | 80 000 | 23 | 2013-08-12 |
3 | Iwanow Siergiej | Próbnik | 40 000 | trzydzieści | 2014-01-01 |
4 | Rabinowicz Mojsza | Dyrektor | 200 000 | 35 | 2015-05-12 |
5 | Kirienko Anastazja | Kierownik biura | 40 000 | 25 | 2015-10-10 |
6 | Vaska | kot | 1000 | 3 | 2018-01-01 |
Chcesz napisać zapytanie, które employee names
również je wyświetli salaries
, to musisz napisać zapytanie:
SELECT name, salary FROM employee
Otrzymasz wynik zapytania:
nazwa | wynagrodzenie |
---|---|
Iwanow Iwan | 100 000 |
Pietrow Pietr | 80 000 |
Iwanow Siergiej | 40 000 |
Rabinowicz Mojsza | 200 000 |
Kirienko Anastazja | 40 000 |
Vaska | 1000 |
Jeśli chcesz wyświetlić wszystkie kolumny swojej tabeli , zamiast wymieniać nazwy wszystkich kolumn, możesz po prostu napisać gwiazdkę. Przykład:
SELECT * FROM employee
Otrzymasz wynik zapytania:
ID | nazwa | zawód | wynagrodzenie | wiek | data_dołączenia |
---|---|---|---|---|---|
1 | Iwanow Iwan | Programista | 100 000 | 25 | 2012-06-30 |
2 | Pietrow Pietr | Programista | 80 000 | 23 | 2013-08-12 |
3 | Iwanow Siergiej | Próbnik | 40 000 | trzydzieści | 2014-01-01 |
4 | Rabinowicz Mojsza | Dyrektor | 200 000 | 35 | 2015-05-12 |
5 | Kirienko Anastazja | Kierownik biura | 40 000 | 25 | 2015-10-10 |
6 | Vaska | kot | 1000 | 3 | 2018-01-01 |
2.2 Zaawansowany widok zapytania SQL
Język SQL został zaprojektowany tak, aby był jak najbardziej przyjazny dla użytkownika.
Po pierwsze, wielkość liter w tekście żądania nie ma znaczenia . Możesz napisać SELECT, Select lub select i wszystko będzie działać. Po drugie, podziały wierszy nie są w żaden sposób brane pod uwagę . DBMS nadal zamieni zapytanie w jeden długi łańcuch, więc możesz go zapisać w dowolny sposób.
Jak zapewne już się domyśliłeś, słowa kluczowe SELECT i FROM nie są ograniczone. W przeciwnym razie nie byłoby tyle rozmów o SQL. Rozszerzony widok zapytania SQL wygląda następująco:
SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting
Za pomocą słowa kluczowego WHERE
możesz ustawić warunek / filtr dla wybranych wierszy.
Przykład 1 . Napiszmy zapytanie, które wybierze pracowników z zawodem „Programista”:
SELECT * FROM employee WHERE occupation = 'Programmer'
Otrzymujemy następujący wynik zapytania:
ID | nazwa | zawód | wynagrodzenie | wiek | data_dołączenia |
---|---|---|---|---|---|
1 | Iwanow Iwan | Programista | 100 000 | 25 | 2012-06-30 |
2 | Pietrow Pietr | Programista | 80 000 | 23 | 2013-08-12 |
Jak widać, w wyniku wykonania zapytania wyświetlą się tylko wiersze, w których zawód pracownika nazywa się „Programista”.
Słowa kluczowe GROUP BY
, ORDER BY
a HAVING
omówimy je w następnych wykładach. W tym miejscu przeanalizujemy jeszcze kilka przykładów ze słowem GDZIE.
Przykład 2 . Teraz napiszmy zapytanie, które pokaże nam wszystkich pracowników z pensją większą niż 100 000. Oto jak to będzie wyglądać:
SELECT * FROM employee WHERE salary > 100000
Otrzymujemy następujący wynik zapytania:
ID | nazwa | zawód | wynagrodzenie | wiek | data_dołączenia |
---|---|---|---|---|---|
4 | Rabinowicz Mojsza | Dyrektor | 200 000 | 35 | 2015-05-12 |
Przykład 3 . Spróbujmy teraz czegoś trudniejszego. Jak wyświetlić wszystkich pracowników zatrudnionych w 2015 roku? I tak:
SELECT * FROM employee WHERE YEAR(join_date) = 2015
Otrzymujemy następujący wynik zapytania:
ID | nazwa | zawód | wynagrodzenie | wiek | data_dołączenia |
---|---|---|---|---|---|
4 | Rabinowicz Mojsza | Dyrektor | 200 000 | 35 | 2015-05-12 |
5 | Kirienko Anastazja | Kierownik biura | 40 000 | 25 | 2015-10-10 |
W tym zapytaniu używamy specjalnej funkcji YEAR()
, która pozwala nam uzyskać rok z daty, a następnie porównać rok daty z liczbą 2015.
2.3 Komentarze w zapytaniach SQL
I jeszcze jeden ważny punkt to komentarze w zapytaniach SQL. Komentarze to bardzo przydatna rzecz. Po pierwsze, możesz w nich pisać wyjaśnienia i/lub swoje pomysły. Po drugie, za pomocą komentarzy możesz wyłączyć zepsuty kod. Lub skomentuj starą wersję kodu.
SQL, podobnie jak Java, ma komentarze jednowierszowe i wielowierszowe. Co więcej, komentarz wieloliniowy wygląda jak w Javie. Jego wygląd:
/*
comment text
comment text
comment text
*/
Oczywiście można go również użyć w jednej linii. Przykład:
/*comment text*/
Istnieje również rodzaj komentarza „od początku do końca linii”, podobny do Java „//”. Tylko w SQL trzeba napisać dwa znaki minusa i spację . Ogólny widok takiego komentarza:
-- comment text
Przykład:
SELECT * FROM employee -- WHERE YEAR(join_date) = 2015
W powyższym przykładzie skomentowaliśmy warunek zapytania, więc MySQL wykona tylko zapytanie:
SELECT * FROM employee
2.4 Wymowa SQL
Jeśli komunikujesz się z zagranicznymi klientami lub przechodzisz rozmowę kwalifikacyjną online dla amerykańskiej firmy, możesz zostać zapytany o swoje doświadczenia z językiem kontynuacji . Szczerze powiesz, że z nim nie pracowałeś i od razu oblałeś rozmowę kwalifikacyjną.
Rzecz w tym, że język SQL pierwotnie nosił nazwę SEQUEL, co wymawia się jak sequel (ˈsēkwəl), więc bardzo często w Stanach Zjednoczonych i innych anglojęzycznych źródłach usłyszysz nie „escuel”, ale „sequel”. SQL jest zapisywany, a kontynuacja jest odczytywana. Oto taki historyczny paradoks.