ALTRO ESEMPIO ANCORA
Progettare il comando di creazione di una tabella di
pubblicazioni scientifiche. Come chiave usare un numero intero
positivo < 4 miliardi (PubMedID). Memorizzare lista degli
autori, titolo, abstract, citazione bibliografica (giornale,
numero, pagine) e un giudizio personale (voto da 1 a 10).
create table pubblicazioni(
pubmedid int unsigned primary key auto_increment,
autori text,
titolo varchar(255),
abstract text,
citazione varchar(100),
giudizio tinyint unsigned
)
BIOINFO3 - Lezione 4
1
COME INTERAGIRE CON IL DB
E’ possibile interagire (“fornire comandi SQL”) con il server del DBMS (nel
nostro caso useremo il server MySQL) in due modi diversi:
1-Da riga di comando
Da una finestra a carattere (eterm, xterm…) si attiva un programma client
che si connette con il server e, attraverso un interprete di righe di comando,
accetta comandi SQL e restituisce i risultati prodotti
Comando UNIX di
esecuzione del client
Nome del computer
con il server MySQL
Nome del database
Prompt ove inserire
i comandi
BIOINFO3 - Lezione 4
2
Connessione mediante login e password
1) mysql -h nome_server -u utente -ppassword
NB: notate che la password va scritta senza spazio dopo l`opzione -p
2) mysql -h nome_server -u utente -p
A questo punto verra` richiesto di inserire la password, la quale scritta senza essere
visibile.
Per uscire dal prompt di MySQL, basta digitare exit
BIOINFO3 - Lezione 4
3
COME INTERAGIRE CON IL DB
La seconda modalità attraverso cui è possibile “parlare” con un server SQL
consiste nell’inserire i comandi direttamente in un programma scritto in un
linguaggio “ospite”
2-Embedding di SQL in un linguaggio di programmazione ospite
Tipicamente si richiede l’esecuzione di “librerie” (programmi dedicati di
servizio) del linguaggio di programmazione ospite (esistono librerie di MySQL
per JAVA, C, PERL ecc…). Le librerie permettono di collegarsi con il server e
di fornirgli dei comandi, ottenendo i risultati
Porzione di un programma (scritto nel linguaggio PERL con
chiamate alla “libreria” del PERL per MySQL
BIOINFO3 - Lezione 4
4
LA CREAZIONE DEL DB E DELLE TABELLE
Esistono dei comandi SQL che permettono di creare (CREATE DATABASE) o
di cancellare (DROP DATABASE) un database.
create database nome-database;
drop nome-database;
Una volta pronto il DB potete collegarvi attraverso il client ed inserire
direttamente il comando di CREATE da riga di comando
Comando UNIX di
esecuzione del client
Comando SQL di
creazione della
tabella
BIOINFO3 - Lezione 4
; o \g alla fine
del comando per
eseguirlo
5
UN MODO PIU’ SEMPLICE
Esiste un modo più semplice ed utile per creare tabelle (anche più
di una contemporaneamente) soprattutto in fase di “collaudo”
del database.
In ogni caso si può star tranquilli perché esistono comunque dei
comandi che permettono di alterare successivamente la struttura
del database (ALTER TABLE)
•Scrivere con un editor i comandi di create per tutte le tabelle
•Salvare il file con un certo nome
•Attivare il client mysql dicendogli di leggere direttamente dal
file salvato i comandi SQL
> mysql [–h nome-server] nome-db < nome-file
Le parentesi quadre
indicano un parametro
opzionale
BIOINFO3 - Lezione 4
6
ELIMINAZIONE TABELLA
Nel caso si decidesse di eliminare una tabella, ad esempio per
ricrearne una nuova versione modificata si usa il comando SQL
DROP (N.B. siamo all’interno del client MySQL e non in unix!)
mysql> drop table nome-tabella ;
N.B. ricordarsi ; o
\g a fine riga
Se non si specifica il nome
di un server ci si connette
al server MySQL attivo sullo
stesso computer in cui si
esegue il client
BIOINFO3 - Lezione 4
7
DUMP DEL DATABASE
Può essere utile salvare in un file di testo un database, ad esempio per
ricrearne una copia modificata o per motivi di sicurezza. In questo caso si usa
il comando UNIX MYSQLDUMP
Creazione tabelle da file
(test.mysql)
>mysqldump nome-db [nome-tabella]
Commenti
Il dump crea un output temporaneo a
video. Per salvarlo su un file bisogna
redirigere l’output con > nome-file
mysqldump test > test.mysql
Il file contiene i comandi SQL
necessari a ricreare il database e
quindi
potrà
essere
passato
successivamente al client mysql se si
dovesse voler ricreare il db
BIOINFO3 - Lezione 4
Esegui!
8
ELENCO TABELLE
Un comando UNIX molto utile è MYSQLSHOW, che elenca tutti
i database di un server, tutte le tabelle di un database, tutti i
campi di una tabella
mysqlshow [–h nome-server ] [nome-db [nome-tabella]]
Tutte le tabelle
di un DB
Tutti i
campi di
una tabella
Tutti i DB di
un server
BIOINFO3 - Lezione 4
9
RIEPILOGO
•Come interagire con il server MySQL
•Creazione del DB e delle tabelle
•Eliminazione tabelle
•Dump del database
•Elenco delle tabelle
BIOINFO3 - Lezione 4
10
Scarica

bioinfo3