BIOINFO3 - Lezione 41 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 42 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 43 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 44 COME INTERAGIRE CON IL DB La seconda modalità attraverso cui è possibile parlare con un server SQL consiste nellinserire i comandi direttamente in un programma scritto in un linguaggio ospite 2-Embedding di SQL in un linguaggio di programmazione ospite Tipicamente si richiede lesecuzione 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 45 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 ; o \g alla fine del comando per eseguirlo
BIOINFO3 - Lezione 46 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 47 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 allinterno 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 48 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 >mysqldump nome-db [nome-tabella] Creazione tabelle da file (test.mysql) Il dump crea un output temporaneo a video. Per salvarlo su un file bisogna redirigere loutput 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 Esegui! Commenti
BIOINFO3 - Lezione 49 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]] Tutti i DB di un server Tutte le tabelle di un DB Tutti i campi di una tabella
BIOINFO3 - Lezione 410 RIEPILOGO Come interagire con il server MySQL Creazione del DB e delle tabelle Eliminazione tabelle Dump del database Elenco delle tabelle