Aus einer Access-DB eine SQL-DB erstellen (Beispiel: Bücherei)
Voraussetzungen:
Access-Datenbank (ich habe noch die Version Office 2000) auf PC (Windows XP oder Vista)
Ein PC mit Windows XP oder Vista mit XAMP
Webspace (ich habe 1und1) mit MySQL-Datenbank
Ziel:
Die Access-DB hat folgenden Aufbau:
Gebietstabelle mit den Feldern Gebietsnummer und Gebietsbeschreibung:
Buchtabelle mit den Feldern : laufende Nummer, Gebietsnummer (mit der
Gebietsnummer der Gebietstabelle verknüpft), Buchtitel, wo
(Schranknummer), Erscheinungsjahr, Autor (die weiteren Felder wie
Kaufdatum, Preis etc. sind für die Übernahme auf die MySQL-DB
ohne Belang und werden also nicht übernommen
Die einzelnen Tabellen werden separat übernommen.
1. Aus Access-DB mehrere Excel-Tabellen erstellen, also eine Tabelle Gebiete und mindestens eine Tabelle buecher.
Wenn die Ausgangstabelle mehr Felder hat als man übernehmen will,
ist es am einfachsten, diejenigen Felder zu markieren und zu kopieren
und daraus eine neue Excel-Tabelle zu machen, in unserem Beispiel also
nur die 6 Felder.
2. Aus den jeweiligen Excel-Tabellen jeweils einen CSV-Export machen
(also <Speichern unter> und als Dateityp CSV (Trennzeichen
getrennt angeben).
3. Die erhaltene CSV-Datei in das Verzeichnis von XAMP kopieren (in meinem Fall: C:\XAMP\mysql\data\buecherei)
4. XAMP starten (siehe hierzu auch die Doku http://www.heinz-wember.de/MySQL/import_SQL_DB.html#XAMPP)
Wenn es beim Starten Probleme gibt, dass sich z.B. der SQL-Server nicht
starten lässt, nachschauen, ob dieser Dienst bereits gestartet
ist: <Start> <Systemsteuerung> <Verwaltung>
<Dienste> Name des Dienstes MySQL
5. In der mysql-localhost die Struktur der Tabelle anlegen, also z.B.
CREATE TABLE `bkw` (
`knr` varchar(11) character set latin1 collate latin1_german1_ci default NULL,
`gnr` int(2) default NULL,
`titel` varchar(50) character set latin1 collate latin1_german1_ci default NULL,
`wo` varchar(4) character set latin1 collate latin1_german1_ci default NULL,
`jahr` double default NULL,
`autor` varchar(20) character set latin1 collate latin1_german1_ci default NULL,
KEY `GNR` (`gnr`),
KEY `TITEL` (`titel`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
6. Import der csv-Datei mit dem Befehl: LOAD DATA INFILE 'wanderfuehrer.csv' into TABLE bkw FIELDS
TERMINATED BY ';';
Damit sollten alle Sätze nun in der local-DB vorhanden sein
7. Die Tabelle einschließlich Daten auf localhost exportieren
damit wird eine Bildschirmdatei erstellt
8. Den Teil beginnend mit Create ... einschließlich der Daten markieren und kopieren
9. Über das Administratormenü von 1und1 die Internet-Domain aufrufen, Punkt MySQL Datenbank
10. Den Menüpunkt SQL aufrufen und die markierte Datei von 8. einfugen und den Befehl ausführen (<ok>)
damit sollten alle Sätze importiert sein.
Dasselbe auch mit der Gebietstabelle machen.
Nun die Tabellen "verschönern" (Anwendung der Normalformen, also
schauen, ob der Primärschlüssel da ist etc.), Nicht
brauchbare Sätze (z.B. der Überschriftsatz) entfernen.
Wenn man, wie ich es mache, nur von Zeit zu Zeit eine neue MySQL-DB
erstellen will und nicht vorhat, online die neu erstellten Tabellen
abzuändern, kann man sich das Feld mit
denPrimärschlüssel auch sparen, es sei denn, die
Ursprungstabelle enthielt bereits so ein Feld mit
Primärschlüssel.