Lezione 6

Transcript

Lezione 6
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