sql >> Base de Datos >  >> RDS >> SQLite

SQLite - Importar datos desde un archivo CSV

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:

columna
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