2.1 Introducere în SQL
Dacă aveți o bază de date (DB) și în ea - un tabel cu unele date, atunci cea mai comună sarcină este să găsiți anumite date în acest tabel. Pentru asta a fost inventat SQL acum 40 de ani.
SQL înseamnă Structured Query Language .
Cea mai simplă interogare SQL arată astfel:
SELECT колонка1, колонка2, … колонкаN FROM table
Să presupunem că aveți un tabel de angajați cu o listă a angajaților startup-ului dvs.:
id | Nume | ocupaţie | salariu | vârstă | Data înscrierii |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programator | 100.000 | 25 | 30-06-2012 |
2 | Petrov Petr | Programator | 80.000 | 23 | 12-08-2013 |
3 | Ivanov Serghei | Tester | 40.000 | treizeci | 01-01-2014 |
4 | Rabinovici Moisha | Director | 200.000 | 35 | 2015-05-12 |
5 | Kirienko Anastasia | Manager de birou | 40.000 | 25 | 2015-10-10 |
6 | Vaska | pisică | 1.000 | 3 | 2018-01-01 |
Doriți să scrieți o interogare care să employee names
le afișeze, de asemenea salaries
, apoi trebuie să scrieți o interogare:
SELECT name, salary FROM employee
Veți obține rezultatul interogării:
Nume | salariu |
---|---|
Ivanov Ivan | 100.000 |
Petrov Petr | 80.000 |
Ivanov Serghei | 40.000 |
Rabinovici Moisha | 200.000 |
Kirienko Anastasia | 40.000 |
Vaska | 1.000 |
Dacă doriți să afișați toate coloanele din tabelul dvs. , atunci în loc să enumerați numele tuturor coloanelor, puteți pur și simplu să scrieți un asterisc. Exemplu:
SELECT * FROM employee
Veți obține rezultatul interogării:
id | Nume | ocupaţie | salariu | vârstă | Data înscrierii |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programator | 100.000 | 25 | 30-06-2012 |
2 | Petrov Petr | Programator | 80.000 | 23 | 12-08-2013 |
3 | Ivanov Serghei | Tester | 40.000 | treizeci | 01-01-2014 |
4 | Rabinovici Moisha | Director | 200.000 | 35 | 2015-05-12 |
5 | Kirienko Anastasia | Manager de birou | 40.000 | 25 | 2015-10-10 |
6 | Vaska | pisică | 1.000 | 3 | 2018-01-01 |
2.2 Vizualizare avansată a interogării SQL
Limbajul SQL a fost conceput cât mai ușor de utilizat.
În primul rând, cazul textului cererii nu contează . Puteți scrie SELECT, Select sau select și totul va funcționa. În al doilea rând, rupturile de linie nu sunt luate în considerare în niciun fel . SGBD-ul va transforma în continuare interogarea într-un șir lung, astfel încât să o puteți scrie așa cum doriți.
După cum probabil ați ghicit deja, cuvintele cheie SELECT și FROM nu sunt limitate. Altfel, nu s-ar vorbi atât de mult despre SQL. Vizualizarea extinsă a interogării SQL arată astfel:
SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting
Cu ajutorul unui cuvânt cheie, WHERE
puteți seta o condiție/filtru pentru rândurile selectate.
Exemplul 1 . Să scriem o interogare care va selecta angajați cu profesia „Programator”:
SELECT * FROM employee WHERE occupation = 'Programmer'
Și obținem următorul rezultat al interogării:
id | Nume | ocupaţie | salariu | vârstă | Data înscrierii |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programator | 100.000 | 25 | 30-06-2012 |
2 | Petrov Petr | Programator | 80.000 | 23 | 12-08-2013 |
După cum puteți vedea, ca urmare a execuției interogării, sunt afișate doar rândurile în care profesia angajatului se numește „Programator”.
Cuvintele cheie GROUP BY
și ORDER BY
le HAVING
vom acoperi în prelegerile următoare. Și în aceasta vom analiza încă câteva exemple cu cuvântul UNDE.
Exemplul 2 . Acum să scriem o interogare care ne va arăta pe toți angajații cu un salariu mai mare de 100K. Iată cum va arăta:
SELECT * FROM employee WHERE salary > 100000
Obținem următorul rezultat al interogării:
id | Nume | ocupaţie | salariu | vârstă | Data înscrierii |
---|---|---|---|---|---|
4 | Rabinovici Moisha | Director | 200.000 | 35 | 2015-05-12 |
Exemplul 3 . Acum să încercăm ceva mai dificil. Cum se afișează toți angajații care au fost angajați în 2015? Și așa:
SELECT * FROM employee WHERE YEAR(join_date) = 2015
Obținem următorul rezultat al interogării:
id | Nume | ocupaţie | salariu | vârstă | Data înscrierii |
---|---|---|---|---|---|
4 | Rabinovici Moisha | Director | 200.000 | 35 | 2015-05-12 |
5 | Kirienko Anastasia | Manager de birou | 40.000 | 25 | 2015-10-10 |
În această interogare, folosim o funcție specială YEAR()
care ne permite să obținem anul de la o dată și apoi să comparăm anul datei cu numărul 2015.
2.3 Comentarii în interogările SQL
Și încă un punct important sunt comentariile în interogările SQL. Comentariile sunt un lucru foarte util. În primul rând, puteți scrie explicații și/sau ideile dvs. în ele. În al doilea rând, cu ajutorul comentariilor, puteți dezactiva codul spart. Sau comentați versiunea veche a codului.
SQL, ca și Java, are comentarii cu o singură linie și mai multe rânduri. Mai mult, un comentariu pe mai multe rânduri arată exact ca în Java. Aspectul său:
/*
comment text
comment text
comment text
*/
Desigur, poate fi folosit și într-o singură linie. Exemplu:
/*comment text*/
Există, de asemenea, un tip de comentariu „de la început până la sfârșitul liniei”, similar cu Java „//”. Numai în SQL trebuie să scrieți două caractere minus și un spațiu . Vedere generală a unui astfel de comentariu:
-- comment text
Exemplu:
SELECT * FROM employee -- WHERE YEAR(join_date) = 2015
În exemplul de mai sus, am comentat condiția interogării, astfel încât MySQL va executa doar interogarea:
SELECT * FROM employee
2.4 Pronunţie SQL
Dacă comunicați cu clienți străini sau promovați un interviu online pentru o companie americană, atunci este posibil să fiți întrebat despre experiența dvs. cu limbajul sequel . Vei spune sincer că nu ai lucrat cu el și ai respins imediat interviul.
Și chestia este că limbajul SQL se numea inițial SEQUEL, care se pronunță ca o continuare (ˈsēkwəl), așa că foarte des în SUA și alte surse în limba engleză veți auzi nu „escuel”, ci „sequel”. Se scrie SQL și se citește continuarea. Iată un astfel de paradox istoric.
GO TO FULL VERSION