Можете да импортирате данни от CSV файл в база данни на SQLite.
За да импортирате данни в SQLite, използвайте .import
команда. Тази команда приема име на файл и име на таблица.
Името на файла е файлът, от който се четат данните, името на таблицата е таблицата, в която ще бъдат импортирани данните. Ако таблицата не съществува, тя ще бъде създадена автоматично въз основа на данните в CSV файла.
CSV към нова таблица
Този пример импортира съдържанието на CSV файл в таблица, която в момента не съществува. Следователно ще бъде създадена нова таблица въз основа на данните в CSV файла.
Ще използваме същия CSV файл, който експортирахме по-рано.
.mode csv .import /Users/quackit/sqlite/dumps/catalog.csv Catalog
Не забравяйте да използвате .mode csv
преди .import
тъй като това не позволява на помощната програма от командния ред да се опитва да интерпретира текста на входния файл като някакъв друг формат.
След като го изпълним, можем да изпълним .tables
команда за преглед на нашите таблици:
sqlite> .tables Albums Albums2 Artists Catalog
Новата таблица (
Каталог
) е създадена. Нека направим SELECT
върху него, за да проверите съдържанието:
sqlite> .mode column sqlite> SELECT * FROM Catalog; AlbumId AlbumName ArtistName -------- -------------------- ------------ 1 Killers Iron Maiden 2 Powerslave Iron Maiden 12 Somewhere in Time Iron Maiden 3 Surfing with the Ali Joe Satriani 10 Flying in a Blue Dre Joe Satriani 11 Black Swans and Worm Joe Satriani 6 Out of the Loop Mr Percival 7 Suck on This Primus 8 Pork Soda Primus 9 Sailing the Seas of Primus
Може също да искате да промените режима обратно на column
(или който и друг режим сте използвали), както направих тук.
И нека проверим и схемата:
sqlite> .schema Catalog CREATE TABLE Catalog( "AlbumId" TEXT, "AlbumName" TEXT, "ArtistName" TEXT );
Съществуваща таблица
Можете също да импортирате CSV файла в съществуваща таблица. Просто създайте таблицата с подходящите дефиниции, след което стартирайте импортирането.
Не забравяйте обаче първо да премахнете всички заглавки от CSV файла. Когато импортирате в съществуваща таблица, всяка ред в CSV файла се чете като ред в таблицата. Така че, ако включите заглавния ред, той ще стане първият ред с данни във вашата таблица.
Сега ще създадем нова таблица, наречена Жанрове и го попълнете от CSV файл.
Ето съдържанието на CSV файла:
1,Rock 2,Country 3,Pop 4,Comedy 5,Jazz 6,Blues 7,Techno
Създайте новата таблица:
CREATE TABLE Genres( GenreId INTEGER PRIMARY KEY, Genre TEXT NOT NULL );
Проверете дали е там:
sqlite> .tables Albums Albums2 Artists Catalog Genres
Сега импортирайте CSV файла:
.mode csv .import /Users/quackit/sqlite/dumps/genres.csv Genres
Сега проверете дали данните са влезли (и променете обратно към column
режим):
sqlite> .mode column sqlite> SELECT * FROM Genres; GenreId Genre -------- -------------------- 1 Rock 2 Country 3 Pop 4 Comedy 5 Jazz 6 Blues 7 Techno