понедельник, 21 марта 2016 г.

sqlite. Экспорт и импорт данных на примерах

В данной заметке я хочу привести примеры экспорта и импорта данных при работе с sqlite. Будем использовать утилиту sqlite3.

Пример экспорта таблиц базы в файлы формата csv.
[pa23@pa23comp 1]$ sqlite3 my_database.db
SQLite version 3.11.1 2016-03-03 16:17:53
Enter ".help" for usage hints.
sqlite> .tables
table1  table2
sqlite> .header on
sqlite> .mode csv
sqlite> .once table1.csv
sqlite> select * from table1;
sqlite> .once table2.csv
sqlite> select * from table2;
sqlite> .exit
[pa23@pa23comp 1]$ ls
my_database.db  table1.csv  table2.csv
[pa23@pa23comp 1]$ 
Пример импорта данных из файлов csv в таблицы базы.
[pa23@pa23comp 1]$ ls
my_database.db  table1.csv  table2.csv
[pa23@pa23comp 1]$ sqlite3 my_database.db
SQLite version 3.11.1 2016-03-03 16:17:53
Enter ".help" for usage hints.
sqlite> .tables
table1  table2
sqlite> .mode csv
sqlite> .import table1.csv table1
sqlite> .import table2.csv table2
sqlite> .exit
[pa23@pa23comp 1]$ 
Пример сохранения схемы базы данных в файл sql.
[pa23@pa23comp 1]$ ls
my_database.db
[pa23@pa23comp 1]$ sqlite3 my_database.db .schema > my_database_schema.sql
[pa23@pa23comp 1]$ ls
my_database.db  my_database_schema.sql
[pa23@pa23comp 1]$ cat my_database_schema.sql 
CREATE TABLE table1 (id INTEGER PRIMARY KEY, name TEXT NOT NULL UNIQUE);
CREATE TABLE table2 (id INTEGER PRIMARY KEY, name TEXT NOT NULL UNIQUE);
[pa23@pa23comp 1]$ 
Пример полного бэкапа базы данных в файл sql (схема и данные).
[pa23@pa23comp 1]$ ls
my_database.db  my_database_schema.sql
[pa23@pa23comp 1]$ sqlite3 my_database.db .dump > my_database_dump.sql
[pa23@pa23comp 1]$ ls
my_database.db  my_database_dump.sql  my_database_schema.sql
[pa23@pa23comp 1]$ cat my_database_dump.sql 
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE table1 (id INTEGER PRIMARY KEY, name TEXT NOT NULL UNIQUE);
INSERT INTO "table1" VALUES(1,'Yaroslavl');
INSERT INTO "table1" VALUES(2,'Vologda');
INSERT INTO "table1" VALUES(3,'Kostroma');
INSERT INTO "table1" VALUES(4,'Ivanovo');
CREATE TABLE table2 (id INTEGER PRIMARY KEY, name TEXT NOT NULL UNIQUE);
INSERT INTO "table2" VALUES(1,'Volga');
INSERT INTO "table2" VALUES(2,'Toshnya');
INSERT INTO "table2" VALUES(3,'Kostroma');
INSERT INTO "table2" VALUES(4,'Uvod');
COMMIT;
[pa23@pa23comp 1]$ 
Пример восстановления базы данных из скрипта sql.
[pa23@pa23comp 1]$ ls
my_database.db  my_database_dump.sql  my_database_schema.sql
[pa23@pa23comp 1]$ sqlite3 my_new_database.db
SQLite version 3.11.1 2016-03-03 16:17:53
Enter ".help" for usage hints.
sqlite> .read my_database_schema.sql 
sqlite> .exit
[pa23@pa23comp 1]$ 

3 комментария: