2.1 Introduksjon til SQL

Hvis du har en database (DB), og i den - en tabell med noen data, så er den vanligste oppgaven å finne visse data i denne tabellen. Det var det SQL ble oppfunnet for for 40 år siden.

SQL står for Structured Query Language .

Den enkleste SQL-spørringen ser slik ut:

SELECT column1, column2, … columnN FROM table

La oss si at du har en ansatttabell med en liste over oppstartens ansatte:

id Navn okkupasjon lønn alder join_date
1 Ivanov Ivan Programmerer 100 000 25 2012-06-30
2 Petrov Petr Programmerer 80 000 23 2013-08-12
3 Ivanov Sergey Tester 40 000 tretti 2014-01-01
4 Rabinovich Moisha Regissør 200 000 35 2015-05-12
5 Kirienko Anastasia Kontorsjef 40 000 25 2015-10-10
6 Vaska katt 1000 3 2018-01-01

Du vil skrive en spørring som employee namesogså vil vise dem salaries, så må du skrive en spørring:

SELECT name, salary FROM employee

Du vil få søkeresultatet:

Navn lønn
Ivanov Ivan 100 000
Petrov Petr 80 000
Ivanov Sergey 40 000
Rabinovich Moisha 200 000
Kirienko Anastasia 40 000
Vaska 1000

Hvis du vil vise alle kolonnene i tabellen din , kan du bare skrive en stjerne i stedet for å liste opp navnene på alle kolonnene. Eksempel:

SELECT * FROM employee

Du vil få søkeresultatet:

id Navn okkupasjon lønn alder join_date
1 Ivanov Ivan Programmerer 100 000 25 2012-06-30
2 Petrov Petr Programmerer 80 000 23 2013-08-12
3 Ivanov Sergey Tester 40 000 tretti 2014-01-01
4 Rabinovich Moisha Regissør 200 000 35 2015-05-12
5 Kirienko Anastasia Kontorsjef 40 000 25 2015-10-10
6 Vaska katt 1000 3 2018-01-01

2.2 Avansert visning av SQL-spørring

SQL-språket ble designet så brukervennlig som mulig.

For det første spiller forespørselsteksten ingen rolle . Du kan skrive SELECT, Select eller select og alt vil fungere. For det andre blir det ikke tatt hensyn til linjeskift på noen måte . DBMS vil fortsatt gjøre spørringen om til en lang streng, slik at du kan skrive den slik du vil.

Som du sikkert allerede har gjettet, er ikke nøkkelordene SELECT og FROM begrenset. Ellers ville det ikke vært så mye snakk rundt SQL. Den utvidede visningen av SQL-spørringen ser slik ut:

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

Ved hjelp av et nøkkelord WHEREkan du sette en betingelse / filter for de valgte radene.

Eksempel 1 . La oss skrive en spørring som vil velge ansatte med profesjonen "Programmer":

SELECT * FROM employee WHERE occupation = 'Programmer'

Og vi får følgende spørreresultat:

id Navn okkupasjon lønn alder join_date
1 Ivanov Ivan Programmerer 100 000 25 2012-06-30
2 Petrov Petr Programmerer 80 000 23 2013-08-12

Som du kan se, vises kun rader der den ansattes yrke heter "Programmer", som et resultat av utføringen av spørringen.

Nøkkelordene GROUP BY, ORDER BYog HAVINGvi vil dekke i de neste forelesningene. Og i dette vil vi analysere et par flere eksempler med ordet WHERE.

Eksempel 2 . La oss nå skrive en spørring som viser oss alle ansatte med en lønn over 100K. Slik vil det se ut:

SELECT * FROM employee WHERE salary > 100000

Vi får følgende spørreresultat:

id Navn okkupasjon lønn alder join_date
4 Rabinovich Moisha Regissør 200 000 35 2015-05-12

Eksempel 3 . La oss nå prøve noe vanskeligere. Hvordan vise alle ansatte som ble ansatt i 2015? Og slik:

SELECT * FROM employee WHERE YEAR(join_date) = 2015

Vi får følgende spørreresultat:

id Navn okkupasjon lønn alder join_date
4 Rabinovich Moisha Regissør 200 000 35 2015-05-12
5 Kirienko Anastasia Kontorsjef 40 000 25 2015-10-10

I denne spørringen bruker vi en spesiell funksjon YEAR()som lar oss hente året fra en dato og deretter sammenligne året for datoen med tallet 2015.

2.3 Kommentarer i SQL-spørringer

Og et viktig poeng er kommentarer i SQL-spørringer. Kommentarer er en veldig nyttig ting. For det første kan du skrive forklaringer og/eller ideene dine i dem. For det andre, ved hjelp av kommentarer, kan du deaktivere ødelagt kode. Eller kommenter ut den gamle versjonen av koden.

SQL, som Java, har enkeltlinje- og flerlinjekommentarer. Dessuten ser en flerlinjekommentar ut akkurat som i Java. Dens utseende:


/*
 	comment text
 	comment text
 	comment text
*/
        

Selvfølgelig kan den også brukes i en linje. Eksempel:


/*comment text*/
        

Det er også en type kommentar "fra begynnelsen til slutten av linjen", som ligner på Java "//". Bare i SQL trenger du å skrive to minustegn og et mellomrom . Generelt syn på en slik kommentar:

-- comment text

Eksempel:


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

I eksemplet ovenfor kommenterte vi spørringsbetingelsen, så MySQL vil bare utføre spørringen:

SELECT * FROM employee

2.4 SQL-uttale

Hvis du kommuniserer med utenlandske kunder eller passerer et nettintervju for et amerikansk selskap, kan du bli spurt om din erfaring med oppfølgerspråket . Du vil ærlig si at du ikke jobbet med ham, og du lurte umiddelbart på intervjuet.

Og saken er at SQL-språket opprinnelig ble kalt SEQUEL, som uttales som en oppfølger (ˈsēkwəl), så veldig ofte vil du i USA og andre engelskspråklige kilder ikke høre "escuel", men "sequel". SQL skrives, og oppfølgeren leses. Her er et slikt historisk paradoks.