Ejecutar consultas de PostgreSQL en PSQL
- La metodología básica de uso de PSQL
- Ejecutar consultas por separado para cada base de datos
-
Uso de la sintaxis
SINGLE LINE
en lugar de punto y coma - Usar archivo para leer consultas SQL en PSQL
PostgreSQL viene con dos opciones, la opción número uno es PGADMIN4
o cualquier otro número de versión que vaya a utilizar, y la segunda opción es PSQL. PSQL es la interfaz de línea de comandos que puede interactuar con nuestra sesión de PostgreSQL y ejecutar consultas desde la interfaz de usuario.
Recuerde que PSQL es un front-end basado en terminal y también puede tomar argumentos y consultas de un archivo y su línea de comandos. Así que ahora, avancemos y entendamos cómo funcionan nuestras consultas en PSQL, la línea de comando de PostgreSQL.
La metodología básica de uso de PSQL
Una vez que haya iniciado PSQL con su nombre de usuario y contraseña de Postgres e iniciado sesión correctamente, es hora de comprender cómo ejecutar las consultas que ejecutaría en la interfaz de usuario de PostgreSQL en una línea de comandos.
Asegúrese de seguir la sintaxis correctamente cuando utilice consultas con palabras clave como SELECCIONAR
, INSERTAR
, ACTUALIZAR
, etc., para evitar errores no deseados. Mucha gente tiende a perder un punto y coma ;
.
Si falta un punto y coma, PSQL pensará que la consulta aún no ha finalizado y presionar ENTER no lo garantizará. Entonces, digamos que está en su instancia de PSQL de la siguiente manera:
Ahora, INSERTAR
una tabla en la base de datos. Queremos INSERTAR
una tabla BOLSA
con dos columnas, un ID
y un MODELO
.
Consulta:
CREATE table BAG (id INT, model TEXT);
Producción:
Si olvidó poner un punto y coma y presione ENTER, no obtendrá una salida en la pantalla y permanecerá en blanco.
Producción:
De la misma manera, puede ejecutar una consulta INSERTAR
para ingresar ahora algunos valores de la siguiente manera. Vamos a INSERTAR
los conjuntos de datos, ‘(1, Adidas)
’, ‘(2, Jale)
’ y ‘(3, Niky)
’.
Consulta:
insert into BAG values (1, 'Adidas'), (2, 'Jale'), (3, 'Niky');
Producción:
Ejecute la consulta SELECCIONAR
y devuelva una TABLA
.
Producción:
Ejecutar consultas con PSQL es fácil. Sin embargo, hay una condición.
Si tiende a ejecutar una consulta antes de una consulta sin la notación de punto y coma, la última consulta no funcionará en absoluto. Entonces, si llamara a SELECT BAG
sin un punto y coma y luego ejecutara la operación INSERT
, PSQL mostraría un error.
Producción:
No poner un punto y coma después de SELECCIONAR
nunca terminó la consulta. La siguiente consulta INSERTAR
se agregó a esta consulta SELECCIONAR
, y cuando se ejecuta, causaría un error.
Por lo tanto, es mejor cuidar siempre los puntos y comas al final de cada declaración.
Ejecutar consultas por separado para cada base de datos
Podemos tener más de una base de datos. Ejecutar una consulta sin enumerar o especificar la base de datos puede generar más confusión.
Avancemos y veamos primero todas nuestras bases de datos. Para ver bases de datos en PSQL, puede ejecutar una consulta a continuación.
Consulta:
\l or \l+
\l+
es una versión más descriptiva de \l
, con un +
añadido. Tengo mis bases de datos enumeradas a continuación.
Producción:
En el caso de \l+
, el resultado es:
Producción:
Actualmente disponemos de tres bases de datos, POSTGRES
, TEMPLATE0
y TEMPLATE1
. Además, podemos usar la declaración SELECT
para verlos.
Consulta:
SELECT datname from PG_DATABASE:
Producción :
datname
-----------
postgres
template1
template0
(3 rows)
PG_DATABASE
es un catálogo que almacena toda la información de la base de datos, y DATNAME
es una columna dentro de esta tabla que almacena las bases de datos. Para conectarnos a la base de datos Postgres, usemos el comando \c
.
Dominio:
\c postgres
A continuación, puede ejecutar la consulta para obtener las tablas como \dt
.
Consulta:
\dt
Producción :
List of relations
Schema | Name | Type | Owner
--------+-----------------+-------+----------
public | animal | table | postgres
public | bag | table | postgres
public | bus | table | postgres
public | car | table | postgres
public | cat | table | postgres
public | dog | table | postgres
public | horse | table | postgres
public | identity_number | table | postgres
public | mytable | table | postgres
public | person | table | postgres
public | person_details | table | postgres
public | rider | table | postgres
public | strings | table | postgres
public | student | table | postgres
public | tab | table | postgres
public | vehicle | table | postgres
(16 rows)
Ahora puede conectarse a la base de datos TEMPLATE0
o TEMPLATE1
para ver sus tablas, pero mostrarán un error porque no aceptan conexiones de usuarios entrantes debido a la configuración predeterminada.
Producción:
Para ejecutar una consulta para una base de datos específica, use el comando \c
para conectarse y luego la consulta.
Consulta:
psql -U postgres -d postgres -c "SELECT * from BAG;"
Después de la palabra clave -d
, conéctese a la base de datos de Postgres y ejecute la consulta. Escribí el nombre de la base de datos para conectarme y luego emití el comando.
Asegúrese de no escribir la consulta después de -c
entre comas simples, lo que generaría un error. Use comas dobles para que sea una cadena válida y, al final, escriba un punto y coma para estar seguro.
No usar las comillas dobles dará lugar a un error como en el siguiente ejemplo.
Consulta:
psql -U postgres -d postgres -c 'SELECT * FROM BAG;'
Producción :
psql: warning: extra command-line argument "*" ignored
psql: warning: extra command-line argument "FROM" ignored
psql: warning: extra command-line argument "BAG'" ignored
Uso de la sintaxis SINGLE LINE
en lugar de punto y coma
Puede usar el comando -S
o --SINGLE-LINE
para finalizar automáticamente las consultas de una sola línea sin necesidad de un punto y coma. Al inicializar la sesión de PostgreSQL, ejecute los siguientes comandos.
Dominio:
psql -U postgres -S
o
psql -U postgres --single-line
Cuando ejecute su sesión de PSQL, notará algo como lo siguiente:
postgres^# __
Esto significa que postgres#
cambió a postgres^#
, lo que indica el uso de una declaración de LÍNEA ÚNICA
.
Consulta:
select * from BAG
Si ejecuta la consulta anterior, funcionará perfectamente bien, y no se agregará punto y coma (;
) al final. Si protege su base de datos con una contraseña requerida en cada sesión, puede usar la palabra clave PGPASSWORD
al inicializar una sesión en PSQL.
Usar archivo para leer consultas SQL en PSQL
Otra implementación útil de la lectura de consultas SQL más grandes es usar a veces un archivo de extensión .sql
con consultas SQL escritas y ejecutarlo desde la línea de comandos de PSQL. Por ejemplo, hagamos un archivo con extensión .sql
con la siguiente consulta.
Consulta:
SELECT * from BAG;
Guardémoslo como QUERY1.SQL
en nuestro escritorio.
Para ejecutar esto mientras inicializamos nuestra sesión de PSQL. Utilice el siguiente comando.
Dominio:
psql -U postgres -f "C:\Users\Bilal Shahid\Desktop\query1.sql"
Producción :
id | mode
----+--------
1 | Adidas
2 | Jale
3 | Nikey
1 | Adidas
2 | Jale
3 | Nikey
1 | Adidas
2 | Jale
3 | Nikey
4 | John
5 | mike
(11 rows)
Hay otro equivalente para el comando -f
. El comando \i
, si ya está dentro de la sesión de PSQL y desea ejecutar la consulta desde el archivo.
Consulta:
postgres=# \i 'C:/Users/Bilal Shahid/Desktop/query1.sql'
Use barras diagonales inversas (/
) y comas simples ('
), ya que si no lo hace, obtendrá errores.
Esperamos que haya aprendido a usar PSQL de manera eficiente y haya entendido las diversas formas en que puede producir errores y cómo solucionarlos. Siempre lea nuestros tutoriales a fondo para una comprensión cuidadosa y profunda.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub