In Windows, produrre e gestire database con Microsoft Access, almeno per alcune
delle operazione fondamentali, è molto semplice ed immediato. Se si è installato Office,
basta, ad esempio un po' di esperienza con i fogli di Excel per poterli trasformare in
tabelle di Access e inserire tali tabelle in un file *.mdb
. Usando
pagine ASP e gli
oggetti ADO si può poi accedere a questi database anche
con un browser.
Se la pagina ASP risiede in un personal computer in cui Windows sia dotato di IIS,
usando come root della URL localhost
, il browser può visualizzare adeguatamente
tali pagine.
Volendo passare dal software Windows al software PAM (PHP, Apache, MySql), bisogna convertire le tabelle del database dal formato Access (*.mdb) al formato MySql. Esistono numerosissime applicazioni che permettono di realizzare automaticamente questa 'migrazione', che tuttavia, dopo aver installato MySql, almeno nei casi più semplici, si può realizzare usando come intermediatori tra i due ambienti files di testo in formato CSV (Comma Separated Values: Valori separati da virgola). Questi file, connotati dall'estensione *.csv, possono essere tranquillamente letti con Notepad e permettono di controllare direttamente la correttezza delle 'traduzioni'.
Si supponga di avere un database di Access denominato Classe.mdb
contenente due tabelle
Studenti
e Professori
. La tabella Studenti
contiene i seguenti campi:
Cognome
, Nome
, Sesso
; La tabella Professori
contiene i seguenti campi:
Cognome
, Nome
, Materia
.
Per esportare questo semplice database in formato MySql si può procedere nel seguente modo.
Esportazione di ogni tabella di Classe.mdb
in un file di testo *.csv.
La produzione di un file *.csv
si ottiene in Access selezionando una tabella, usando l'opzione
File→Esporta e selezionando, nel campo Tipo File il formato File di Testo. Scegliere la collocazione del file da produrre. Il nome di questo file deve avere estensione *.csv.
Alla richiesta di quale segno usare
per separare i campi (virgola o punto e virgola) scegliere punto e virgola.
Accertarsi che non vengano riportati i nomi dei campi.
Accertarsi che i dati di tipo stringa non siano delimitati da apici o virgolette.
Salvare in questo modo i files Studenti.csv
e Professori.csv
.
Lanciare phpMyAdmin come descritto nella pagina precedente. Cliccare il pulsante mostra icone nascoste in basso a destra del monitor e nel menù che si apre cliccare phpMyAdmin.
Si apre l'nterfaccia
Sulla base delle operazioni precedentemente effettuate nella console, inserire username (master) e password (owner) e scegliere MySQL tra le alternative proposte (MariaDB e MySQL). Cliccando Go si apre l'interfaccia MySQL.
Cliccando New è possibile creare un nuovo database di cui va scritto il nome, ad esempio, DBClasse.
Cliccare Create.
Per ognuna delle tabelle del database di Access, nel nuovo 'schema' creare una corrispondente tabella nel database MySql dichiarando nome e tipo dei suoi campi.
A questo scopo
Ancora:
I principali tipi di dati utilizzabili sono
Tipo | Uso | valore |
---|---|---|
TINYINT | intero in 1 byte | con segno: da -128 a 127; senza da 0 a 255. |
BOOLEAN | 1 byte | 0: FALSE; 1 (o qualunque altro valore non nullo): TRUE |
SMALLINT | intero in 2 bytes | con segno: da -32768 a 32767; senza: da 0 a 65535 |
MEDIUMINT | intero in 3 bytes | con segno: da -8388608 a 8388607; senza: da 0 a 16777215 |
INT | intero in 4 bytes | con segno: da -2147483648 a 2147483647; senza: da 0 a 4294967295 |
BIGINT | intero in 8 bytes | con segno: da -9223372036854775808 a 9223372036854775807; senza da 0 a 18446744073709551615 |
FLOAT[(p)] | reale in precisione semplice | (facoltativo) p: precisione: se p>24 equivale a DOUBLE |
DOUBLE[(M,D)] | reale in precisione doppia | (facoltativi) M: numero totale di cifre; D: numero di cifre decimali (D<M) |
DECIMAL[(M,D)] | reale come stringa | M e D come sopra |
DATE | data | formato 'YYYY-MM-DD' |
DATETIME | data e orario | formato 'YYYY-MM-DD HH:MM:SS' |
TIME | orario | formato 'HH:MM:SS' |
YEAR | anno (2 o 4 cifre: default:4) | |
CHAR(m) | stringa di m caratteri | 1≤m≤255 |
VARCHAR(m) | stringa di lunghezza variabile (m massima lunghezza) | 1≤m≤255 |
TINYTEXT | testo | massimo 255 caratteri |
TEXT[(m)] | testo | massimo 65535 caratteri |
MEDIUMTEXT | testo | massimo 16777215 caratteri |
LONGTEXT | testo | massimo 4294967295 caratteri |
Ora, usando due queries di MySql, è possibile popolare le tabelle così inizializzate
ricavando i dati dai file *.csv
precedentemente generati.
Le queries possono essere le seguenti
LOAD DATA INFILE "Studenti.csv"
INTO TABLE Studenti
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\r\n"
LOAD DATA INFILE "Professori.csv"
INTO TABLE Professori
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\r\n"
Se si ottiene un messaggio di errore, leggerlo attentamente e provvedere agli aggiustamenti necessari. Può essere necessario:
*.csv
Se una tabella di MySql è ben inizializzata ma mal popolata, è possibile svuotarla senza distruggerla usando la query
TRUNCATE nome_tabella
e poi tentare di ripopolarla dal file nome_tabella.csv riusando una query simile a quelle proposte.
Per controllare se le tabelle funzionano a dovere, provare le seguenti queries, ripulendo ogni volta lo spazio di editing e di output di MySql:
SELECT * FROM Studenti
SELECT * FROM Studenti ORDER BY Cognome
SELECT * FROM Professori
SELECT * FROM Studenti WHERE Sesso="F"
SELECT * FROM Studenti WHERE Cognome LIKE "B%"
SELECT * FROM Professori WHERE Materia="Scienze"
Se si vuole invece convertire una tabella di MySql in una tabella di un database in
formato Microsoft Access, si può seguire la procedura inversa a quella illustrata nel
paragrafo precedente, sempre con l'intermediazione di un file *.csv
.
In MySql scrivere la query
SELECT * FROM nome_tabella;
Se si vuole la tabella ordinata secondo i valori si un particolare campo si può completare la query cosi:
SELECT * FROM nome_tabella ORDER BY nome_campo;
Eseguire la query ottenendo un recordset coincidente con il contenuto della tabella.
Export
,
produrre il file in formato *.csv
nome_tabella.csv che viene scaricato in Downloads ed eventualmente ricopiarlo in una opportuna cartella del proprio sistema.
Aprire con Notepad questo file ed eventualmente cancellare la prima riga se contiene i nomi dei campi. Se si intende mantenere questi nomi
anche nella tabella di Access da produrre, prenderne nota.
Alla schermata successiva, lasciare come delimitatore di campo la virgola.
Cliccare Avanzate e nella schermata che appare scegliere in Tabella codici Unicode (UTF-8). Questo particolare è importante ne non si vogliono confusioni sui caratteri accentati. Confermare e proseguire.