Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Manipolazione dei dati
PrecedenteDipendenzeAggiornamento datiSuccessivo

6. Manipolazione dei dati

Questo capitolo è ancora abbastanza incompleto.

Il capitolo precedente ha discusso come creare le tabelle e le altre strutture che dovranno contenere i vostri dati. Ora è il momento di riempire le tabelle con i dati. Questo capitolo spiega come inserire, aggiornare e cancellare i dati nelle tabelle. Il capitolo successivo a questo spiegherà infine come estrarre dal database i vostri dati persi da tempo.

6.1. Inserimento dati

Quando viene creata una tabella, essa non contiene dati. La prima cosa da fare prima di utilizzare un database è di inserire i dati. I dati sono concettualmente inseriti una riga per volta. Naturalmente è possibile inserire più di una riga, ma non è possibile inserire meno di una riga alla volta. Anche se si conoscono solo i valori di alcune colonne, deve essere creata una riga completa.

Per creare una nuova riga, usare il comando ???. Il comando richiede il nome della tabella e un valore per ognuna delle colonne della tabella. Per esempio, considerate la tabella prodotti del Capitolo 5, Definizione dei dati:

CREATE TABLE products (
    product_no integer,
    name text,
    price numeric
);

Un comando di esempio per l'inserimento di una riga potrebbe essere:

INSERT INTO products VALUES (1, 'Cheese', 9.99);

I valori dei dati sono elencati nell'ordine nel quale compaiono nella tabella, separati da virgole. Normalmente, i valori dei dati saranno letterali (costanti), ma sono anche consentite espressioni scalari.

La sintassi vista sopra ha lo svantaggio che è necessario conoscere l'ordine delle colonne nella tabella. Per evitare questo è possibile elencare le colonne esplicitamente. Per esempio, ambedue i seguenti comandi hanno lo stesso effetto del comando visto sopra:

INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99);
INSERT INTO products (name, price, product_no) VALUES ('Cheese', 9.99, 1);

Molti utenti considerano un buon metodo elencare sempre i nomi delle colonne.

Se non avete i valori per tutte le colonne, potete omettere alcuni di essi. In questo caso, le colonne saranno riempite con i loro valori predefiniti. Per esempio:

INSERT INTO products (product_no, name) VALUES (1, 'Cheese');
INSERT INTO products VALUES (1, 'Cheese');

La seconda forma è una estensione di PostgreSQL™. Essa riempie le colonne da sinistra a destra nello stesso ordine in cui sono state fornite, e il resto sarà riempito con i valori predefiniti.

Per chiarezza, è anche possibile richiedere esplicitamente i valori predefiniti, per singole colonne o per l'intera riga:


INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', DEFAULT);
INSERT INTO products DEFAULT VALUES;

Potete inserire righe multiple con un singolo comando:


INSERT INTO products (product_no, name, price) VALUES
    (1, 'Cheese', 9.99),
    (2, 'Bread', 1.99),
    (3, 'Milk', 2.99);

[Suggerimento]

Suggerimento

Quando inserite molti dati nello stesso tempo, considerate l'uso del comando ???. Esso non è flessibile come il comando ???, ma è molto efficiente. Per ulteriori informazioni circa il miglioramento delle prestazioni, per grossi caricamenti, vedere dentro Sezione 14.4, «Popolare un database».

Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Manipolazione dei dati
PrecedenteDipendenzeAggiornamento datiSuccessivo