Data Base Master "Bio Info" Reti e Basi di Dati Lezione 6 1 Sommario I concetti fondamentali …. Database Relazionale ….. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica Eliminazione Relazioni Creazione Maschere I Data Base e la Bioinformatica Master "Bio Info" Reti e Basi di Dati Lezione 6 2 I Concetti fondamentali Query ed SQL Una query è un comando che consente di interrogare un DB sui contenuti delle tabelle e di eseguire specifiche azioni sui dati. L’SQL (Structured Query Language linguaggio di interrogazione strutturato) è il linguaggio utilizzato per interagire con i DB relazionali L’SQL è universalmente accettato dai produttori di DBMS Microsoft Access, Microsoft SQL server Oracle ed Oracle MySql IBM DB2 Con L’SQL si è in grado di effettuare le diverse interazione con un database Interrogazione inserimento di nuovi dati, modifica di dati esistenti eliminazione di dati esistenti Master "Bio Info" Reti e Basi di Dati Lezione 6 3 I Concetti fondamentali Interrogazione Select Col comando select si può estrarre i dati, in modo mirato, dal database, la sua sintassi è la seguente: lista_elem_selezione elenco dei campi da estrarre lista_riferimenti_tabella elenco delle tabelle da cui estrarre i dati espressione_condizionale elenco dei requisiti che un campo deve rispettare, le condizioni si specificano con SELECT [ ALL | DISTINCT ] lista_elementi_selezione FROM lista_riferimenti_tabella [ WHERE espressione_condizionale ] [ GROUP BY lista_colonne HAVING Condizione ] [ ORDER BY lista_colonne ]; gli operatori di confronto (<,<=,=>,=) connettori logici (AND, OR,NOT) comparatori (between, in, like, is null); lista_colonne le colonne che devono essere prese come riferimento per l'ordinamento dei dati in uscita. Master "Bio Info" Reti e Basi di Dati Lezione 6 4 I Concetti fondamentali Interrogazione Select Di default il comando select agisce con il metodo all ma se non si vuole ripetizione di righe, si specifica il metodo distinct Esempio SELECT DISTINCT cognome, nome, citta_residenza FROM utenti WHERE anni > = 18 ORDER BY cognome Questa query estrae l'elenco di tutti gli utenti maggiorenni ordinando l'output in base al cognome. La clausola ORDER BY serve per ordinare e l'ordinamento può essere basato anche su più di un campo. Master "Bio Info" Reti e Basi di Dati Lezione 6 5 I Concetti fondamentali inserimento Insert Il comando Insert ha la funzione di inserire i dati nelle tabelle, le colonne (o campi) di destinazione dei valori possono essere o meno dichiarate nel comando. La Sintassi del comando insert INSERT INTO nome_tabella VALUES (elenco valori, tutti, rispettando l’ordine dei campi della tabella); Oppure INSERT INTO nome_tabella (elenco dei campi interessati dall’inserimento) VALUES (elenco valori, tutti, rispettando l’ordine dei campi dichiarati sopra); Master "Bio Info" Reti e Basi di Dati Lezione 6 6 I Concetti fondamentali inserimento Insert Esempio INSERT INTO utenti (cognome, nome, citta_residenza,eta) VALUES (‘Lenzitti’, ‘Biagio’, ‘Palermo’,48); oppure INSERT INTO utenti VALUES (‘Lenzitti’, ‘Biagio’, ‘Palermo’,48); Master "Bio Info" Reti e Basi di Dati Lezione 6 7 I Concetti fondamentali modifica update Il comando update ha la funzione di modificare i dati delle tabelle. Il nome dei campi da modificare va dichiarato dopo la parola chiave SET e deve essere seguito dal simbolo “=“ e dal nuovo valore Il comando generico aggiorna tutte le righe della tabella ma è possibile restringerne il numero applicando la parola chiave aggiuntiva WHERE Sintassi del comando update UPDATE nome_tabella SET nome_campo1 = 'valore1_nuovo', nome_campo2 = 'valore2_nuovo', ... ; Update con condizione: UPDATE nome_tabella SET nome_campo1 = 'valore1_nuovo', nome_campo2 = 'valore2_nuovo' WHERE nome_campo3 = 'valore'; Master "Bio Info" Reti e Basi di Dati Lezione 6 8 I Concetti fondamentali eliminazione delete Il comando delete ha la funzione di cancellare i dati dalle tabelle. Come il comando update anche delete può operare in modo generico cancellando tutte le righe della tabella oppure può identificare le righe da cancellare mediante la parola chiave aggiuntiva WHERE e la condizione (o le condizioni) ad essa associata. Sintassi del comando delete DELETE FROM nome_tabella; DELETE FROM nome_tabella WHERE nome_campo = 'valore'; Master "Bio Info" Reti e Basi di Dati Lezione 6 9 I Concetti fondamentali Inner Join Il comando JOIN serve a creare le relazioni tra tabelle,consideriamo le seguenti tabelle Per creare una relazione uno ad uno si utilizza la seguente sintassi SELECT * FROM Impiegati INNER JOIN Dipartimenti ON Impiegati.ID_dipartimento = Dipartimenti.ID_dipartimento che equivale a: SELECT * FROM Impiegati, Dipartimenti WHERE Impiegati.ID_dipartimento = Dipartimenti.ID_dipartimento Master "Bio Info" Reti e Basi di Dati Lezione 6 10 MySQL MySQL attualmente definito Oracle MySQL, è un Relational database management system (RDBMS) disponibile sia in ambiente Linux che Windows MySQL svolge il compito di DBMS nella cosiddetta piattaforma LAMP(Linux Apache MySql,Php) una delle più usate e installate su Internet per lo sviluppo di siti e applicazioni web. Esistono diversi tipi di MySQL Manager, ossi di strumenti per l'amministrazione ed uno dei più popolari MySQL è phpMyAdmin che si può utilizzare facilmente tramite un qualsiasi browser. Master "Bio Info" Reti e Basi di Dati Lezione 6 11 Creazione Database in MySQL Una volta avuto accesso alla URL del phpmyadmin è possibile creare un nuovo data base attraverso il form principale, basta inserire il nome nel campo indicato e cliccare il bottone “Crea” Master "Bio Info" Reti e Basi di Dati Lezione 6 12 Creazione Database in MySQL Creazione Database Verrà creato un nuovo data base vuoto Master "Bio Info" Reti e Basi di Dati Lezione 6 13 Creazione Tabelle in MySQL Una volta creato il nuovo data base è possibile creare una tabella cliccando sul nome del database Viene visualizzato il form seguente Master "Bio Info" Reti e Basi di Dati Lezione 6 14 Creazione Tabelle in MySQL Inserito il nome della tabella e il numero di campi Si ha il seguente form Master "Bio Info" Reti e Basi di Dati Lezione 6 15 Creazione Tabelle in MySQL Inseriti i nomi dei campi il tipo …ect e si salva Master "Bio Info" Reti e Basi di Dati Lezione 6 16 Creazione Tabelle in MySQL Master "Bio Info" Reti e Basi di Dati Lezione 6 17 Creazione Tabelle in MySQL Se si vuole fare diventare il campo “id” campo chiave basta cliccare sull’iconetta corrispondente al campo L’effetto sarà questo Master "Bio Info" Reti e Basi di Dati Lezione 6 18 Query in MySQL Inserimento Per eseguire un comando di inserimento si clicca su “Inserisci” Viene visualizzato il form seguente Master "Bio Info" Reti e Basi di Dati Lezione 6 19 Query in MySQL Inserimento Inseriti i dati si clicca su “Esegui” Master "Bio Info" Reti e Basi di Dati Lezione 6 20 Query in MySQL Ricerca Per eseguire un comando di ricerca si clicca su “Cerca” Viene visualizzato il form seguente Master "Bio Info" Reti e Basi di Dati Lezione 6 21 Query in MySQL Ricerca Esempio Se si vuole cercare tutti quelli che vivono in via del cane Inseriti i dati si clicca su “Esegui” Master "Bio Info" Reti e Basi di Dati Lezione 6 22 Query in MySQL Ricerca Esempio Se si vuole cercare tutti quelli che hanno Nome=Biagio Master "Bio Info" Reti e Basi di Dati Lezione 6 23 Query in MySQL Ricerca Per Modificare una riga di una tabella la si seleziona si clicca l’conetta su Se cambio Beppe in Giuseppe Master "Bio Info" Reti e Basi di Dati Lezione 6 24 Query in MySQL Ricerca Per Cancellare una riga di una tabella la si seleziona si clicca su l’conetta Se si clicco “OK” la riga sarà cancellata Master "Bio Info" Reti e Basi di Dati Lezione 6 25 Relazioni in MySQL Se abbiamo le seguenti tabelle “Anagrafe” e “Auto” Per creare una relazione tra “Anagrafe” e “Auto” clicco sull’icona “SQL” Appare un Form per l’esecuzione dei comandi SQL Master "Bio Info" eseguo il comando Reti e Basi di Dati Lezione 6 26 Maschere in MySQL Le maschere di MySql in genere sono pagine Web visualizzabili in un qualsiasi Browser, generate dinamicamente attraverso dei comandi tipicamente in PHP , inseriti all’interno delle pagine HTML. Ad esempio consideriamo questa pagina html insieme alla suo corrispondente effetto in un browser. Master "Bio Info" Reti e Basi di Dati Lezione 6 27 Maschere in MySQL La seguente pagina php avrà un identico risultato Master "Bio Info" Reti e Basi di Dati Lezione 6 28 Maschere in MySQL Questa è la pagina php per eseguire la joint precedente. Master "Bio Info" Reti e Basi di Dati Lezione 6 29 Maschere in MySQL In particolare. $dbhost = 'localhost'; $dbuser = 'XXX'; $dbpass = 'XXXX'; $dbname= 'BioInfo'; Variabili per la connessione al database $db = mysql_connect($dbhost, $dbuser, $dbpass); Comando per la connessione al databas mysql_select_db($dbname,$db); Comando per la selezione del database $query="SELECT * FROM `Anagrafe` INNER JOIN `Auto` ON `id` = `Auto`.`id_propietario` Variabile in cui inserisco il comando sql da eseguire $result =mysql_query($query); Comando per l’esecuzione della query while($row = mysql_fetch_array($result)) {echo "<tr> <th scope=\"col\">".$row[0]."</th><th scope=\"col\">".$row[1]."</th><th scope=\"col\">".$row[2]."</th> <th scope=\"col\">".$row[3]."</th><th scope=\"col\">".$row[4]."</th><th scope=\"col\">".$row[5]."</th> </tr>\n"; } ciclo in cui inserisco nella variabile $row le righe della Joint e le visualizzo Master "Bio Info" Reti e Basi di Dati Lezione 6 30