Per svolgere i seguenti esercizi, collegati al database sql_book (crealo se necessario):
Esegui la seguente istruzione SQL per creare una tabella per gli utenti:
Ci ritroviamo ora con una tabella vuota, come possiamo verificare con un'istruzione SELECT:
Sintassi delle query di inserimento
Il formato generale delle istruzioni di inserimento è il seguente:
Dobbiamo fornire tre informazioni:
il nome della tabella in cui vogliamo inserire i dati
i nomi delle colonne in cui andiamo a inserire i dati
i valori che vogliamo memorizzare nelle colonne elencate sopra
Aggiungere una singola riga
Prima di inserire i dati diamo un'occhiata alla tabella users e al tipo dei dati di ogni colonna:
Adesso vogliamo inserire un record (una riga) nella tabella users coi seguenti valori:
id: useremo il valore di default, e cioè un intero generato dalla funzione nextval (prossimo valore)
full_name: "John Smith"
enabled: false
last_login: useremo il valore di default, e cioè la data e l'ora corrente
Per prima cosa proviamo ad inserire i dati senza specificare le colonne:
Otterremo un errore:
Questo è perché la prima colonna sarebbe id, che è di tipo intero, e stiamo cercando di passarle una stringa ("John Smith").
Proviamo allora elencando anche i nomi delle colonne in cui vogliamo inserire i valori:
Nota che l'ordine dei valori deve corrispondere all'ordine delle colonne.
PostgreSQL risponderà con:
che significa che ha creato una nuova riga.
Aggiungere più righe
Anzichè usare un INSERT per ognuna delle righe da inserire, possiamo utilizzare un unico INSERT elencando poi tutti i valori da inserire. Ad esempio:
Mano a mano che inseriamo le righe, PostgreSQL aggiunge i valori di default per id e last_login:
Valori di default
Impostare un valore di default per una colonna fa sì che se non viene specificato un valore nel momento dell'inserimento, viene usato il valore di default. Prova a dare un occhio a come sono stati specificati questi valori di default al momento della creazione della tabella:
Vincoli
Nella creazione della tabella abbiamo inserito anche alcuni vincoli:
NOT NULL: il valore di queste colonne non può essere lasciato vuoto
UNIQUE: questa colonna non può avere valori duplicati... due utenti non posso avere lo stesso id!
Esercizi
Collegati al database encyclopedia e aggiungi questi dati alla tabella countries:
Aggiungi questi altri dati alla tabella countries:
Aggiungi un record alla tabella delle celebrità per il cantautore Bruce Springsteen, nato il 23 settembre 1949 e tuttora vivente
Suggerimento: PostgreSQL può accettare le date in molti formati, ad esempio:
Aggiungi un record per l'attrice Scarlett Johansson, nata il 22 novembre 1984; lascia che la colonna deceased prenda il valore di default
Aggiungi le seguenti righe alla tabella celebrities utilizzando un'unica istruzione INSERT; per Frank Sinatra imposta a true il valore per la colonna deceased; per Tom Cruise non settare esplicitamente un valore per la colonna deceased, ma lascia che venga utilizzato il valore di default
Secondo te cosa succederrà se proverai a inserire le seguenti righe nel database?
Aggiorna la colonna last_name della tabella celebrities in modo che i dati della domanda precedente possano essere inseriti, quindi inseriscili nella tabella
Controlla lo schema della tabella celebrities: cosa succederà se specificheremo un valore NULL per la colonna deceased, come nell'esempio seguente?
Controlla lo schema della tabella animals. Cosa succederà se proveremo a inserire i seguenti dati nella tabella?
Identifica il problema e modifica la tabella in modo che i dati possano essere inseriti come sopra, quindi inseriscili.
Collegati al database ls_burger ed esamina lo schema della tabella degli ordini. Basandoti sullo schema e sulle informazioni che seguono, scrivi ed esegui un'istruzione INSERT per aggiungere i dati alla tabella orders:
ci sono tre clienti: James Bergman, Natasha O'Shea, Aaron Muller. L'email di James è james1998@email.com. Quella di Natasha è natasha@osheafamily.com. Aaron non ha fornito un indirizzo email.
James ordina un LS Chicken Burger, Fries e Cola. Natasha ha due ordini: un LS Cheeseburger con Fries ma nessuna bibita, e un LS Double Deluxe Burger con Onion Rings e Chocolate Shake. Aaron ordina un LS Burger senza contorno nè bibita.
Il costo degli articoli e i punti fedeltà sono elencati di seguito:
SQL
CFP CNOS-FAP DON BOSCO - via XIII Martiri, 86 - 30027 San Donà di Piave (VE) - tel. 0421 338 980 - Organismo di Formazione accreditato dalla Regione del Veneto