En este artículo, veremos cómo instalar SQLite (base de datos relacional) con sus operaciones básicas. ¿Qué pasa si le digo que es probable que SQLite se use más que todos los demás motores de base de datos combinados? Sí, has escuchado bien. Es la base de datos más implementada en el mundo con millones y miles de millones de copias.
La razón de esta popularidad es que Características únicas que son inusuales y que lo hacen diferente de muchos otros motores de bases de datos SQL como MySQL, PostgreSQL, Oracle, Microsoft SQL Server, etc. Comencemos con esto. Primero, lo instalaremos en Linux y luego cubriremos las operaciones básicas de la base de datos.
Instalación de Sqlite
Para instalar en su máquina basada en Debian (Ubuntu, Debian, etc.), ejecute los siguientes comandos.
$ sudo apt update
$ sudo apt install sqlite3
Para instalar en su basado en RPM (RHEL, CentOS, Fedora etc.) la máquina ejecuta los siguientes comandos.
$ sudo yum update
$ sudo yum install sqlite
También puede instalar SQlite usando el administrador de paquetes DNF:
sudo dnf update sudo dnf install sqlite
To access SQLite databases from various programming languages (C, Tcl, Java), the language bindings need to be installedsudo dnf install sqlite-devel sqlite-tcl sqlite-jdbc
Ahora abra una terminal y ejecute “sqlite3”, verá las siguientes líneas con un mensaje.
$ sqlite3
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
La primera línea muestra la versión y la fecha y hora de lanzamiento de sqlite3.
La segunda línea le dice que ingrese “.help” para obtener instrucciones.
.ayuda comando lista todos los meta comandos y sus descripciones. Estos metacomandos también se denominan comandos de “punto” porque están precedidos por un punto.
Ponga “.help” en el mensaje
sqlite> .help
.backup ?DB? FILE Backup DB (default "main") to FILE
.bail ON|OFF Stop after hitting an error. Default OFF
.databases List names and files of attached databases
.dump ?TABLE? ... Dump the database in an SQL text format
If TABLE specified, only dump tables matching
LIKE pattern TABLE.
.echo ON|OFF Turn command echo on or off
.exit Exit this program
.explain ?ON|OFF? Turn output mode suitable for EXPLAIN on or off.
With no args, it turns EXPLAIN on.
.header(s) ON|OFF Turn display of headers on or off
.help Show this message
.import FILE TABLE Import data from FILE into TABLE
.indices ?TABLE? Show names of all indices
If TABLE specified, only show indices for tables
matching LIKE pattern TABLE.
.load FILE ?ENTRY? Load an extension library
.log FILE|off Turn logging on or off. FILE can be stderr/stdout
.mode MODE ?TABLE? Set output mode where MODE is one of:
csv Comma-separated values
column Left-aligned columns. (See .width)
html HTML table code
insert SQL insert statements for TABLE
line One value per line
list Values delimited by .separator string
tabs Tab-separated values
tcl TCL list elements
.nullvalue STRING Use STRING in place of NULL values
.open ?FILENAME? Close existing database and reopen FILENAME
.output FILENAME Send output to FILENAME
.output stdout Send output to the screen
.print STRING... Print literal STRING
.prompt MAIN CONTINUE Replace the standard prompts
.quit Exit this program
.read FILENAME Execute SQL in FILENAME
.restore ?DB? FILE Restore content of DB (default "main") from FILE
.schema ?TABLE? Show the CREATE statements
If TABLE specified, only show tables matching
LIKE pattern TABLE.
.separator STRING Change separator used by output mode and .import
.show Show the current values for various settings
.stats ON|OFF Turn stats on or off
.tables ?TABLE? List names of tables
If TABLE specified, only list tables matching
LIKE pattern TABLE.
.timeout MS Try opening locked tables for MS milliseconds
.trace FILE|off Output each SQL statement as it is run
.vfsname ?AUX? Print the name of the VFS stack
.width NUM1 NUM2 ... Set column widths for "column" mode
.timer ON|OFF Turn the CPU timer measurement on or off
Antes de explicar estos comandos de puntos, veamos algunas de las operaciones básicas de la base de datos.
Primero ejecute el comando “.quit” para finalizar la sesión.
Crear base de datos
Ejecute el siguiente comando en el indicador de shell.
Creará “example.db “(Puede poner el nombre que elija en lugar de”example.db “) archivo de base de datos (si no existe). Si existe, abra la base de datos contenida en el archivo.
$ sqlite3 example.db
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
La diferencia entre el comando “sqlite3” y “sqlite3 dbname.db” es que el primero creará una base de datos temporal para la sesión y caducará cuando se cierre la sesión.
Crear mesa
Creemos una tabla de estudiantes con atributos:
reg_no int (4)
Nombre varchar (20)
Marcas int (3)
ingrese los siguientes comandos en la terminal
sqlite> create table student (
...> reg_no int(4),
...> name varchar(20),
...> marks int(3)
...> );
Creará una tabla de estudiantes con los atributos anteriores.
Puede ver la lista de tablas en la base de datos seleccionada por .mesa mando
sqlite> .table
student
Solo hay un alumno de mesa en mi caso.
También puede ver el esquema de la tabla usando .esquema nombre de la tabla
sqlite> .schema student
CREATE TABLE student (
reg_no int(4),
name varchar(20),
marks int(3)
);
Insertar datos
Insertemos 3 registros en la tabla
101, pradip, 87
102, Avinash, 86
103, Rakesh, 90
Enter el siguiente comando uno por uno
sqlite> insert into student (reg_no, name, marks) values (101, 'Pradip', 87);
> insert into student (reg_no, name, marks) values (102, 'Avinash', 86);
> insert into student (reg_no, name, marks) values (103, 'Rakesh', 91);
Recuperacion de datos
Puede obtener datos de la tabla con la declaración de selección
sqlite> select * from student;
101|Pradip|87
102|Avinash|86
103|Rakesh|91
Muestra el resultado en modo predeterminado (lista).
Puede cambiar el modo con .modo mando
Enter .mode columna para solicitar y luego realizar la consulta de selección. Mostrará el resultado en formato de columna.
sqlite> .mode column
> select * from student;
reg_no name marks
---------- ---------- ----------
101 Pradip 87
102 Avinash 86
103 Rakesh 91
Delete, Alter, Drop, etc.tienen la misma sintaxis que sql.
Comandos especiales para sqlite3 (dot -commands)
Vimos que los comandos “.help” enumeran todos los comandos de puntos. Entendamos algunos otros comandos importantes.
1) bases de datos
Muestra el nombre de la base de datos seleccionada.
sqlite> .database
seq name file
--- --------------- --------------------
0 main /home/avi/example.db
- .mesa
Enumere las tablas en la base de datos seleccionada.
sqlite> .table
student
2) .mostrar
Muestra la configuración actual
sqlite> .show
echo: off
explain: off
headers: off
mode: list
nullvalue: ""
output: stdout
separator: "|"
stats: off
width:
3) .cabecera ENCENDIDO | APAGADO
Puede mostrar el nombre del atributo en el resultado de la consulta ejecutando el comando .header ON | OFF
sqlite> .header ON
> select * from student;
reg_no name marks
---------- ---------- ----------
101 Pradip 87
102 Avinash 86
103 Rakesh 91
4) .modo
El Programa puede mostrar los resultados de una consulta en ocho formatos diferentes: “csv”, “columna”, “html”, “insertar”, “línea”, “lista”, “pestañas”, “tcl” .. modo El comando se utiliza para cambiar entre estos formatos de salida.
sqlite> .mode csv
> select * from student;
reg_no,name,marks
101,Pradip,87
102,Avinash,86
103,Rakesh,91
Puedes usar .separador comando para cambiar el separador.
sqlite> .separator –
> seleccionar * de estudiante;
reg_no-name-marks
101-Pradip-87
102-Avinash-86
103-Rakesh-91
Escribir resultados en un archivo
De forma predeterminada, envía los resultados de la consulta a la salida estándar.
puede cambiar esto usando los comandos “.output” y “.once”.
Simplemente coloque el nombre de un archivo de salida como argumento para .output y todos los resultados de las consultas posteriores se escribirán en ese archivo.
sqlite> .output ex.txt
O usa el .una vez el comando con el nombre del archivo si desea que solo se redirija el resultado de la siguiente consulta.
Hemos instalado con éxito SQLite en Linux con operaciones básicas. Estas operaciones son solo algunas de las todo disponible. No podemos cubrirlos todos en este artículo. Si encuentra alguna dificultad en una instalación o en algún comando, avíseme en la sección de comentarios.