550 瀏覽數

MariaDB 大量資料轉檔

主要想把 Microsoft Excel 轉成 MariaDB 的資料庫,除了可以透過 Mysql 指令 (Excel 檔案需事前先轉成 CSV 格式) 外還可以透過 PHPMyAdmin 來快速轉檔.

mysql 指令

透過 mysql 指令,需要先建立好資料庫 Database 與資料表格 table ,我的資料表為 Title , Detail ,Solution 各 20 個字元.

root@ubuntu:~# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database Linux;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Linux              |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> use Linux;
Database changed
MariaDB [Linux]> create table Ubuntu (Title char(20),Detail char(20),Solution char(20));
Query OK, 0 rows affected (0.01 sec)

MariaDB [Linux]> show tables;
+-----------------+
| Tables_in_Linux |
+-----------------+
| Ubuntu          |
+-----------------+
1 row in set (0.00 sec)

接下來就是將 CSV 檔案的資料導入到資料表格內.

MariaDB [Linux]> LOAD DATA INFILE '/var/lib/mysql/Linux/Ubuntu.csv' INTO TABLE Ubuntu FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;
Query OK, 5 rows affected, 10 warnings (0.02 sec)    
Records: 5  Deleted: 0  Skipped: 0  Warnings: 10
  • LOAD DATA INFILE ‘/var/lib/mysql/Linux/Ubuntu.csv’
    CSV 檔案位址,如果出現了 Can’t get stat of ‘/root/Ubuntu.csv’ (Errcode:13 “Permission denied”) 代表 mysql 使用者無法讀取該檔案,這時要注意存放檔案的目錄需要可以進入 (a+x) 的權限,檔案本身至少需要可供讀取 (a+r) 的權限.
  • INTO TABLE Ubuntu
    讀取的檔案要寫入 Ubuntu 資料表格內.
  • FIELDS TERMINATED BY ‘,’
    資料是以 , (逗號)為區隔.
  • ENCLOSED BY ‘”‘
    資料多於一行時會以 ” (引號) 表示為同一欄位.
  • LINES TERMINATED BY ‘\n’
    同一欄位的換行會以 \n (newLine) 做區隔.
  • IGNORE 1 ROWS;
    因 CVS 的第一行是資料表的欄位名稱,前面已經定義好,所以不需要這內容.

資料表匯入後就可以使用 select 來查詢了.

MariaDB [Linux]> select * from Ubuntu;
+---------+-------------+----------------+
| Title   | Detail      | Solution       |
+---------+-------------+----------------+
| A       | AAA Test    | AAA Solution   |
| B       | BBB Test    | BBB Solution   |
| C       | CCC Test    | CCC Solution   |
| D       | DDD Test    | DDD Solution   |
| E       | EEE Test    | EEE Solution   |
+---------+-------------+----------------+
5 rows in set (0.01 sec)

PHPMyAdmin

關於 MySQL (MariaDB) 資料庫管理系統 PHPMyAdmin 的安裝請參考 http://benjr.tw/323

在 主頁(Home)/資料庫(Databases)/新建資料庫(Create Database) 新建一個資料庫 (database),在新建的資料庫 (Linux) 導入 (import) 新資料表 (Table)

PHPMyAdmin 支援大量的轉檔格式有

  1. CSV – 用逗號 (,) 將值隔開的檔案格式 (在 Microsoft Excel 或是 Linux 下的 LibreOffice 都可以直接將檔按轉換成 csv)
    依據需要在 格式選項勾選 “使用檔案取代資料表資料” 選擇 欄位分隔符號,內容分隔符號, 內容跳脫符號 ,如果在資料的第一行為資料表名稱時,需要勾選 檔案第一行包含資料表的欄位名稱 (若未選此項,首行將被認為是資料),按下執行即可完成匯入.
  2. MediaWiki 表 – WiKi 的資料庫格式
  3. OpenDocument Spreadsheet – OpenDocument 的格式( Linux 下的 LibreOffice 可以儲存的格式 .ods 之一).
    需要勾選 檔案第一行包含資料表的欄位名稱 (若未選此項,首行將被認為是資料),按下執行即可完成匯入.
  4. ESRI Shape File – 美國環境系統研究所公司(ESRI)所開發的一種屬於空間資料開放格式.
  5. SQL – SQL 的資料庫
  6. XML – XML 檔案格式

新增的資料表可以在 資料表/操作 修改資料表名稱.

發表迴響