Data la tabella ALUNNI, contenente i campi

Data la tabella ALUNNI, contenente i campi: CODICE_FISCALE, NOME, COGNOME,
DATA_NASCITA, INDIRIZZO, CITTA, CLASSE, SCUOLA
1) scrivere l’istruzione SQL per creare tale tabella, indicando, se c’è, la chiave primaria o, in
caso contrario, inserendo un campo apposito che funga da chiave primaria, tenendo presente
che sia la chiave primaria che il campo COGNOME devono sempre contenere un valore.
Inoltre si vuole che, all’immissione di un nuovo record, il campo CITTA contenga già il
valore “Roma”
2) scrivere la query che estragga tutti i valori relativi agli alunni nati dopo il 1/3/1995
3) dare all’utente PRESIDE tutti i privilegi sulla tabella ALUNNI
4) scrivere l’istruzione per cancellare il campo INDIRIZZO dalla tabella
5) scrivere l’istruzione SQL per inserire nella tabella ALUNNI i dati di Mario Rossi, Codice
Fiscale RSSMAR96D20J920Y, nato il 20/4/1996, via Verdi, Milano, IV B, Sc.Elementare
Manzoni
6) scrivere l’istruzione per cancellare dal database la tabella ALUNNI
7) scrivere l’istruzione per revocare i permessi di lettura e modifica dei dati della tabella alla
SEGRETERIA
8) scrivere una query che estragga dalla tabella ALUNNI tutti gli studenti di cognome “Rossi”
9) scrivere l’istruzione per aggiungere il campo TEL_GENITORI alla tabella ALUNNI
SOLUZIONI:
1) per creare una tabella si usa il comando CREATE TABLE. La chiave primaria è quel campo
che identifica un’entità (cioè, nel nostro caso , l’entità ALUNNI) in modo univoco. Se non
ci fosse tale campo, dovremmo aggiungerlo (ad es. CODICE). Abbiamo però il CODICE
FISCALE che è univoco e quindi sarà la nostra chiave primaria. La richiesta che la chiave
primaria e il campo cognome debbano sempre contenere un valore, si traduce aggiungendo
l’opzione NOT NULL alla descrizione del campo. Perché il campo CITTA contenga,
all’immissione di un nuovo record, il valore “Roma”, dovremmo aggiungere l’opzione
DEFAULT alla definizione del campo. Dunque l’istruzione SQL sarà:
create table ALUNNI (
Codice_fiscale
char(16)
Nome
char(40),
Cognome
char(40)
Data_nascita
date,
Indirizzo
char(50),
Citta
char(30)
Classe
integer,
Sezione
char(1),
Scuola
char(255),
PRIMARY KEY(Codice_fiscale)
)
NOT NULL,
NOT NULL,
DEFAULT ‘Roma’,
NOTA: classe è stata impostata a integer perché immaginiamo di scrivere 1, 2, 3.. per I, II,
III. Se invece, immaginando di scrivere le cifre romane, si fosse impostato un char(3) non
sarebbe stato comunque errore.
Scula è stato impostato alla lunghezza massima di caratteri (cioè 255)
2) Per la query (cioè per estrarre i dati) si usa la SELECT:
SELECT * FROM ALUNNI WHERE Data_nascita>’ 1/3/1995’
L’asterisco indica “tutti”. Si può anche scrivere *.* La condizione si esprime con WHERE.
3) Per dare i privilegi si usa l’istruzione GRANT:
GRANT ALL PRIVILEGES ON ALUNNI TO PRESIDE
NOTA: se avessi chiesto di revocare tutti i privilegi al PRESIDE sulla tabella ALUNNI,
avreste dovuto scrivere:
REVOKE ALL PRIVILEGES ON ALUNNI FROM PRESIDE
(qui c’é la parola chiave FROM in vece di TO)
4) Per cancellare il campo (cioè la colonna) INDIRIZZO dalla tabella ALUNNI, dovrò
scrivere:
ALTER TABLE ALUNNI (
DROP COLUMN INDIRIZZO
)
5) Stavolta si richiede di agire sui dati e non sulla struttura della tabella, per inserire nella
tabella ALUNNI i dati di Mario Rossi, Codice Fiscale RSSMAR96D20J920Y, nato il
20/4/1996, via Verdi, Milano, IV B, Sc.Elementare Manzoni. Occorre usare l’INSERT:
INSERT INTO ALUNNI
VALUES (
‘RSSMAR96D20J920Y’,
‘Mario’,
'Rossi’,
‘20/04/1996',
‘Via Verdi‘,
‘Milano‘,
‘4’,
‘B’,
‘Sc. Elementare Manzoni’
)
ricordarsi di mettere la parola VALUES (letteralmente “valori”) prima della prima parentesi
per specificare che si stanno immettendo, appunto, valori nella tabella.
6) Per cancellare dal database la tabella ALUNNI, occorre usare il comando DROP TABLE, in
questo modo:
DROP TABLE ALUNNI
7) Per revocare i permessi di lettura e modifica dei dati della tabella alla SEGRETERIA,
occorre utilizzare REVOKE:
REVOKE SELECT, UPDATE ON ALUNNI FROM SEGRETERIA
NOTA: ricordate che SELECT è il permesso di lettura, INSERT è quello di inserimento,
UPDATE di modifica, DELETE di cancellazione dei dati, ALL PRIVILEGE fornisce tutti i
privilegi precedenti.
8) Per creare una query che estragga dalla tabella ALUNNI tutti gli studenti con il cognome
“Rossi”, dovrò usare il comando SELECT, seguito dal WHERE per specificare la
condizione “cognome=Rossi”:
SELECT * FROM ALUNNI WHERE COGNOME=’Rossi’
9) Per aggiungere alla tabella il campo TEL_GENITORI, docrò usare il comando ALTER
TABLE, come segue:
ALTER TABLE ALUNNI (
TEL_GENITORI
char(20),
)