Projekt: Hesla Jednoty bratrské/2011/w01-sql

Z Wikiverzity
Skočit na navigaci Skočit na vyhledávání

Projekt: Hesla Jednoty bratrské/2011/w01-sql[editovat]

2010-01-08[editovat]

Dostávám se k tomu se na to podívat.

Konverze do MySQL[editovat]

  • mdbtools:
    • mdb-export (1) - Export data in an MDB database table to CSV format.
    • mdb-schema (1) - Generate schema creation DDL
    • mdb-sql (1) - SQL interface to MDB Tools
    • mdb-tables (1) - Get listing of tables in an MDB database
    • mdb-ver (1) - Return the format of a given MDB database.
  • mdbtools-gmdb = GNOME mdb viewer
  • Gmdb2

Nejdřív získáme strukturu databáze:

mdb-schema Losungen_2011.mdb

a zjistíme, že se jedná jen o jednu tabulku Projekt: Hesla Jednoty bratrské/2011/TABLE Losungen.

2010-02-03[editovat]

  • Microsoft Access z Microsoft office Professional Edition 2003, verze neudána
  • otevře soubor, zdá se, OK
  • export nabízí:
    • Microsoft Office Access (*.mdb; *.adp; *.mda; *.mde; *.ade)
    • dBase 5 *.dbf
    • dBase III *.dbf
    • dBase IV *.dbf
    • Excel 3 *.xls
    • Excel 4 *.xls
    • Excel 5-7 *.xls
    • Excel 97-2003 *.xls
    • dokumentz HTML *.html
    • Lotus 1-3-3 WJ2 *.wj2
    • Lotus 1-3-3 WK1 *.wk1
    • Lotus 1-3-3 WK3 *.wk3
    • Paradox 3 *.db
    • Paradox 4 *.db
    • Paradox 5 *.db
    • Paradox 7-8 *.db
    • textové soubory *.txt, *.csv, *.tab, *.asc
    • Windows Sharepoint Services ()
    • Microsoft Active Server Pages (*.asp)
    • Microsoft IIS 1-2 *.htx, *.idc
    • Rich Text Format *.rtf
    • Sloučení v aplikaci Microsoft Word *.txt
    • XML *.xml
    • Databáze ODBC


  • exportoval jsem do:
    • Microsoft Office Access (*.mdb; *.adp; *.mda; *.mde; *.ade)
    • dBase III *.dbf Stejné pole lze definovat jen jednou.
    • Excel 3 *.xls OK
    • dokumentz HTML *.html
    • textové soubory *.csv oddělovač středník, text v uvozovkách
    • Rich Text Format *.rtf
    • XML *.xml: Data (XML), Schéma dat (XSD), Prezentace dat (XSL)

pokusy[editovat]

2010-02-06[editovat]

mdb-export -D %F Losungen_2011.mdb Losungen > Losungen_2011.csv

PHPMyAdmin:

  • open hes10-07
  • Zkopírovat databázi na hes11 Pouze strukturu, Porovnávání: utf8_czech_ci

Struktura: Projekt: Hesla Jednoty bratrské/2011/hes_struct.sql

Pozor na možné problémy s tím, že pole obsahuje konce řádků (0x0D 0x0A = \r\n)

  • Nefunguje:
    • Řádky ukončené auto

Import v PHPMyAdmin:

  • Přepsat data tabulky souborem
  • Ignorovat duplicitní řádky
  • Sloupce oddělené ,
  • Názvy sloupců uzavřené "
  • Názvy sloupců escapovány
  • Řádky ukončené \n
  • Názvy sloupců
Chybný počet položek v CSV datech na řádku 80.

Z toho není jasné, zda se počítají řádek vstupního souboru či řádky výsledné tabulky, tj. pořadí recordu.

Import dat:

mysqlimport -u**** -p**** -v -v --local --delete --fields-terminated-by=, --fields-enclosed-by=\" hes11 Losungen_import.csv 

Connecting to localhost
Selecting database hes11
Deleting the old data from table Losungen_import
Loading data from LOCAL file: hesla/2011/w01/mdbtools/Losungen_import.csv into Losungen_import
hes11.Losungen_import: Records: 365  Deleted: 0  Skipped: 0  Warnings: 288

Pořád nemůžu přijít na to, kde ale najít ty warningy.

http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html

mysqlimport zřejmě nebude ideální řešení, použiji mysql příkaz LOAD DATA LOCAL INFILE ve skriptu load_data_infile.sql:

TRUNCATE TABLE Losungen_import;
LOAD DATA LOCAL INFILE "Losungen_import.csv"
        INTO TABLE Losungen_import
        FIELDS
                TERMINATED BY ','
                ENCLOSED BY '"'
                ESCAPED BY ''
        LINES   TERMINATED BY '\n'
        IGNORE 1 LINES;
-- SHOW WARNINGS;

který spustím příkazem:

mysql -v -v -u**** -p**** --show-warnings hes11 < load_data_infile.sql

Vychytám optimální velikosti sloupců; warningy ukazují číslo řádku tabulky, odpovídající datum si spočtu pomocí (např):

mysql -unobody -e 'SELECT DATE_ADD("2011-01-01", INTERVAL 313 DAY);'

Před proházením sloupců tabulky explicitně zadám pořadí vstupních polí:

TRUNCATE TABLE Losungen_import;

LOAD DATA LOCAL INFILE "Losungen_import.csv"
        INTO TABLE Losungen_import
        FIELDS
                TERMINATED BY ','
                ENCLOSED BY '"'
                ESCAPED BY ''
        LINES   TERMINATED BY '\n'
        IGNORE 1 LINES
        (MonSpruch_Bibeltext, Gedenktage_Ek, Ft1_Bibeltext, Ft1_Angaben, Ft2_Bibeltext, Ft2_Angaben,
        Los_Nummer, Los_Bibeltext, Lt_Bibeltext, Dt_Text, Dt_Quelle, Gedenktage_Ebu,
        Datum, MonSpruch_Stelle, MonSpruch_Quelle, Ft1_Feiertag, Ft1_Stelle, Ft1_Quelle,
        Ft2_Feiertag, Ft2_Stelle, Ft2_Quelle, Los_Vortext, Los_Stelle, Los_Quelle,
        Lt_Vortext, Lt_Stelle, Lt_Quelle, Dt_Gesangbuch, Dt_Autor, Bibellese_1, Bibellese_2);

-- SHOW WARNINGS;

2010-02-06[editovat]

  • Konečný skript – viz [[/..]]