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.db
Code 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:
.help
Code 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>.exit
Code 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>.fullschema
Code 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_TrackMediaTypeId
Code 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_AlbumArtistId
Code 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_InvoiceCustomerId
Code 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 Spades
Code 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.