Puede importar datos de un archivo CSV a una base de datos SQLite.
Para importar datos a SQLite, use .import
dominio. Este comando acepta un nombre de archivo y un nombre de tabla.
El nombre del archivo es el archivo del que se leen los datos, el nombre de la tabla es la tabla a la que se importarán los datos. Si la tabla no existe, se creará automáticamente, según los datos del archivo CSV.
CSV a nueva tabla
Este ejemplo importa el contenido de un archivo CSV a una tabla que no existe actualmente. Por lo tanto, se creará una nueva tabla basada en los datos del archivo CSV.
Usaremos el mismo archivo CSV que exportamos anteriormente.
.mode csv .import /Users/quackit/sqlite/dumps/catalog.csv Catalog
Asegúrese de usar .mode csv
antes del .import
ya que esto evita que la utilidad de línea de comandos intente interpretar el texto del archivo de entrada como algún otro formato.
Después de ejecutar eso, podemos ejecutar .tables
comando para revisar nuestras tablas:
sqlite> .tables Albums Albums2 Artists Catalog
La nueva tabla (
Catálogo
) Ha sido creado. Hagamos un SELECT
en él para comprobar el contenido:
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
También es posible que desee volver a cambiar el modo a column
(o cualquier otro modo que estuviera usando) como lo hice aquí.
Y también revisemos el esquema:
sqlite> .schema Catalog CREATE TABLE Catalog( "AlbumId" TEXT, "AlbumName" TEXT, "ArtistName" TEXT );
Tabla existente
También puede importar el archivo CSV a una tabla existente. Simplemente cree la tabla con las definiciones apropiadas y luego ejecute la importación.
Sin embargo, asegúrese de eliminar primero los encabezados del archivo CSV. Cuando importa a una tabla existente, cada línea en el archivo CSV se lee como una fila en la tabla. Entonces, si incluye la fila del encabezado, se convertirá en la primera línea de datos en su tabla.
Ahora crearemos una nueva tabla llamada Genres y rellénelo desde un archivo CSV.
Estos son los contenidos del archivo CSV:
1,Rock 2,Country 3,Pop 4,Comedy 5,Jazz 6,Blues 7,Techno
Crea la nueva tabla:
CREATE TABLE Genres( GenreId INTEGER PRIMARY KEY, Genre TEXT NOT NULL );
Comprueba que está ahí:
sqlite> .tables Albums Albums2 Artists Catalog Genres
Ahora importe el archivo CSV:
.mode csv .import /Users/quackit/sqlite/dumps/genres.csv Genres
Ahora verifique que ingresaron los datos (y vuelva a cambiar a column
modo):
sqlite> .mode column sqlite> SELECT * FROM Genres; GenreId Genre -------- -------------------- 1 Rock 2 Country 3 Pop 4 Comedy 5 Jazz 6 Blues 7 Techno