BIOINFO3 - Lezione 51 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 52 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 nellaula 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 nellaula di bioinformatica (B) al quinto piano. Non si conosce lora della prova
BIOINFO3 - Lezione 53 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 dellelenco dei campi
BIOINFO3 - Lezione 54 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) e poi si dice al client mysql di prendere il file come suo input Ricordarsi il ; o \g alla fine di ogni riga, per eseguirla
BIOINFO3 - Lezione 55 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 56 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 57 SELEZIONE ORDINATA Provate a dire cosa si ottiene con la query (leggere attentamente la query) Materie degli esami ordinati per data (NULL< altre date) Id, datae e ora di tutti gli esami ordinati in modo crescente sul campo datae e (a parità di datae) in modo decrescente sullora (default l`ordinamento e ascendente) Provate a dire cosa si ottiene con la query
BIOINFO3 - Lezione 58 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 E con Tutti gli id degli esami maggiori o uguali a 5 Tutte le materie degli esami di Aprile 2003 ordinati per materia
BIOINFO3 - Lezione 59 ESERCIZIO E necessario pianificare le prenotazioni dellaula di Bioinformatica per gli esami. Scrivere la query SQL per selezionare data e ora degli esami che si svolgono nellaula B del piano 5 (aula bioinformatica) ordinati per data e ora crescente Scrivere i risultati restituiti da SQL.
BIOINFO3 - Lezione 510
BIOINFO3 - Lezione 511 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 512 OPERAZIONI LOGICHE Lalgebra booleana è fondamentale in tutti i linguaggi di programmazione. Gli operatori logici sono tre e restituiscono il valore VERO (1) o FALSO (0). e, e 1, e 2 siano delle espressioni booleane NOT NOT e è vera se e è falsa, è falsa se e è vera. OR e 1 OR e 2 è vera se e 1 oppure e 2 sono vere. E falsa altrimenti AND e 1 AND e 2 è vera se sia e 1 e sia e 2 sono vere. E falsa altrimenti
BIOINFO3 - Lezione 513 TABELLE DI VERITA Per ricordarsi come calolare i risultati dei tre operatori logici si utilizzano le cosiddette tabelle di verità eNOT e VERAFALSA FALSAVERA e1e1 e2e2 e 1 OR e 2VERAVERAVERA FALSAVERAVERA VERAFALSAVERA FALSAFALSAFALSA e1e1 e2e2 e 1 AND e 2VERAVERAVERA FALSAVERAFALSA VERAFALSAFALSA FALSAFALSAFALSA
BIOINFO3 - Lezione 514 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 515 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 Selezionare tutte le possibili date reali di esami (quindi distinte e non NULL) Vogliamo selezionare gli esami in cui non è definita la data
BIOINFO3 - Lezione 516 ESERCIZIO Vogliamo sapere tutte le aule (e il rispettivo piano) in cui si svolgono esami. Ordinare per piano e aula.
BIOINFO3 - Lezione 517 RIEPILOGO Inserimento di un record Visualizzazione di record Selezione ordinata Condizioni sulle query Selezione di valori distinti Operazioni logiche