sql >> Database teknologi >  >> RDS >> SQLite

SQLite - Importer data fra en CSV-fil

Du kan importere data fra en CSV-fil til en SQLite-database.

For at importere data til SQLite skal du bruge .import kommando. Denne kommando accepterer et filnavn og et tabelnavn.

Filnavnet er den fil, som dataene læses fra, tabelnavnet er den tabel, som dataene vil blive importeret til. Hvis tabellen ikke eksisterer, oprettes den automatisk, baseret på dataene i CSV-filen.

CSV til ny tabel

Dette eksempel importerer indholdet af en CSV-fil til en tabel, der ikke eksisterer i øjeblikket. Derfor vil der blive oprettet en ny tabel baseret på dataene i CSV-filen.

Vi bruger den samme CSV-fil, som vi tidligere eksporterede.

.mode csv
.import /Users/quackit/sqlite/dumps/catalog.csv Catalog

Sørg for at bruge .mode csv før .import da dette forhindrer kommandolinjeværktøjet i at forsøge at fortolke inputfilteksten som et andet format.

Efter vi har kørt det, kan vi køre en .tables kommando for at gennemgå vores tabeller:

sqlite> .tables
Albums   Albums2  Artists  Catalog

Den nye tabel ( Katalog ) er blevet oprettet. Lad os lave en SELECT på den for at kontrollere indholdet:

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

Du vil måske også ændre tilstanden tilbage til column (eller hvilken anden tilstand du brugte), som jeg gjorde her.

Og lad os også tjekke skemaet:

sqlite> .schema Catalog
CREATE TABLE Catalog(
  "AlbumId" TEXT,
  "AlbumName" TEXT,
  "ArtistName" TEXT
);

Eksisterende tabel

Du kan også importere CSV-filen til en eksisterende tabel. Bare opret tabellen med de relevante definitioner, og kør derefter importen.

Sørg dog for at fjerne eventuelle overskrifter fra CSV-filen først. Når du importerer til en eksisterende tabel, hver linje i CSV-filen læses ind som en række i tabellen. Så hvis du inkluderer overskriftsrækken, bliver den den første linje med data i din tabel.

Vi vil nu oprette en ny tabel kaldet Genrer og udfyld den fra en CSV-fil.

Her er indholdet af CSV-filen:

1,Rock
2,Country
3,Pop
4,Comedy
5,Jazz
6,Blues
7,Techno

Opret den nye tabel:

CREATE TABLE Genres(
  GenreId    INTEGER PRIMARY KEY, 
  Genre      TEXT NOT NULL
);

Tjek, at den er der:

sqlite> .tables
Albums   Albums2  Artists  Catalog  Genres 

Importer nu CSV-filen:

.mode csv
.import /Users/quackit/sqlite/dumps/genres.csv Genres

Bekræft nu, at dataene er kommet ind (og skift tilbage til column tilstand):

sqlite> .mode column
sqlite> SELECT * FROM Genres;
GenreId   Genre               
--------  --------------------
1         Rock                
2         Country             
3         Pop                 
4         Comedy              
5         Jazz                
6         Blues               
7         Techno             

  1. Applikationen går ned ved installation med fejl sqlite3_exec - Kunne ikke indstille synkron tilstand =1(Normal)

  2. Hvad pokker er en DTU?

  3. Operator findes ikke:heltal =? når du bruger Postgres

  4. Returner flere felter som en post i PostgreSQL med PL/pgSQL