2.1 Introduzione a SQL
Se disponi di un database (DB) e al suo interno una tabella con alcuni dati, l'attività più comune è trovare determinati dati in questa tabella. Questo è ciò per cui SQL è stato inventato 40 anni fa.
SQL è l'acronimo di Structured Query Language .
La query SQL più semplice è simile a questa:
SELECT column1, column2, … columnN FROM table
Supponiamo che tu abbia una tabella dei dipendenti con un elenco dei dipendenti della tua startup:
id | nome | occupazione | stipendio | età | data di iscrizione |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programmatore | 100.000 | 25 | 2012-06-30 |
2 | Petrov Petr | Programmatore | 80.000 | 23 | 2013-08-12 |
3 | Sergej Ivanov | Tester | 40.000 | trenta | 2014-01-01 |
4 | Rabinovich Moisha | Direttore | 200.000 | 35 | 2015-05-12 |
5 | Kirienko Anastasia | Capo ufficio | 40.000 | 25 | 2015-10-10 |
6 | Vasca | gatto | 1.000 | 3 | 2018-01-01 |
Vuoi scrivere una query che employee names
li visualizzi anche salaries
, quindi devi scrivere una query:
SELECT name, salary FROM employee
Otterrai il risultato della query:
nome | stipendio |
---|---|
Ivanov Ivan | 100.000 |
Petrov Petr | 80.000 |
Sergej Ivanov | 40.000 |
Rabinovich Moisha | 200.000 |
Kirienko Anastasia | 40.000 |
Vasca | 1.000 |
Se vuoi visualizzare tutte le colonne della tua tabella , invece di elencare i nomi di tutte le colonne, puoi semplicemente scrivere un asterisco. Esempio:
SELECT * FROM employee
Otterrai il risultato della query:
id | nome | occupazione | stipendio | età | data di iscrizione |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programmatore | 100.000 | 25 | 2012-06-30 |
2 | Petrov Petr | Programmatore | 80.000 | 23 | 2013-08-12 |
3 | Sergej Ivanov | Tester | 40.000 | trenta | 2014-01-01 |
4 | Rabinovich Moisha | Direttore | 200.000 | 35 | 2015-05-12 |
5 | Kirienko Anastasia | Capo ufficio | 40.000 | 25 | 2015-10-10 |
6 | Vasca | gatto | 1.000 | 3 | 2018-01-01 |
2.2 Visualizzazione avanzata della query SQL
Il linguaggio SQL è stato progettato nel modo più intuitivo possibile.
Innanzitutto, il caso del testo della richiesta non ha importanza . Puoi scrivere SELECT, Select o select e tutto funzionerà. In secondo luogo, le interruzioni di riga non vengono in alcun modo prese in considerazione . Il DBMS trasformerà comunque la query in una lunga stringa, quindi puoi scriverla come preferisci.
Come probabilmente avrai già intuito, le parole chiave SELECT e FROM non sono limitate. Altrimenti non si parlerebbe tanto di SQL. La visualizzazione estesa della query SQL è simile alla seguente:
SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting
Con l'aiuto di una parola chiave, WHERE
puoi impostare una condizione/filtro per le righe selezionate.
Esempio 1 . Scriviamo una query che selezionerà i dipendenti con la professione "Programmatore":
SELECT * FROM employee WHERE occupation = 'Programmer'
E otteniamo il seguente risultato della query:
id | nome | occupazione | stipendio | età | data di iscrizione |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programmatore | 100.000 | 25 | 2012-06-30 |
2 | Petrov Petr | Programmatore | 80.000 | 23 | 2013-08-12 |
Come puoi vedere, come risultato dell'esecuzione della query, vengono visualizzate solo le righe in cui la professione del dipendente è denominata "Programmatore".
Le parole chiave GROUP BY
, ORDER BY
e HAVING
le tratteremo nelle prossime lezioni. E in questo analizzeremo un altro paio di esempi con la parola DOVE.
Esempio 2 . Ora scriviamo una query che ci mostrerà tutti i dipendenti con uno stipendio superiore a 100K. Ecco come sarà:
SELECT * FROM employee WHERE salary > 100000
Otteniamo il seguente risultato della query:
id | nome | occupazione | stipendio | età | data di iscrizione |
---|---|---|---|---|---|
4 | Rabinovich Moisha | Direttore | 200.000 | 35 | 2015-05-12 |
Esempio 3 . Ora proviamo qualcosa di più difficile. Come visualizzare tutti i dipendenti che sono stati assunti nel 2015? E così:
SELECT * FROM employee WHERE YEAR(join_date) = 2015
Otteniamo il seguente risultato della query:
id | nome | occupazione | stipendio | età | data di iscrizione |
---|---|---|---|---|---|
4 | Rabinovich Moisha | Direttore | 200.000 | 35 | 2015-05-12 |
5 | Kirienko Anastasia | Capo ufficio | 40.000 | 25 | 2015-10-10 |
In questa query utilizziamo una funzione speciale YEAR()
che ci consente di ottenere l'anno da una data e quindi confrontare l'anno della data con il numero 2015.
2.3 Commenti nelle interrogazioni SQL
E un altro punto importante sono i commenti nelle query SQL. I commenti sono una cosa molto utile. In primo luogo, puoi scrivere spiegazioni e / o le tue idee al loro interno. In secondo luogo, con l'aiuto dei commenti, puoi disabilitare il codice non funzionante. Oppure commenta la vecchia versione del codice.
SQL, come Java, ha commenti a riga singola e multilinea. Inoltre, un commento su più righe ha lo stesso aspetto di Java. Il suo aspetto:
/*
comment text
comment text
comment text
*/
Naturalmente, può essere utilizzato anche in una riga. Esempio:
/*comment text*/
Esiste anche un tipo di commento "dall'inizio alla fine della riga", simile a Java "//". Solo in SQL devi scrivere due caratteri meno e uno spazio . Vista generale di un tale commento:
-- comment text
Esempio:
SELECT * FROM employee -- WHERE YEAR(join_date) = 2015
Nell'esempio sopra, abbiamo commentato la condizione della query, quindi MySQL eseguirà solo la query:
SELECT * FROM employee
2.4 pronuncia SQL
Se comunichi con clienti stranieri o superi un colloquio online per un'azienda americana, ti potrebbe essere chiesto della tua esperienza con la lingua del sequel . Dirai onestamente che non hai lavorato con lui e boccerai immediatamente il colloquio.
E il fatto è che il linguaggio SQL era originariamente chiamato SEQUEL, che si pronuncia come un sequel (ˈsēkwəl), quindi molto spesso negli Stati Uniti e in altre fonti in lingua inglese non sentirai "escuel", ma "sequel". Viene scritto SQL e viene letto il seguito. Ecco un tale paradosso storico.
GO TO FULL VERSION