6 alter , insert, update

ALTER

Vediamo l’alterazione di una tabella aggiungendo un campo

alter table prova add cognome char (10);

Si può aggiungere anche più campi con lo stesso comando, separandoli da virgola. Se invece voglio eliminare un campo:

alter table prova drop cognome;

Altera la tabella togliendo (drop) il campo cognome. Attenzione che se la tabella contiene dati, verranno cancellati insieme alla tabella.

Adesso aggiungo un indice ad un campo

alter table prova add index (cognome);

e poi lo tolgo (notare che non devo mettere le parentesi nel drop)

alter table prova drop index cognome;

INSERT

Inseriamo dei records nella tabella atleti del database Olimpiadi creato nella prima lezione:

insert into atleti values (1, 'rossetti','rosso',26,3);

Per non specificare il valore della chiave primaria e farlo generare a SQL bisogna usare questa forma:

insert into atleti (cognome, nome, eta, nazione) values ('bianchi','carlo',22,2);

Questa forma è utile anche quando devo inserire dei records con dei campi, non obbligatori (not null), che voglio lasciare vuoti.

UPDATE

Serve a modificare il contenuto di un campo, di un record o di più records insieme. Iniziamo col modificare l’età dell’atleta Rossetti:

update atleti set eta = 24 where idatleta=1;

aggiorna la tabella atleti e imposta (set) il campo eta al valore 24 dove (where) idatleta è 1.

Con where posso usare gli operatori minore < , maggiore > , diverso != . Posso anche settore più campi separandoli da virgola:

update atleti set eta = 24 , nazione = 5 where idatleta=1;

I criteri del where possono essere anche più di uno:

update atleti set eta = 24 where nome='pino' and cognome = 'Neri';

L’operatore AND impone la contemporaneità dei 2 criteri. Se volessi che fosse considerata o l’una o l’altra condizione userei l’operatore OR. Completando la terna di questi operatori logici, l’ultimo è la negazione NOT (la negazione va chiusa tra parentesi)

update atleti set eta = 24 where not (nome='pino');

In situazioni in cui si vuole applicare un certo comando per un numero ristretto di dati, torna utile l’operatore IN :

update atleti set eta = 24 where cognome in ('rossetti','bianchi');

Vuol dire cambia l’età dove il cognome appare in rossetti, bianchi.

Il complementare è NOT IN quindi cambia in tutti tranne in rossetti e bianchi