Operando attraverso interfacce web o altri programmi per la gestione di database MySQL, non abbiamo bisogno di conoscere i comandi che andremo a vedere in questo articolo, perché stiamo utilizzando un software che nasconde le istruzioni a basso livello, per conoscere però bene i risultati delle operazioni occorre studiare anche questi. In questo articolo, in particolare, vedremo come importare ed esportare la struttura ed i dati contenuti all’interno dei database MySQL con i comandi standard offerti dal server.
Spesso occorre trasferire la struttura ed a volte anche i dati da un database di una macchina verso un altro database o addirittura verso un altro server con un’altra architettura. Per mantenere questa portabilità si può ricorrere a due metodi differenti: ci annotiamo tutte le istruzioni SQL necessarie oppure ricorriamo al comando mysqldump. Con questo comando è possibile farsi generare tutte le istruzioni, perfino le INSERT, per ripristinare un database, una tabella o perfino soltanto i valori ivi contenuti. La sintassi del comando è la seguente:
mysqldump [opzioni] database [tabella]
Oltre alle comuni opzioni viste per gli altri comandi del server, le più utili sono:
Oltre alle opzioni dobbiamo indicare il database su cui operare ed opzionalmente la tabella interessata, se si omettesse il nome verranno estratte tutte le tabelle del database. Ad esempio, se volessimo generare gli script per la creazione della tabella “clienti” presente nel database “test” daremo il comando:
mysqldump -u root -pxxxxx test clienti > clienti.sql
come potete osservare l’output del comando è stato reindirizzato sul file clienti.sql altrimenti sarebbe andato su stdout, ossia lo schermo. Ora possiamo cancellare la tabella dando questi comandi:
mysql -u root -pxxxx
mysql> use test;
mysql> drop table clienti;
mysql> quit;
ricordo che è anche possibile inserire i comandi all’interno di un file e redirezionare l’input al programma mysql. Una volta cancellata la tabella passiamo a crearla ed andiamo poi a verificare se è ritornato tutto come prima:
mysql -u root -pxxxxx < clienti.sql
mysql -u root -pxxxxx
mysql> use test;
mysql> show tables;
mysql> select * from clienti;
come è possibile verificare tutto è ritornato come era al momento del salvataggio.
Non sempre è possibile importare dati nelle tabelle del database con delle comode istruzioni INSERT, magari perché questi archivi vengono forniti in formato testo, delimitati da appositi caratteri. Per automatizzare queste operazioni, MySQL mette a disposizione il comando mysqlimport, vediamo la sintassi:
mysqlimport [opzioni] database nomefile
abbiamo le opzioni, il database ed il nome del file che occorre importare, unica limitazione è che il nome della tabella avrà lo stesso nome del file esclusa l’estensione, ad esempio clienti.doc e clienti.dat formeranno sempre la tabella clienti. Ovviamente esiste tutta una serie di opzioni che permettono di descrivere il formato del file, per default abbiamo i campi separati da un carattere di tabulazione, le righe da un carattere di fine riga e la presenza di eventuali caratteri speciali ( il singolo apice ) con uno slash rovesciato. Ecco la lista delle opzioni utili ad importare i dati:
Come esercizio potete preparare un file di testo con dei dati da importare ed eseguire il comando mysqlimport come ormai dovrete essere in grado di saper utilizzare. Vorrei segnalarvi soltanto che il file di testo deve essere leggibile dall’utente con cui si avvia il demone di MySQL server, quindi occhio ai permessi.
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→