Databestanden importeren (MySQL): verschil tussen versies
(33 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
+ | This might be what I've been looking for: https://sqlizer.io/ | ||
+ | |||
== PMA == | == PMA == | ||
Regel 11: | Regel 13: | ||
In zulke gevallen is 't waarschijnlijk handiger om rechtstreeks mbv. SQL te importeren. | In zulke gevallen is 't waarschijnlijk handiger om rechtstreeks mbv. SQL te importeren. | ||
− | == | + | == Vanuit Excel == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Vaak krijg ik data aangeleverd in Excel-formaat. Je weet wel, data nare semi-gesloten format. Hoe daar een mouw aan te passen? | |
− | |||
− | + | Meestal volg ik de laatste methode hieronder: Ik open het bestand in LibreOffice Calc, en schrijf het weg in ods-formaat. Voilà: Geen Excel meer in the picture. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === Add-ons & losse programma'tjes === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* '''MySQL for Excel-addon:''' Er bestaat een add-on voor Excel om te exporteren naar MySQL [https://dev.mysql.com/doc/mysql-for-excel/en/mysql-for-excel-export.html]. Daar kan ik weinig mee | * '''MySQL for Excel-addon:''' Er bestaat een add-on voor Excel om te exporteren naar MySQL [https://dev.mysql.com/doc/mysql-for-excel/en/mysql-for-excel-export.html]. Daar kan ik weinig mee | ||
Regel 109: | Regel 26: | ||
* '''SQLyog:''' Nog een import add-on. | * '''SQLyog:''' Nog een import add-on. | ||
− | + | === Indirect === | |
− | * ''' | + | * '''[[OpenRefine]]:''' Veelbelovend, maar geeft bij mij storingen. Het idee zou zijn: Laden in OpenRefine » Extraction » Wegschrijven als tsv-bestand |
− | * ''' | + | * '''CSV:''' Wegschrijven in CSV-formaat, en dan op een andere manier importeren |
− | * ''' | + | * '''[[LibreOffice Basic]]:''' Bestand opslaan als ods-bestand » Voorbereidend werk doen mbv. macro's (ihb.: Tabbladen samenvoegen) » Wegschrijven als tsv-bestand » Laden met een eigen LOAD INTO-routine in MySQL |
− | + | == SQL - LOAD DATA == | |
− | + | ''LOAD DATA'' is het standaardcommando om te importeren. Helaas kun je het niet toepassen in sprocs; alleen in losse SQL-scripts. | |
− | + | ||
+ | Zie [[LOAD DATA (MySQL)]] voor details. | ||
+ | |||
+ | == SQL - LOAD_FILE == | ||
− | + | De beperkingen omtrent <code>LOAD DATA</code> schijnen niet te gelden voor <code>LOAD_FILE</code>. Hierbij wordt de data in één groot object ingeladen, dus wellicht geschikt om á là PMA dynamisch de bijbehorende tabel te genereren. LOAD_FILE lijkt echter z'n eigen beperkingen te hebben, en tot op heden heb ik het nog niet aan de praat gekregen. | |
− | == | + | == Zie ook == |
− | + | * [[LibreOffice Basic]] - Rekenbladen samenvoegen | |
+ | * [[LOAD DATA (MySQL)]] - Standaardmethode voor import in MySQL. | ||
+ | * [[Opmaak tekstbestanden]] | ||
== Bronnen == | == Bronnen == | ||
Regel 145: | Regel 67: | ||
* http://www.debugpoint.com/2014/09/libreoffice-workbook-worksheet-and-cell-processing-using-macro/ | * http://www.debugpoint.com/2014/09/libreoffice-workbook-worksheet-and-cell-processing-using-macro/ | ||
+ | |||
+ | ''' Import MySQL ''' | ||
+ | |||
+ | * https://dev.mysql.com/doc/refman/5.7/en/load-data.html | ||
+ | |||
+ | ''' Beperkingen stored procedures ''' | ||
+ | |||
+ | * https://dev.mysql.com/doc/refman/5.6/en/stored-program-restrictions.html | ||
+ | * https://www.morpheusdata.com/blog/2014-12-21-the-fastest-way-to-import-text-xml-and-csv-files-into-mysql-tables |
Huidige versie van 20 dec 2022 om 12:36
This might be what I've been looking for: https://sqlizer.io/
PMA
PHPMyAdmin heeft een hele aardige import-functie. Wat daar zo aardig aan is: Er wordt dynamisch een tabel aangemaakt van (meestal) passende dimensies.
Maar zoals nix in deze wereld perfect is, is ook dit dat niet:
- PMA is niet altijd beschikbaar
- Time out-storingen
- Onduidelijke foutmeldingen.
In zulke gevallen is 't waarschijnlijk handiger om rechtstreeks mbv. SQL te importeren.
Vanuit Excel
Vaak krijg ik data aangeleverd in Excel-formaat. Je weet wel, data nare semi-gesloten format. Hoe daar een mouw aan te passen?
Meestal volg ik de laatste methode hieronder: Ik open het bestand in LibreOffice Calc, en schrijf het weg in ods-formaat. Voilà: Geen Excel meer in the picture.
Add-ons & losse programma'tjes
- MySQL for Excel-addon: Er bestaat een add-on voor Excel om te exporteren naar MySQL [1]. Daar kan ik weinig mee
- Excel2MySQL: Een andere (gratis?) standalone routine, vermoedelijk bedoelt voor eindgebruikers: http://excel2mysql.net/ - Sla ik over
- RazorSQL MySQL Import Tool: http://www.razorsql.com/features/mysql_import.html - Ziet er aardig uit
- SQLyog: Nog een import add-on.
Indirect
- OpenRefine: Veelbelovend, maar geeft bij mij storingen. Het idee zou zijn: Laden in OpenRefine » Extraction » Wegschrijven als tsv-bestand
- CSV: Wegschrijven in CSV-formaat, en dan op een andere manier importeren
- LibreOffice Basic: Bestand opslaan als ods-bestand » Voorbereidend werk doen mbv. macro's (ihb.: Tabbladen samenvoegen) » Wegschrijven als tsv-bestand » Laden met een eigen LOAD INTO-routine in MySQL
SQL - LOAD DATA
LOAD DATA is het standaardcommando om te importeren. Helaas kun je het niet toepassen in sprocs; alleen in losse SQL-scripts.
Zie LOAD DATA (MySQL) voor details.
SQL - LOAD_FILE
De beperkingen omtrent LOAD DATA
schijnen niet te gelden voor LOAD_FILE
. Hierbij wordt de data in één groot object ingeladen, dus wellicht geschikt om á là PMA dynamisch de bijbehorende tabel te genereren. LOAD_FILE lijkt echter z'n eigen beperkingen te hebben, en tot op heden heb ik het nog niet aan de praat gekregen.
Zie ook
- LibreOffice Basic - Rekenbladen samenvoegen
- LOAD DATA (MySQL) - Standaardmethode voor import in MySQL.
- Opmaak tekstbestanden
Bronnen
- http://www.mysqltutorial.org/import-csv-file-mysql-table/
- https://dev.mysql.com/doc/mysql-for-excel/en/mysql-for-excel-export.html
- http://stackoverflow.com/questions/1310166/how-to-import-an-excel-file-in-to-a-mysql-database
- http://forums.mysql.com/read.php?32,216343,216344#msg-216344 - MySQL Forums :: Data Warehouse :: import excel file into mysql table
- http://excel2mysql.net/
- https://www.quora.com/How-can-I-import-Excel-data-into-MySQL - Behandelt verschillende methodes
Merge Calc sheets
- https://ask.libreoffice.org/en/question/38010/merge-multiple-spreadsheets-files-into-one/
- http://superuser.com/questions/304899/how-can-i-merge-hundreds-of-excel-spreadsheet-files - Voorbeeld VBA-code in Excel
- https://ask.libreoffice.org/en/question/31401/calc-how-to-combine-multiple-tables-in-different-sheets-into-a-new-one/ → Aardige oplossing
- https://ask.libreoffice.org/en/question/16604/how-do-i-access-the-current-sheet-name-in-formula-to-use-in-indirect/ - Read name current sheet
Automate in Calc
Import MySQL
Beperkingen stored procedures