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

SQLite kommandoer

Oversigt :i denne øvelse vil vi introducere dig til de mest almindeligt anvendte SQLite-kommandoer i kommandolinjeprogrammet sqlite3.

SQLite-projektet leverer et simpelt kommandolinjeværktøj ved navn sqlite3 (eller sqlite3.exe på Windows), der giver dig mulighed for at interagere med SQLite-databaserne ved hjælp af SQL-sætninger og kommandoer.

Opret forbindelse til en SQLite-database

For at starte sqlite3 skal du skrive sqlite3 som følger:

>sqlite3
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>Code language: Shell Session (shell)

Som standard bruger en SQLite-session databasen i hukommelsen, derfor vil alle ændringer være væk, når sessionen slutter.

For at åbne en databasefil skal du bruge .open FILENAME kommando. Følgende sætning åbner chinook.db database:

sqlite> .open c:\sqlite\db\chinook.dbCode language: Shell Session (shell)

Hvis du vil åbne en bestemt databasefil, når du opretter forbindelse til SQLite-databasen, skal du bruge følgende kommando:

>sqlite3 c:\sqlite\db\chinook.db
SQLite version 3.13.0 2016-05-18 10:57:30
Enter ".help" for usage hints.
sqlite>Code language: Shell Session (shell)

Hvis du starter en session med et databasenavn, der ikke findes, vil sqlite3-værktøjet oprette databasefilen.

For eksempel opretter følgende kommando en database med navnet sales i C:\sqlite\db\ mappe:

>sqlite3 c:\sqlite\db\sales.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite>Code language: Shell Session (shell)

Vis alle tilgængelige kommandoer og deres formål

For at vise alle tilgængelige kommandoer og deres formål, bruger du .help kommando som følger:

.helpCode language: Shell Session (shell)

Vis databaser i den aktuelle databaseforbindelse

For at vise alle databaser i den aktuelle forbindelse, bruger du .databases kommando. .databases kommandoen viser mindst én database med navnet:main .

For eksempel viser følgende kommando alle databaserne for den aktuelle forbindelse:

sqlite> .database
seq  name             file
---  ---------------  --------------------------
0    main             c:\sqlite\db\sales.db
sqlite>Code language: Shell Session (shell)

For at tilføje en ekstra database i den aktuelle forbindelse, bruger du sætningen ATTACH DATABASE . Følgende sætning tilføjer chinook database til den aktuelle forbindelse.

sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;Code language: Shell Session (shell)

Hvis du nu kører .database kommandoen igen, returnerer sqlite3 to databaser:main og chinook .

sqlite> .databases
seq  name             file
---  ---------------  ---------------------
0    main             c:\sqlite\db\sales.db
2    chinook          c:\sqlite\db\chinook.db
Code language: Shell Session (shell)

Afslut sqlite3-værktøjet

For at afslutte sqlite3-programmet skal du bruge .exit kommando.

sqlite>.exitCode language: Shell Session (shell)

Vis tabeller i en database

For at vise alle tabellerne i den aktuelle database, bruger du .tables kommando. Følgende kommandoer åbner en ny databaseforbindelse til chinook database og få vist tabellerne i databasen.

>sqlite3 c:\sqlite\db\chinook.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite> .tables
albums          employees       invoices        playlists
artists         genres          media_types     tracks
customers       invoice_items   playlist_track
sqlite>Code language: Shell Session (shell)

Hvis du vil finde tabeller baseret på et bestemt mønster, bruger du .table mønster kommando. sqlite3 bruger LIKE operator til mønstertilpasning.

For eksempel returnerer følgende sætning tabellen, der slutter med strengen es .

sqlite> .table '%es'
employees    genres       invoices     media_types
sqlite>Code language: Shell Session (shell)

Vis strukturen af ​​en tabel

For at vise strukturen af ​​en tabel, bruger du .schema TABLE kommando. TABLE argument kunne være et mønster. Hvis du udelader det, vil .schema kommandoen viser strukturerne for alle tabellerne.

Den følgende kommando viser strukturen af ​​albums tabel.

sqlite> .schema albums
CREATE TABLE "albums"
(
    [AlbumId] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    [Title] NVARCHAR(160)  NOT NULL,
    [ArtistId] INTEGER  NOT NULL,
    FOREIGN KEY ([ArtistId]) REFERENCES "artists" ([ArtistId])
                ON DELETE NO ACTION ON UPDATE NO ACTION
);
CREATE INDEX [IFK_AlbumArtistId] ON "albums" ([ArtistId]);
sqlite>Code language: Shell Session (shell)

For at vise skemaet og indholdet af sqlite_stat tabeller, bruger du .fullschema kommando.

sqlite>.fullschemaCode language: CSS (css)

Vis indekser

For at vise alle indekser af den aktuelle database, bruger du .indexes kommando som følger:

sqlite> .indexes
IFK_AlbumArtistId
IFK_CustomerSupportRepId
IFK_EmployeeReportsTo
IFK_InvoiceCustomerId
IFK_InvoiceLineInvoiceId
IFK_InvoiceLineTrackId
IFK_PlaylistTrackTrackId
IFK_TrackAlbumId
IFK_TrackGenreId
IFK_TrackMediaTypeIdCode language: Shell Session (shell)

For at vise indekserne for en specifik tabel, bruger du .indexes TABLE kommando. For eksempel for at vise indekser af albums tabel, bruger du følgende kommando:

sqlite> .indexes albums
IFK_AlbumArtistIdCode language: CSS (css)

For at vise indekser af de tabeller, hvis navne slutter med es , bruger du et mønster af LIKE-operatoren.

sqlite> .indexes %es
IFK_EmployeeReportsTo
IFK_InvoiceCustomerIdCode language: Shell Session (shell)

Gem resultatet af en forespørgsel i en fil

For at gemme resultatet af en forespørgsel i en fil, skal du bruge .output FILENAME kommando. Når du har udstedt .output kommando, vil alle resultaterne af de efterfølgende forespørgsler blive gemt i den fil, du har angivet i FILENAME argument. Hvis du kun vil gemme resultatet af den næste enkelte forespørgsel i filen, udsteder du .once FILENAME kommando.

For at vise resultatet af forespørgslen til standardoutputtet igen, udsteder du .output kommando uden argumenter.

Følgende kommandoer vælger title fra albums tabel og skriv resultatet til albums.txt fil.

sqlite> .output albums.txt
sqlite> SELECT title FROM albums;Code language: Shell Session (shell)

Kør SQL-sætninger fra en fil

Antag, at vi har en fil med navnet commands.txt i c:\sqlite\ mappe med følgende indhold:

SELECT albumid, title
FROM albums
ORDER BY title
LIMIT 10;Code language: Shell Session (shell)

For at udføre SQL-sætningerne i commands.txt fil, bruger du .read FILENAME kommando som følger:

sqlite> .mode column
sqlite> .header on
sqlite> .read c:/sqlite/commands.txt
AlbumId     Title
----------  ----------------------
156         ...And Justice For All
257         20th Century Masters -
296         A Copland Celebration,
94          A Matter of Life and D
95          A Real Dead One
96          A Real Live One
285         A Soprano Inspired
139         A TempestadeTempestade
203         A-Sides
160         Ace Of SpadesCode language: Shell Session (shell)

I denne vejledning har du lært mange nyttige kommandoer i sqlite3-værktøjet til at udføre forskellige opgaver, der omhandler SQLite-databasen.


  1. Forbedring af medianløsningen for rækkenummerering

  2. Hent pl/sql-array-returværdier i java

  3. Finjustering af Oracle DG40DBC

  4. Løsning af en kommunikationsforbindelsesfejl med JDBC og MySQL