Как импортировать файл .sql или .csv в SQLite?

Мне нужно сбросить файл .sql или .csv в SQLite (я использую API SQLite3). Я только нашел документацию для импорта / загрузки таблиц, а не целых баз данных. Прямо сейчас, когда я печатаю:

sqlite3prompt> .import FILENAME TABLE 

Я получаю синтаксическую ошибку, так как она ожидает таблицу, а не всю БД.

Для импорта из файла SQL используйте следующее:

 sqlite> .read  

Для импорта из файла CSV вам необходимо указать тип файла и таблицу назначения:

 sqlite> .mode csv  sqlite> .import  

Попробуйте сделать это из команды:

 cat dump.sql | sqlite3 database.db 

Очевидно, что это будет работать только с операторами SQL в dump.sql. Я не уверен, как импортировать CSV.

Чтобы перейти от SCRATCH с SQLite DB к импортированию CSV в таблицу:

  • Получите SQLite с веб-сайта.
  • В командной строке запустите sqlite3 * Он будет создан как пустой файл.
  • Создайте новую таблицу в новой базе данных. Таблица должна соответствовать вашим полям CSV для импорта.
  • Вы делаете это с помощью команды SQL: CREATE TABLE ( , );

После создания таблицы и сопоставления столбцов с вашими данными из файла вы можете сделать это …

 .mode csv  .import   

Команда sqlite3 .import не будет работать для обычных CSV-данных, поскольку она обрабатывает любую запятую как разделитель даже в цитируемой строке.

Сюда входит попытка повторного импорта файла csv, созданного оболочкой:

 Create table T (F1 integer, F2 varchar); Insert into T values (1, 'Hey!'); Insert into T values (2, 'Hey, You!'); .mode csv .output test.csv select * from T; Contents of test.csv: 1,Hey! 2,"Hey, You!" delete from T; .import test.csv T Error: test.csv line 2: expected 2 columns of data but found 3 

Кажется, мы должны преобразовать csv в список операторов Insert, или, возможно, будет работать другой разделитель.

В SuperUser я увидел предложение использовать LogParser для работы с файлами csv, я собираюсь изучить это.

Если вы с удовольствием используете скрипт (python), тогда существует скрипт python, который автоматизирует его по адресу: https://github.com/rgrp/csv2sqlite

Это позволит автоматически создать таблицу для вас, а также сделать некоторые основные угадывания типов и кавычки данных для вас (так, например, выработает что-то число и задает тип столбца «реальный»).

Помните, что разделителем по умолчанию для SQLite является канал «|»

 sqlite> .separator ";" sqlite> .import path/filename.txt tablename 

http://sqlite.awardspace.info/syntax/sqlitepg01.htm#sqlite010

SQLite чрезвычайно гибкий, так как он также позволяет SQLite определенные команды точек в синтаксисе SQL (хотя они интерпретируются CLI.) Это означает, что вы можете делать такие вещи.

Создайте таблицу sms следующим образом:

 # sqlite3 mycool.db '.schema sms' CREATE TABLE sms (_id integer primary key autoincrement, Address VARCHAR, Display VARCHAR, Class VARCHAR, ServiceCtr VARCHAR, Message VARCHAR, Timestamp TIMESTAMP NOT NULL DEFAULT current_timestamp); 

Затем два файла:

 # echo "1,ADREZZ,DizzPlay,CLAZZ,SMSC,DaTestMessage,2015-01-24 21:00:00">test.csv # cat test.sql .mode csv .header on .import test.csv sms 

Чтобы проверить импорт файла CSV с помощью файла SQL, запустите:

 # sqlite3 -csv -header mycool.db '.read test.sql' 

В заключение это означает, что вы можете использовать оператор .import в SQLite SQL, как и в любом другом RDB, например MySQL с LOAD DATA INFILE и т. Д. Однако это не рекомендуется.

Проверьте условия. https://gitorious.org/termsql https://gitorious.org/termsql/pages/Home

Он преобразует текст в SQL в командной строке. (CSV – только текст)

Пример:

 cat textfile | termsql -o sqlite.db 

По умолчанию разделитель является пробелом, поэтому для его работы с CSV, использующим commata, вы делаете это следующим образом:

 cat textfile | termsql -d ',' -o sqlite.db 

Вы также можете сделать это:

 termsql -i textfile -d ',' -o sqlite.db 

По умолчанию он будет генерировать имена столбцов «COL0», «COL1», если вы хотите, чтобы он использовал первую строку для имен колонок, которые вы делаете это:

 termsql -i textfile -d ',' -1 -o sqlite.db 

Если вы хотите установить пользовательские имена столбцов, вы выполните следующее:

 termsql -i textfile -d ',' -c 'id,name,age,color' -o sqlite.db 

если вы используете его в Windows, обязательно добавьте путь к db в «”, а также используйте двойную слэш \ в пути, чтобы убедиться, что Windows это понимает.

Вот как вы можете вставить в столбец идентификатора:

 CREATE TABLE my_table (id INTEGER PRIMARY KEY AUTOINCREMENT, name COLLATE NOCASE); CREATE TABLE temp_table (name COLLATE NOCASE); .import predefined/myfile.txt temp_table insert into my_table (name) select name from temp_table; 

myfile.txt – это файл в C: \ code \ db \ predefined \

data.db находится в C: \ code \ db \

myfile.txt содержит строки, разделенные символом новой строки.

Если вы хотите добавить больше столбцов, проще их разделить с использованием символа pipe, который является значением по умолчанию.

Импортируйте свои csv или sql в sqlite с помощью phpLiteAdmin , это отлично.

  • Как Java решает, когда импортировать?
  • Как я могу импортировать базу данных с MySQL из терминала?
  • импортировать файл dat в R
  • Как импортировать код Swift в Objective-C?
  • PHP импортирует Excel в базу данных (xls & xlsx)
  • неверная последовательность байтов для кодирования "UTF8"
  • Изменить имя импорта на Java или импортировать два classа с тем же именем
  • Импорт пакета. * Vs import package.SpecificType
  • Чтение нескольких (excel) файлов в R - Лучшая практика
  • @import vs link
  • Импорт com.google.android.gms невозможен.
  • Давайте будем гением компьютера.