INSERIMENTO DEI DATI
Visto come si creano le tabelle (sinora tristemente vuote),
cominciamo ad occuparci di come riempirle con dei dati. Il
comando SQL per inserire un record in una tabella si chiama
INSERT INTO. Ne esistono 2 versioni:
>insert into nome-tabella values (lista-valori)
Se si vogliono inserire tutti i campi di un record
>insert into nome-tabella (lista-campi) values (lista-valori)
Se si vogliono inserire solo alcuni campi di un record. I campi
non inseriti conterranno il valore NULL (non definito)
- opzione auto_increment: il valore della chiave primaria : “”
BIOINFO3 - Lezione 5
1
ESEMPIO
Si vuole inserire nella tabella esami un esame di codice 1, per la
materia Bioinformatica3, in data 15 aprile 2003 alle ore 9.30
nell’aula di bioinformatica (B) al quinto piano
Si vuole inserire nella tabella esami un esame di codice 2, per la
materia Bioinformatica1, in data 16 aprile 2003 sempre nell’aula
di bioinformatica (B) al quinto piano. Non si conosce l’ora della
prova
BIOINFO3 - Lezione 5
2
VISUALIZZAZIONE DEI RECORD
A questo punto siamo curiosi di vedere tutti i record del
database. Vogliamo fare una semplice query di selezione senza
alcuna condizione. Si usa il comando SQL:
>select elenco-campi from nome-tabella
Se volessimo vedere tutti i campi si usa il simbolo * al posto
dell’elenco dei campi
BIOINFO3 - Lezione 5
3
INSERIMENTO DI MOLTI RECORD
Qualora si dovessero inserire “manualmente” (non da
programma) molti record è possibile (come abbiamo già visto per
il comando create) preparare un file di comandi mysql di insert.
Si utilizza un editor per scrivere il file, lo si salva con un certo
nome (esempio esami.mysql)
Ricordarsi il ; o \g alla fine di
ogni riga, per eseguirla
e poi si dice al client mysql di prendere il file come suo input
BIOINFO3 - Lezione 5
4
ATTENZIONE
Avrete notato sicuramente che quando si devono inserire dei
valori numerici (interi o reali) questi non sono racchiusi tra apici,
mentre tutti gli altri tipi di dati (stringhe di caratteri, date, ore)
vengono racchiusi tra apici.
Il valore speciale NULL invece non va mai racchiuso tra apici.
Attenzione a non inserire due record con lo stesso valore nel
campo chiave
BIOINFO3 - Lezione 5
5
SELEZIONE ORDINATA
E’ possibile ordinare i record selezionati da una qualsiasi query
secondo il valore di un campo (il campo potrebbe anche non
essere scelto tra quelli mostrati)
BIOINFO3 - Lezione 5
6
SELEZIONE ORDINATA
Provate a dire cosa si ottiene con la query
(leggere attentamente la query)
Materie degli esami
ordinati per data
(NULL< altre date)
Provate a dire cosa si ottiene con la query
Id, datae e ora di tutti gli esami
ordinati in modo crescente sul
campo datae e (a parità di datae)
in modo decrescente sull’ora
(default l`ordinamento e
ascendente)
BIOINFO3 - Lezione 5
7
CONDIZIONI SULLE QUERY
Si utilizza una clausola where per indicare dei criteri di selezione.
La clausola where può contenere operatori relazionali o logici
<, <=, =, !=, >, >= AND OR NOT
Secondo voi cosa succede con
Tutti gli id degli
esami maggiori o
uguali a 5
E con
Tutte le materie degli esami di
Aprile 2003 ordinati per materia
BIOINFO3 - Lezione 5
8
ESERCIZIO
E’ necessario pianificare le prenotazioni dell’aula di Bioinformatica
per gli esami. Scrivere la query SQL per selezionare data e ora degli
esami che si svolgono nell’aula B del piano 5 (aula bioinformatica)
ordinati per data e ora crescente
Scrivere i risultati restituiti da SQL.
BIOINFO3 - Lezione 5
9
BIOINFO3 - Lezione 5
10
SELEZIONE DI VALORI DISTINTI
Se dovessimo selezionare solo i record distinti restituiti da una
query si usa la parola chiave DISTINCT in un comando di
SELECT.
Esempio. Vogliamo selezionare tutti i giorni in cui si svolgono
esami. Se più esami si svolgono nello stesso giorno, vogliamo che
tale giorno sia mostrato una volta soltanto.
BIOINFO3 - Lezione 5
11
OPERAZIONI LOGICHE
L’algebra booleana è fondamentale in tutti i linguaggi di
programmazione. Gli operatori logici sono tre e restituiscono il
valore VERO (1) o FALSO (0).
e, e1, e2 siano delle espressioni booleane
NOT
NOT e è vera se e è falsa, è falsa se e è vera.
OR
e1 OR e2 è vera se e1 oppure e2 sono vere. E’ falsa altrimenti
AND
e1 AND e2 è vera se sia e1 e sia e2 sono vere. E’ falsa altrimenti
BIOINFO3 - Lezione 5
12
TABELLE DI VERITA’
Per ricordarsi come calolare i risultati dei tre operatori logici si
utilizzano le cosiddette tabelle di verità
e
NOT e
VERA
FALSA
FALSA
VERA
e1
e2
e1 OR e2
e1
e2
e1 AND e2
VERA
VERA
VERA
VERA
VERA
VERA
FALSA
VERA
VERA
FALSA
VERA
FALSA
VERA
FALSA
VERA
VERA
FALSA
FALSA
FALSA
FALSA
FALSA
FALSA FALSA FALSA
BIOINFO3 - Lezione 5
13
ESEMPI DI OPERAZIONI LOGICHE
Data la ormai consueta tabella
Dire cosa restituiscono i seguenti comandi
>2 and <7: 1 NO, 2 NO, 3 SI, 5 SI, 7 NO, 11 NO
Sono selezionati solo i record in cui la condizione del WHERE
è vera cioè sono vere entrambe le condizioni in AND
>2 or <7: 1 SI, 2 SI, 3 SI, 5 SI, 7 SI, 11 SI
BIOINFO3 - Lezione 5
14
RICERCA DI VALORI NULLI
Per selezionare i record in cui un campo assume il valore NULL si usa la
funzione ISNULL.
La funzione isnull(nome-campo) restituisce il valore vero se il campo assume il
valore NULL
Vogliamo selezionare gli esami in cui non è definita la data
Selezionare tutte le possibili date reali di esami (quindi distinte e non NULL)
BIOINFO3 - Lezione 5
15
ESERCIZIO
Vogliamo sapere tutte le aule (e il rispettivo piano) in cui si svolgono esami.
Ordinare per piano e aula.
BIOINFO3 - Lezione 5
16
RIEPILOGO
•Inserimento di un record
•Visualizzazione di record
•Selezione ordinata
•Condizioni sulle query
•Selezione di valori distinti
•Operazioni logiche
BIOINFO3 - Lezione 5
17
Scarica

bioinfo3