Import von Excel-Daten in MySQL



Voraussetzung PC mit Windows XP (oder Vista), Daten in Excell-Tabelle, exportieren als CSV-Datei, natürlich geht dies auch mit Windows 7 und Windows 8.1


Es sind beide Wege möglich


Beispiel einer Excel-Tabelle, die importiert werden soll:

Beispiel: Strassendatei der Stadt Augsburg
Aus der Excel-Datei der Stadt einige Strassen rauskopieren, hier im Beispiel nur Strassenname und Stadtbezirknummer (Kriegshaber = 18), als csv-Datei ausgeben, Dateiname ist MusterKriegshaber.csv
Ergebnis:

Alte Straße;18
Alte Straße (Neusäß);18
Am Exerzierplatz;18
An der Pferdeweide;18
Anne-Frank-Straße;18
Aystetter Weg;18
Babenhauser Weg;18
Bei den Reithöfen;18
Bertha-von-Suttner-Straße;18
Bissingerstraße;18
Burgauer Straße;18
Bürgermeister-Ackermann-Straße;18
Carl-Schurz-Straße;18
Clara-Tott-Straße;18
Columbusstraße;18
Daucherstraße;18
 

A. Erststellung eines localhost mit MySQL-Datenbanken


1. Installation von XAMPP auf dem lokalen PC:
Dowload von XAMPP über http://www.apachefriends.org/de/xampp-windows.html
Anmerkungen: Ich habe XAMPP sowohl für den PC mit Windows XP als auch mit Vista installiert. Beide Installationen liefen problemlos.

Windows XP: Beim PC mit XP ging nach einiger Zeit das Starten des MySQL-Servers nicht mehr, während das Starten des Apache-Servers einwandfrei ging. Nachdem ich die Ursache dafür nicht gefunden habe, habe ich das Laufwerk des PCs formatiert, Windows XP, XAMPP und alles andere wieder installiert, jetzt läuft alles blendend. (Es ist überhaupt eine gute Idee, Windows nach einiger Zeit nach einer Formatierung des C-Laufwerks neu zu installieren, es läuft dann besser, weil kaum mehr gebrauchte Programminstallationen mit unnötigen Drivern verschwunden sind.)

Bei Vista: Start des MySQL-Servers nicht wie bei Windows XP (XAMPP Control Panel) sondern nur mit Browser (Firefox)   http://localhost/phpmyadmin/  aufrufen. Es ist aber sinnvoll, alle Passwörter neu zu  definieren, der SQL-Server hat z.B. gar kein Passwort nach der Installation.
Informationen: http://www.apachefriends.org/de/

2. Installation von XAMPP in Verzeichnis C:\xampp

3a. Start von XAMPP bei Windows XP: Klick auf Icon XAMPP Control Panel
3b: Bei Vista: Aufruf von http://localhost/phpmyadmin/

4a. bei XP: Start von Apache und MySQL
4b: bei Vista: phpMyAdmin

siehe auch hier: https://hosting.1und1.de/digitalguide/server/tools/xampp-tutorial-so-erstellen-sie-ihren-lokalen-testserver/

Wenn aus irgendeinem Grund Windows neu installiert werden muss, dann muss auch XAMPP neu installiert werden. Alle Dateien unter dem Verzeichnis XAMPP können bestehen bleiben. Auch die Datenbanken, die unter dem Verzeichis phpMyAdmin stehen, können bleiben, hier wird durch die Neuinstallation von XAMPP nichts verändert. Nach Beendigung der XAMPP-Installation kann XAMPP wieder gestartet werden und dann, nachdem der Apache- und der SQL-Server wieder gestartet sind, kann auch über myadmin die spezielle MySQL-DB wieder geöffnet werden.

B. Export vom Internet, Import nach Localhost

Wichtig ist die richtige Definition des Zeichensatzes (wenn wir deutsche Zeichen wie ÄÖÜäüöß verwenden)
folgender Befehl beim create einer Tabelle steuert dies: CHARACTER SET latin1 COLLATE latin1_german1_ci
und auch TYPE=MyISAM DEFAULT CHARSET=latin1
also z.B.
CREATE TABLE IF NOT EXISTS `bk` (
  `GNR` int(2) DEFAULT NULL,
  `KNR` varchar(11) DEFAULT NULL,
  `TITEL` varchar(50) 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;

---------------------------------------------------------------------------------------------------------------------------------

Start von Mozille Firefox Adresse http://localhost, <phpMyAdmin> <test> <SQL>
nun den folgenden Befehl eingeben:
CREATE TABLE `Strassenname1` (
  `Name` varchar(40) CHARACTER SET latin1 COLLATE latin1_german1_ci  NOT NULL default '',
  `ST` char(2) NOT NULL default '',
  PRIMARY KEY  (`Name`)
) TYPE=MyISAM COMMENT='Test-Tabelle für Import';

Damit ist eine Tabelle mit Namen Strassenname1 mit den Feldern Name und ST erstellt worden.

Die Datei MusterKriegshaber.csv in das Verzeichnis der DB kopieren, also C:\xampp\mysql\data\test
nun folgenden SQL-Befehl eingeben:
LOAD DATA INFILE 'MusterKriegshaber.csv' into TABLE Strassenname1 FIELDS TERMINATED BY ';';

Ergebnis: 16 Zeile(n) eingefügt

Kontrolle: <Anzeigen> Tabelle strassenname1

Die Tabellendaten von localhost in die DB, die wir früher über die domain 1und1.com erstellt haben:

<Exportieren> <SQL> <ok>
Die erstellten Zeilen als Datei Exp-Tab-strn.sql ausgeben

Die admin-Funktion von der Domain aufrufen (siehe Doku http://www.heinz-wember.de/Beispiele-PHP-MySQL/My-SQL-Anwendung.html

<MySQL-Datenbank> <die Datenbank> <Exportieren> <Datenbanken> <die spez. DB> <SQL>
nun den Befehl eingeben, der in der Datei Exp-Tab-strn.sql steht

Nachdem die Tabelle bereits früher eingegeben wurde, genügt es nur den Befehl INSERT into Strassename1 ....
einzugeben (dazu die Datei  mittels write aufrufen und den Befehl INSERT... markieren

Den Zwischenspeicher in <SQL> reinkopieren und <ok>

Kontrolle: Tabelle <Strassenname1> <Anzeigen>

Nun kann ein php-Skript geschrieben werden von der Art B_2 (select from Strassenname)

siehe http://www.heinz-wember.de/Beispiele-PHP-MySQL/index.html
und   http://www.heinz-wember.de/My-SQL-Anwendung.html

Ich habe Probleme mit dem Zeichensatz, wenn ich die Daten mit der Funktion IMPORT einfüge. Problemlos ist es, die Daten mit der Funktion SQL einzufügen (also die INSERT INTO ....)  mit copy in das Befehlsfeld bringen.


C. Export einer Datenbank auf Localhost, Import nach MySQL im Internet

Datenbank auf localhosts aufrufen

Exportieren mittels Funktion <Exportieren> (alle voreingestellten Parameter so lassen wie sie sind, evt. zusätzlich ein Häkchen bei <Füge IF NOT EXISTS hinzu> , falls eine Datenbank im Internet gleichen Namens schon existiert.

das entstandende sql-Script kopieren (markieren und kopieren, damit steht das Scrip im Zwischenspeicher)

Datenbank im Internet aufrufen bei 1und1.com über https://login.1und1.de/  und <MySQL Datenbank)>

a) falls die Datenbank gleichen Namens (d.h. hier heißt die Datenbank z.B. db269713661 , in der Beschreibung verwende ich dann die Funktion der DB z.B. Test) öffnen, 

b) im anderen Fall, wenn diese DB noch nicht existieren, eine neue Datenbank eröffnen ohne die benötigten Tabellen zu erstellen (das macht dann das Script)

<exportieren> <Datenbanken> auf den Datenbankennamen (z.B. db269713661 klicken, <SQL>, nun das im Zwischenspeicher befindliche SQL-Script einfügen <OK>

es kann nun sein, dass verschiedene Optionen im Script moniert werden, diese im allgemeinen unwichtigen Parameter löschen und das Script nochmals ausführen



  zur Übersicht Dokumentationen ,  Homepage Heinz Wember  

Änderungsstand: 11-Aug-2014 22-Mai-2018
Heinz Wember