Data Base - Università degli Studi di Palermolenzitti/masterbioinf/lezione6.pdf · strutturato) è...
Transcript of Data Base - Università degli Studi di Palermolenzitti/masterbioinf/lezione6.pdf · strutturato) è...
Sommario
Master "Bio Info" Reti e Basi di Dati Lezione 6
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
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" Master "Bio Info" 3 Reti e Basi di Dati Lezione 6
I Concetti fondamentali Interrogazione Select
Col comando select si può estrarre i dati, in modo mirato, dal
database, la sua sintassi è la seguente:
SELECT [ ALL | DISTINCT ] lista_elementi_selezione FROM
lista_riferimenti_tabella [ WHERE espressione_condizionale ] [ GROUP BY
lista_colonne HAVING Condizione ] [ ORDER BY lista_colonne ];
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
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" Master "Bio Info" 4 Reti e Basi di Dati Lezione 6
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" Master "Bio Info" 5 Reti e Basi di Dati Lezione 6
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" Master "Bio Info" 6 Reti e Basi di Dati Lezione 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" Master "Bio Info" 7 Reti e Basi di Dati Lezione 6
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" Master "Bio Info" 8 Reti e Basi di Dati Lezione 6
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" Master "Bio Info" 9 Reti e Basi di Dati Lezione 6
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" Master "Bio Info" 10 Reti e Basi di Dati Lezione 6
Master "Bio Info"
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" 11 Reti e Basi di Dati Lezione 6
Master "Bio Info"
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" 12 Reti e Basi di Dati Lezione 6
Master "Bio Info"
Creazione Database in MySQL Creazione Database
Verrà creato un nuovo data base vuoto
Master "Bio Info" 13 Reti e Basi di Dati Lezione 6
Master "Bio Info"
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" 14 Reti e Basi di Dati Lezione 6
Master "Bio Info"
Creazione Tabelle in MySQL
Si ha il seguente form
Inserito il nome della tabella e il numero di campi
Master "Bio Info" 15 Reti e Basi di Dati Lezione 6
Master "Bio Info"
Creazione Tabelle in MySQL
Inseriti i nomi dei campi il tipo …ect e si salva
Master "Bio Info" 16 Reti e Basi di Dati Lezione 6
Master "Bio Info"
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" 18 Reti e Basi di Dati Lezione 6
Master "Bio Info"
Query in MySQL Inserimento
Per eseguire un comando di inserimento si clicca su “Inserisci”
Viene visualizzato il form seguente
Master "Bio Info" 19 Reti e Basi di Dati Lezione 6
Master "Bio Info"
Query in MySQL Inserimento
Inseriti i dati si clicca su “Esegui”
Master "Bio Info" 20 Reti e Basi di Dati Lezione 6
Master "Bio Info"
Query in MySQL Ricerca Per eseguire un comando di ricerca si clicca su “Cerca”
Viene visualizzato il form seguente
Master "Bio Info" 21 Reti e Basi di Dati Lezione 6
Master "Bio Info"
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" 22 Reti e Basi di Dati Lezione 6
Master "Bio Info"
Query in MySQL Ricerca
Esempio Se si vuole
cercare tutti quelli che
hanno Nome=Biagio
Master "Bio Info" 23 Reti e Basi di Dati Lezione 6
Master "Bio Info"
Query in MySQL Ricerca Per Modificare una riga di
una tabella la si seleziona
si clicca su
l’conetta
Se cambio
Beppe in
Giuseppe
Master "Bio Info" 24 Reti e Basi di Dati Lezione 6
Master "Bio Info"
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" 25 Reti e Basi di Dati Lezione 6
Master "Bio Info"
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 eseguo il comando
Master "Bio Info" 26 Reti e Basi di Dati Lezione 6
Master "Bio Info"
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" 27 Reti e Basi di Dati Lezione 6
Master "Bio Info"
Maschere in MySQL La seguente pagina php avrà un identico risultato
Master "Bio Info" 28 Reti e Basi di Dati Lezione 6
Master "Bio Info"
Maschere in MySQL
Questa è la pagina php per eseguire la joint precedente.
Master "Bio Info" 29 Reti e Basi di Dati Lezione 6
Master "Bio Info"
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 database
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" 30 Reti e Basi di Dati Lezione 6