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

Comandos SQLite

Resumen :en este tutorial, le presentaremos los comandos SQLite más utilizados del programa de línea de comandos sqlite3.

El proyecto SQLite ofrece una herramienta de línea de comandos simple llamada sqlite3 (o sqlite3.exe en Windows) que le permite interactuar con las bases de datos SQLite usando instrucciones y comandos SQL.

Conectarse a una base de datos SQLite

Para iniciar el sqlite3, escriba el sqlite3 de la siguiente manera:

>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)

De manera predeterminada, una sesión de SQLite usa la base de datos en memoria, por lo tanto, todos los cambios desaparecerán cuando finalice la sesión.

Para abrir un archivo de base de datos, utilice .open FILENAME dominio. La siguiente declaración abre el chinook.db base de datos:

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

Si desea abrir un archivo de base de datos específico cuando se conecta a la base de datos SQlite, use el siguiente comando:

>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)

Si inicia una sesión con un nombre de base de datos que no existe, la herramienta sqlite3 creará el archivo de base de datos.

Por ejemplo, el siguiente comando crea una base de datos llamada sales en el C:\sqlite\db\ directorio:

>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)

Mostrar todos los comandos disponibles y sus propósitos

Para mostrar todos los comandos disponibles y su propósito, utilice .help comando de la siguiente manera:

.helpCode language: Shell Session (shell)

Mostrar bases de datos en la conexión de base de datos actual

Para mostrar todas las bases de datos en la conexión actual, utilice .databases dominio. Las .databases El comando muestra al menos una base de datos con el nombre:main .

Por ejemplo, el siguiente comando muestra todas las bases de datos de la conexión actual:

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

Para agregar una base de datos adicional en la conexión actual, utilice la instrucción ATTACH DATABASE . La siguiente declaración agrega el chinook base de datos a la conexión actual.

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

Ahora, si ejecuta .database comando de nuevo, el sqlite3 devuelve dos bases de datos:main y 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)

Salir de la herramienta sqlite3

Para salir del programa sqlite3, usa .exit comando.

sqlite>.exitCode language: Shell Session (shell)

Mostrar tablas en una base de datos

Para mostrar todas las tablas en la base de datos actual, utilice .tables dominio. Los siguientes comandos abren una nueva conexión de base de datos al chinook base de datos y mostrar las tablas en la base de datos.

>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)

Si desea encontrar tablas basadas en un patrón específico, use .table comando de patrón El sqlite3 usa el LIKE operador para coincidencia de patrones.

Por ejemplo, la siguiente declaración devuelve la tabla que termina con la cadena es .

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

Mostrar la estructura de una tabla

Para mostrar la estructura de una tabla, utiliza .schema TABLE dominio. La TABLE argumento podría ser un patrón. Si lo omite, el .schema El comando mostrará las estructuras de todas las tablas.

El siguiente comando muestra la estructura de los albums mesa.

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)

Para mostrar el esquema y el contenido del sqlite_stat tablas, usa el .fullschema comando.

sqlite>.fullschemaCode language: CSS (css)

Mostrar índices

Para mostrar todos los índices de la base de datos actual, utilice .indexes comando de la siguiente manera:

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)

Para mostrar los índices de una tabla específica, utiliza la .indexes TABLE dominio. Por ejemplo, para mostrar índices de los albums tabla, utiliza el siguiente comando:

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

Mostrar índices de las tablas cuyos nombres terminan en es , utiliza un patrón del operador LIKE.

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

Guardar el resultado de una consulta en un archivo

Para guardar el resultado de una consulta en un archivo, utilice .output FILENAME dominio. Una vez que emita el .output comando, todos los resultados de las consultas posteriores se guardarán en el archivo que especificó en el FILENAME argumento. Si desea guardar el resultado de la siguiente consulta única solo en el archivo, emita .once FILENAME comando.

Para volver a mostrar el resultado de la consulta en la salida estándar, ejecute .output comando sin argumentos.

Los siguientes comandos seleccionan el title de los albums y escribe el resultado en albums.txt archivo.

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

Ejecutar instrucciones SQL desde un archivo

Supongamos que tenemos un archivo llamado commands.txt en el c:\sqlite\ carpeta con el siguiente contenido:

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

Para ejecutar las instrucciones SQL en commands.txt archivo, usa el .read FILENAME comando de la siguiente manera:

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)

En este tutorial, ha aprendido muchos comandos útiles en la herramienta sqlite3 para realizar varias tareas relacionadas con la base de datos SQLite.