2.1 Introduktion til SQL

Hvis du har en database (DB), og i den - en tabel med nogle data, så er den mest almindelige opgave at finde bestemte data i denne tabel. Det er, hvad SQL blev opfundet til for 40 år siden.

SQL står for Structured Query Language .

Den enkleste SQL-forespørgsel ser sådan ud:

SELECT column1, column2, … columnN FROM table

Lad os sige, at du har en medarbejdertabel med en liste over din startups medarbejdere:

id navn beskæftigelse løn alder join_date
1 Ivanov Ivan Programmer 100.000 25 2012-06-30
2 Petrov Petr Programmer 80.000 23 2013-08-12
3 Ivanov Sergey Tester 40.000 tredive 2014-01-01
4 Rabinovich Moisha Direktør 200.000 35 2015-05-12
5 Kirienko Anastasia Kontorchef 40.000 25 2015-10-10
6 Vaska kat 1.000 3 2018-01-01

Du vil skrive en forespørgsel, der employee namesogså vil vise dem salaries, så skal du skrive en forespørgsel:

SELECT name, salary FROM employee

Du får forespørgselsresultatet:

navn løn
Ivanov Ivan 100.000
Petrov Petr 80.000
Ivanov Sergey 40.000
Rabinovich Moisha 200.000
Kirienko Anastasia 40.000
Vaska 1.000

Hvis du vil vise alle kolonnerne i din tabel , kan du i stedet for at angive navnene på alle kolonnerne blot skrive en stjerne. Eksempel:

SELECT * FROM employee

Du får forespørgselsresultatet:

id navn beskæftigelse løn alder join_date
1 Ivanov Ivan Programmer 100.000 25 2012-06-30
2 Petrov Petr Programmer 80.000 23 2013-08-12
3 Ivanov Sergey Tester 40.000 tredive 2014-01-01
4 Rabinovich Moisha Direktør 200.000 35 2015-05-12
5 Kirienko Anastasia Kontorchef 40.000 25 2015-10-10
6 Vaska kat 1.000 3 2018-01-01

2.2 Avanceret visning af SQL-forespørgsel

SQL-sproget er designet så brugervenligt som muligt.

For det første er tilfældet med anmodningsteksten ligegyldigt . Du kan skrive SELECT, Select eller select, og alt vil virke. For det andet tages der ikke højde for linjeskift på nogen måde . DBMS vil stadig gøre forespørgslen til en lang streng, så du kan skrive den, som du vil.

Som du sikkert allerede har gættet, er nøgleordene SELECT og FROM ikke begrænset. Ellers ville der ikke være så meget snak omkring SQL. Den udvidede visning af SQL-forespørgslen ser sådan ud:

SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting

Ved hjælp af et nøgleord WHEREkan du indstille en betingelse / filter for de valgte rækker.

Eksempel 1 . Lad os skrive en forespørgsel, der vil udvælge medarbejdere med professionen "Programmer":

SELECT * FROM employee WHERE occupation = 'Programmer'

Og vi får følgende forespørgselsresultat:

id navn beskæftigelse løn alder join_date
1 Ivanov Ivan Programmer 100.000 25 2012-06-30
2 Petrov Petr Programmer 80.000 23 2013-08-12

Som du kan se, vises der som følge af forespørgselsudførelsen kun rækker, hvor medarbejderens fag hedder "Programmer".

Nøgleordene GROUP BY, ORDER BYog HAVINGvi vil dække i de næste foredrag. Og i dette vil vi analysere et par flere eksempler med ordet WHERE.

Eksempel 2 . Lad os nu skrive en forespørgsel, der viser os alle medarbejdere med en løn på mere end 100.000. Sådan kommer det til at se ud:

SELECT * FROM employee WHERE salary > 100000

Vi får følgende forespørgselsresultat:

id navn beskæftigelse løn alder join_date
4 Rabinovich Moisha Direktør 200.000 35 2015-05-12

Eksempel 3 . Lad os nu prøve noget mere vanskeligt. Hvordan viser man alle medarbejdere, der blev ansat i 2015? Og sådan her:

SELECT * FROM employee WHERE YEAR(join_date) = 2015

Vi får følgende forespørgselsresultat:

id navn beskæftigelse løn alder join_date
4 Rabinovich Moisha Direktør 200.000 35 2015-05-12
5 Kirienko Anastasia Kontorchef 40.000 25 2015-10-10

I denne forespørgsel bruger vi en speciel funktion YEAR(), der giver os mulighed for at få året fra en dato og derefter sammenligne året for datoen med tallet 2015.

2.3 Kommentarer i SQL-forespørgsler

Og endnu et vigtigt punkt er kommentarer i SQL-forespørgsler. Kommentarer er en meget nyttig ting. For det første kan du skrive forklaringer og/eller dine ideer i dem. For det andet kan du ved hjælp af kommentarer deaktivere ødelagt kode. Eller kommenter den gamle version af koden.

SQL har ligesom Java enkeltlinje- og flerlinjekommentarer. Desuden ser en kommentar med flere linjer ud ligesom i Java. Dens udseende:


/*
 	comment text
 	comment text
 	comment text
*/
        

Det kan selvfølgelig også bruges i én linje. Eksempel:


/*comment text*/
        

Der er også en type kommentar "fra begyndelsen til slutningen af ​​linjen", svarende til Java "//". Kun i SQL skal du skrive to minustegn og et mellemrum . Generelt syn på en sådan kommentar:

-- comment text

Eksempel:


        SELECT * FROM employee -- WHERE YEAR(join_date) = 2015 
        

I eksemplet ovenfor kommenterede vi forespørgselsbetingelsen, så MySQL vil kun udføre forespørgslen:

SELECT * FROM employee

2.4 SQL-udtale

Hvis du kommunikerer med udenlandske kunder eller består et onlineinterview for en amerikansk virksomhed, kan du blive spurgt om din oplevelse med efterfølgersproget . Du vil ærligt sige, at du ikke arbejdede sammen med ham, og straks fløjtede fra interviewet.

Og sagen er, at SQL-sproget oprindeligt hed SEQUEL, som udtales som en efterfølger (ˈsēkwəl), så meget ofte vil du i USA og andre engelsksprogede kilder ikke høre "escuel", men "sequel". SQL skrives, og efterfølgeren læses. Her er sådan et historisk paradoks.