Data Base - Università degli Studi di Palermolenzitti/masterbioinf/lezione6.pdf · strutturato) è...

30
Master "Bio Info" Reti e Basi di Dati Lezione 6 Data Base 1

Transcript of Data Base - Università degli Studi di Palermolenzitti/masterbioinf/lezione6.pdf · strutturato) è...

Master "Bio Info" Reti e Basi di Dati Lezione 6

Data Base

1

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

Master "Bio Info" 17 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