4. Prime query
In questo capitolo inizieremo a vedere le prime query MySQL.
La query è il cuore di questo linguaggio, e consiste in una interrogazione
al database. Noi interroghiamo il database con una query ed esso ci risponderà
con un set di risorse che, come vedremo, varieranno a seconda del tipo di query
che sottoporremo al linguaggio.
In questo capitolo analizzeremo brevemente i quattro tipi principali di query di cui disponiamo:
- INSERT - Questa query viene utilizzata per inserire record in una tabella, popolandola.
- SELECT - E' la query più comune, viene utilizzata per leggere i record di una tabella. E' possibile applicare alla SELECT una condizione in modo da poter prelevare solo i record che ci interessano, come ad esempio tutti gli utenti di sesso maschile o tutti gli utenti di sesso femminile.
- UPDATE - Come per la SELECT, anche l'UPDATE supporta una condizione per poter agire solo sui record che ci interessano. L'UPDATE viene utilizzata per modificare record già esistenti.
- DELETE - Come è chiaro dal suo nome, la DELETE viene usata per eliminare i record da una tabella. E' possibile applicare una condizione per eliminare solo i record che vogliamo.
INSERT
La prima query che vediamo da vicino è la INSERT.
La sintassi è molto semplice. La query inizia con la clausola
INSERT INTO seguita dal nome della tabella, i campi in cui
vogliamo scrivere (opzionale), la clausola VALUES e poi
i valori per i suddetti campi.
INSERT INTO `utenti`
(`nome`, `cognome`, `email`, `sesso`)
VALUES
('Mario', 'Rossi', 'mario.rossi@nomail.com', 'M');
|
La query termina con un punto e virgola. Come potete notare ho utilizzato come tabella di esempio, la tabella "utenti"
dei capitoli 3 e 4, omettendo però il campo `id_utente`. |
MySQL vi consente comunque di specificare un valore per questo campo, e se invece volete metterlo nella lista dei campi ma dire a MySQL di auto incrementarlo, allora nei VALUES specificate il valore speciale NULL per il campo `id_utente`.
E' possibile anche omettere la lista dei campi, ma in questo caso sarà obbligatorio specificarli tutti come nell'esempio seguente:
INSERT INTO `utenti` VALUES (NULL, 'Mario', 'Rossi', 'mario.rossi@nomail.com', 'M');
Per eseguire il codice MySQL potete utilizzare tranquillamente phpMyAdmin come mostrato in questa schermata.
SELECT
Come abbiamo detto prima la SELECT viene usata per leggere record da una tabella. Vediamo di seguito la sua forma più semplice.
SELECT * FROM `utenti`;
L'asterisco sta per "tutti i campi", ed indica quindi che vogliamo leggere
i record per intero.
Questa query ci restituirà il contenuto dell'intera tabella specificata.
E' possibile anche specificare quali campi vogliamo al posto dell'asterisco,
vediamo quindi di seguito una query equivalente a quella di prima:
SELECT `id_utente`, `nome`, `cognome`, `email`, `sesso` FROM `utenti`;
Come potete notare la query inizia con la clausola SELECT, continua con la lista dei campi che vogliamo prelevare dalla tabella, poi la clausola FROM seguita dal nome della tabella da cui vogliamo prelevare i dati.
Se quindi volessimo solamente il nome e il cognome di tutti gli utenti, scriveremmo una query del genere:
SELECT `nome`, `cognome` FROM `utenti`;
|
Come accennato all'inizio del capitolo, è possibile specificare anche una condizione alla SELECT, e lo faremo attraverso la clausola WHERE. Attraverso il WHERE potremo specificare quali valori desideriamo (o non desideriamo) per un determinato campo, un pò come si fa nelle IF degli altri linguaggi di programmazione, con qualche differenza nella sintassi. |
Nel prossimo esempio vedremo come leggere tutti gli utenti della tabella di sesso maschile.
SELECT * FROM `utenti` WHERE `sesso` = 'M';
Ancora un altro esempio in cui leggiamo gli utenti di sesso maschile che si chiamano 'Mario'.
SELECT * FROM `utenti` WHERE `sesso` = 'M' AND `nome` = 'Mario';
Se invece volessimo gli utenti che sono di sesso maschile oppure di nome 'Luca', utilizzeremo la clausola OR invece dell'AND.
SELECT * FROM `utenti` WHERE `sesso` = 'M' OR `nome` = 'Luca';
Le SELECT diventeranno molto più complesse di queste grazie a query annidate, join e molto altro, leggendo da più tabelle contemporaneamente e così via, ma per il momento non ci interessa approfondire, ma bensì dare un'occhiata generale a tutto il mondo MySQL per passare poi ad argomenti più complessi.
Nel prossimo capitolo vedremo le query UPDATE e DELETE.

