Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Adquiere por un año todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/año

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

1D
18H
54M
4S
Curso de PostgreSQL

Curso de PostgreSQL

Oswaldo Rodríguez González

Oswaldo Rodríguez González

Interacción con Postgres desde la Consola

4/32
Recursos

Aportes 154

Preguntas 40

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

RESUMEN

  1. ENTRAR A LA CONSOLA DE POSTGRES
    psql -U postgres -W
  2. VER LOS COMANDOS \ DE POSTGRES
    \?
  3. LISTAR TODAS LAS BASES DE DATOS
    \l
  4. VER LAS TABLAS DE UNA BASE DE DATOS
    \dt
  5. CAMBIAR A OTRA BD
    \c nombre_BD
  6. DESCRIBIR UNA TABLA
    \d nombre_tabla
  7. VER TODOS LOS COMANDOS SQL
    \h
  8. VER COMO SE EJECTUA UN COMANDO SQL
    \h nombre_de_la_funcion
  9. CANCELAR TODO LO QUE HAY EN PANTALLA
    Ctrl + C
  10. VER LA VERSION DE POSTGRES INSTALADA, IMPORTANTE PONER EL ';'
    SELECT version();
  11. VOLVER A EJECUTAR LA FUNCION REALIADA ANTERIORMENTE
    \g
  12. INICIALIZAR EL CONTADOR DE TIEMPO PARA QUE LA CONSOLA TE DIGA EN CADA EJECUCION ¿CUANTO DEMORO EN EJECUTAR ESA FUNCION?
    \timing
  13. LIMPIAR PANTALLA DE LA CONSOLA PSQL
    Ctrl + L

Resumen:
Comandos importantes:
Si quiero ver el listado de todos los comandos con \ escribo en consola de postgres: ?

  1. Listar todas las bases de datos: \l
  2. Ver las tablas de una base de datos: \dt
  3. Cambiar a otra base de datos: \c nombre_DB
  4. describir una tabla: \d nombre_tabla
  5. Ver comandos SQL: \h
  6. Ver como se ejecuta un comando SQL: \h nombre_de_la_función
  7. Control + c: Cancela todo lo que hay en pantalla.
  8. Consultar versión de postgres instalada: SELECT version();
  9. Volver a ejecutar la función que acabaste de ejecutar en la consola: \g
  10. Inicializar el contador de tiempo para que la consola diga cuanto se demoro en ejecutar ese comando : \timing
  11. Control + L: Limpiar pantalla.

Casi me da un infarto cuando ejecute \d viajero y no mostraba nada 🤯, luego me di cuenta que se trataba de una base de datos distinta, comparto los scripts que use para crear la base de datos transporte_masivo y la tabla viajero:

postgres=# CREATE DATABASE transporte_masivo;

postgres=# \c transporte_masivo

transporte_masivo=# CREATE TABLE viajero (
  id_viajero SERIAL,
  nombre VARCHAR,
  fecha_registro DATE,
  CONSTRAINT pk_pasajero PRIMARY KEY (id_viajero)
);

transporte_masivo=# CREATE INDEX idx_pasajero_fechacreacion ON viajero (fecha_registro);

Instalación de PostgreSQL en Linux

	# Debian
	sudo apt-get update && apt-get upgrade
	
	# Instalar motor de bases de datos
	sudo apt-get install postgresql postgresql-client postgresql-contrib libpq-dev
	
	# Acceso de usuario, desde la cuenta de root
	su -
	su - postgres

	# Crear usuario y base de datos
	createuser --interactive
		role? -> usuario
		superuser?
		
	psql
		# \password usuario
		# \q
		
    createdb nom_bbdd
	
    # Fedora
    dnf install postgresql-server postgresql-contrib
    
    postgresql-setup initdb
    
    systemctl enable postgresql.service
    systemctl start postgresql.service
    
    # Crear un usuario administrador
    createuser -s -P -e nom_usuario

El video anterior solo crea la BD “transporte_publico”, pero no “transporte_masivo” con las tablas.

****** Comandos básicos de PostgreSQL******

  • \l = para listar todas las bases de datos existentes
  • \dt = para listar todas las tablas que existen en una base de datos
  • \c = para cambiar a otra base de datos
  • \d = para describir la base de datos o la tabla
  • \h = para ver todas las funciones que podemos ejecutar en PostgreSQL
  • SELECT versión(); = para ver la versión de PostgreSQL
  • \g = volver a ejecutar la función que justamente acabaste de ejecutar en la consola
  • \timing = inicializar el contador de tiempo para que la consola muestre en cada ejecución cuanto se demoro en ejecutar ese comando

APORTE:
te aparece este error en la consola de SQL SHELL de PostgreSQL y de CMD cuando ingresas un comando cualquiera

‘more’ no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.

Respuesta:

Esto indica que psql internamente intenta ejecutar el comando more de windows pero no lo localiza.

Para solucionarlo agregue el directorio donde se localiza el comando more a la variable de entorno PATH del sistema.

Por lo general el comando externo more se encuentra en el directorio c:\Windows\System32.

y hacen los siguientes pasos, se dirigen a mi equipo luego click derecho en propiedades y en configuración avanzada del sistema

se dirigen a opciones avanzadas y click en variables de entorno, le aparecerá la opción Path lo seleccionan y click en editar

luego en nuevo y agregan la ubicación del directorio more osea este C:\Windows\System32, después aceptar a todo y listo cierran

y vuelven a abrir CMD y SQL SHELL de PostgreSQL y resuelto el problema espero haberte ayudado.

Es necesario revisar el orden de las clases y alinearlo con los contenidos. En esta clase se utiliza una base que ya incluye unas tablas. Cosa que no se ha hecho en las lecciones anteriores. Yo sé que el curso no está actualizado, pero esto debería ser revisado con cuidado.

Mi resumen:

\l: Lista todas las bases de datos
\dt: Listas las tablas de la actual base de datos
\c: Cambia de base de datos
	\c nombreBD
\d: Describe la tabla actual
\h: Ayuda
\h comando: Ejemplo de uso y para que sirve un tipo man de linux
\g: Ejecuta el ultimo comando
\timing: Activa o desactiva el tiempo que le toma una consulta completarse

Comandos en porgresql (consola)
• Create database nombre_bd
• \c nombre_bd (Es como si fuera el use DB)
• \l -> Muestra todas las bases de datos (ele minúscula)
• \dt -> muestra las tablas
• \d -> muestra los detalles de la tabla
• \h -> ayuda para comandos de SQL
• \h palabra_sql ->Muestra cómo usar la función
• Ctrl + c -> cancela lo que se estaba mostrando
• \g -> permite volver a ejecutar la función que acabas de ejecutar en la consola
• \timing -> permite activar el contador de tiempo para así saber cuánto se demora una respuesta

Excelente, me parece muy interesante que Postgres tenga comandos propios tipo Unix Shell para realizar acciones.

En Oracle (por ejemplo), para describir una tabla es con la sentencia:

DESC nombre_tabla;

y para listar todas las bases de datos (en un entorno contenedor) es;

SELECT NAME, OPEN_MODE FROM V$PDBS;

Me parece que la gestión de BD así como de objetos es mucho más sencilla (pero a la vez super poderosa) en POSTGRES.

Mi resumen

  • \l mostrar las bases de datos
  • \dt tablas que contiene la base de datos
  • \c para cambiar de base de datos
  • \d “tabla” describe la estructura de la tabla
  • \h todos los comandos de SQL

Hola, les comparto 2 comandos que aprendí por necesidad de salir y no saber cómo (jjjj):
q = volver al prompt
\q= salir de la base de datos.

Para los que no pueden limpiar la pantalla con Ctrl + L tal y como dicen algunos comentarios existe el siguiente comando:

 \! cls

¿Cómo le doy no me gusta a una clase? porque va muy mal :v

Ingresar a la consola desde ubuntu: sudo su postgres

psql -U postgres -W

Comandos de navegación y consulta de información

  • ? = ver lista de todos los comandos disponibles en consola, (con backslash)

  • \l = para listar todas las bases de datos existentes

  • \dt = para listar todas las tablas que existen en una base de datos

  • \c = para cambiar a otra base de datos

  • \d = para describir la base de datos o la tabla

  • \du = listar usuarios

  • \dv = listar vistas de la bd actual

  • \df = listar funciones

  • \dn = listar esquemas

  • \h = para ver todas las funciones que podemos ejecutar en PostgreSQL \h ALTER

  • SELECT versión(); = para ver la versión de PostgreSQL

  • \q = Cerrar consola

Con ctrl + L pueden limpiar la pantalla

Para ser basico, siento que abruma un poco esta clase del curso, adicional van directo a consola… Sería bueno que revisen el orden de las clases

En que momento crea la tabla viajero?

Una ayuda adicional 😄

Acceso desde la terminal de Linux

❯ sudo -i -u postgres
postgres@inspiron-5577:~$ psql 
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1), server 13.4 (Ubuntu 13.4-4.pgdg20.04+1))
Type "help" for help.

postgres=#
\l => lista todas las bases de datos, postgres, template0, template1 son base por defecto

\c => cambia a una base de datos.

\dt => te muestra las tablas que tiene la base de datos.

\d <<tabla>> => nos describe la tabla, columnas, tipos de datos, collation, reglas e índices

\h ver funciones de SQL

SELECT version();

\g => ejecuta la última consulta ejecutada en el servidor

\timing => inicializa el contador de tiempo en cada ejecución, esto es para optiminzar ```

Comandos vistos en el video:

## Visualizar todos los comandos
\?
##  Visualizar todas la bases de datos 
\l (listing)
## Cambiar la base de datos utilizada 
\c (change) 
## Muestra la tablas que se encuentran dentro de la base de datos 
\dt 
## Muestra la informacion de una tabla en especifico 
\d
## Todas las consultas de SQL que podemos realizar  
\h
## Version que estamos utilizando 
SELECT version();
         version                                                             
---------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 11.8 (Ubuntu 11.8-1.pgdg18.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit
 

## Repite la ultima funcion que se ejecuto en el servidor 
\g 

## Timing: inicia el contador de tiempo para saber cuanto tiempo se toma en realizar determinada funcion
\timing 

Les dejo este enlace con cheatsheet donde estan los comandos mas utilizados.
Mas comando de postgres

\timing; Con esta función podemos visualizar el tiempo que demora el motor de la base de dato en ejecutar una consulta y con este dato se puede optimizar las consultas.

LIMPIAR PANTALLA EN WINDOWS.
comando:
BARRA INVERTIDA + ! + espacio + cls

Ten en cuenta que si estás haciendo la prueba con la base de datos diferente a la que está por defecto en Postgres, debes poner el nombre del schema y luego un punto. Por ejemplo: schema platzi: \dt platzi.
También para listar los schemas de una base de datos se puede usar \dn

Comparto enlace de referencia:
https://stackoverflow.com/questions/34098326/how-to-select-a-schema-in-postgres-when-using-psql

para limpiar la consola

\! cls

Guia basica para seguir el ejemplo,
ingresar a la bd
Creacion de la base de datos
create database transporte_masivo;
crear tabla
create table viajero(id serial primary key);
y ya con eso, es una estructura de una tabla con un campo id

Para la barra invertida () el comando es alt+92

Si quires acceder desde docker al command line de postgres:

docker exec -it <CONTAINER_ID> bash
psql -h <HOST> -p <PORT>-U <USERNAME> -W

Ejemplo:

docker exec -it 82ca25bfcbfe bash
psql -h localhost -p 5432 -u postgres -W

solo enseñaron para windows… y si tengo MAc?

ya no puedo tomar el curso??

Para el Lunes 16/11/2020 este vídeo no se está reproduciendo

Existen 2 formas para acceder a la base de datos

  • Consola
  • interfaz gráfica

++La interfaz gráfica puede presentar problemas por eso se recomienda el uso de la consola ++

SERVER [LOCALHOST] : ip o nombre de dominio donde se encuentra alojado tu servidor

DATABASE[POSTGRES]: el nombre de la base de datos a la que quieras acceder

POR[5432] si necesitas cambiar el puerto por cuestiones de seguridad

USARNAME[POSTGRES] si se configuro algún otro usuario(se vera mas adelante)

PASSWORD contraseña importante colocarla

? Listar comandos.

Entendido, comandos basicos pero que se utilizan a diario.

Excelente que el curso de instruccion de como usar postgreSQL desde la consola.

Pero la interfaz grafica es para facilitar las cosas como para poder hacer sentencias de sql complejas existen opciones que te habilitan ya hechas. El decir que consola es para un “mejor uso de la BD” no seria tan cierta es para poder hacer ciertas cosas no es la mejor opción.

Bac Slash "\"(alt+92) y sus comandos

# CREATE TABLE ```sql CREATE TABLE CREATE TABLE viajero ( id_viajero SERIAL, nombre VARCHAR, fecha_registro DATE, CONSTRAINT pk_viajero PRIMARY KEY (id_viajero) ); CREATE INDEX idx_pasajero_fechacreacion ON viajero (fecha_registro); ```

No inventes, apenasesta clase viene el uso directo de la consola y ya llené 2 hojas al derecho y al revés de información! :0

Así va a estasr la masacre xD

Si estan = de novatos que yo, por razones de seguridad la terminal no muestra que tecleaste el PW , recuerded que si se almacena lo que tecleas

Verion 14.8

COMANDOS BÁSICOS postgreSQL

? te trae todos los comandos que puedes usar dentro del comando.
\L para listar las bases de datos instaladas en el motor ( siempre habrá tres motores instalados por la fábrica)
\dt muestra las BD de postgres
\c para entrar en una base BD
\d para seleccionar la tabla que queramos consultar
\h trae todos los comandos que podemos usar en sql
Ctrl C cancela lo que se habia desplegado en pantalla.
SELECT version(); para ver la version de postgres
\g muestra la función que le ha dado a otro usuario que la esté usando a mismo tiempo
\timing muestra el tiempo de ejecución de la función.

Para ver el nombre de la base de datos actual

SELECT current_database();

Interacción con Postgres desde la Consola

Ingresamos a consola mediante SQL Shell

Ingresamos con enter con todas las credenciales de acceso, para este caso práctico.

Comando:

\l -> para visualizar las bases de datos 
\dt -> mostrará las tablas que contiene la base de datos
\c transporte_masivo -> para cambiarnos a la base de datos transporte masivo
\d tabla_consultar -> nos dará información sobre la tabla_consulta
\h -> nos permite conocer todos los comandos SQL
\h alter -> para consultar sobre un comando en específico 
\g -> ejecutamos la última función ejecutada 
\timing -> nos indica cuanto tiempo tarda en ejecutar una consulta o función 

Interacción con Postgres desde la Consola


Ya una vez inicalizado nuestro contenedor , para acceder a la consola de postgres ejecutamos el siguiente comando docker exec -it <CONTAINER_ID> bash y luego psql -h <HOST> -p <PORT>-U <USERNAME> -W con la congiuracion que hallamos dejado en la imagen de docker, en mi caso este ultimo comando fue: psql -h localhost -p 5432 -U root -W te va a pedir la contrasena, la ingresa y ya estaras dentro de la ocnsola de postgreSQL en tu contenedor Docker.

Comandos

Comandos

  1. \? Ver todos los comando que podemos utlizar en la terminal o consola de PostgreSQL
  2. Ver lista de bases de datos: Para ver una lista de todas las bases de datos disponibles en el servidor, puedes usar el comando \l. ****
  3. Ver lista de tablas: Para ver una lista de todas las tablas en la base de datos actual, puedes usar el comando \dt.
  4. Ver estructura de tabla: Para ver la estructura de una tabla en particular, puedes usar el comando \d nombre_de_tabla.
  5. Ejecutar una consulta SQL: Puedes ejecutar una consulta SQL en la base de datos actual mediante el comando SELECT ....
  6. Salir de la terminal de PostgreSQL: Para salir de la terminal de PostgreSQL, puedes usar el comando \q.
  7. Para limpiar la pantalla CTRL + L

Para instalarlo en Mac recomiendo este video que me ayudo mucho: https://www.youtube.com/watch?v=FtCS_3JuShA&t=191s

transporte_masivo=# \g
version

PostgreSQL 13.9, compiled by Visual C++ build 1914, 64-bit
(1 fila)

Duración: 0.326 ms

muy buena explicacion

Todos los comandos empiezan con ‘’. Para poder listar los comandos en caso que no sepamos muchos podemos hacer

  • ? : listará todos los comandos.

Luego se nos mostrarán unos cuantos comandos como estos

  • \l : mostrará todas las bases de datos que haya.

  • \dt : mostrará todas las tablas que haya en la base de datos donde nos encontremos.

  • \g : volverá a ejecutar la función que justamente acabaste de ejecutar en la consola

  • \timing: activará el temporizador para arrojar el tiempo de duración de cada comando o consulta.

Si por algún motivo nos encontramos en la base de datos incorrecta, podemos ejecutar

  • \c nombredelabasededatos: cambia de la base de datos actual a la que especifiquemos

Luego en la base de datos de nuestra preferencia podemos seguir viendo comandos como

  • \d nombredelatabla : muestra la estructura de la tabla, columnas, tipo de dato, si acepta valores nulos, etc.

También podemos ejecutar código SQL directamente para hacer consultas de los datos de forma común y corriente, para ver todos los comandos disponibles podemos ejecutar

  • \h : muestra todos los comandos SQL puros disponibles para ejecutar desde la consola

Si tenemos dudas sobre un comando podemos ejecutar la autoayuda de la consola para ese comando con:

  • \h COMANDO : muestra la autoayuda de la consola para poder ejecutar el comando.

Para que se pueda ejecutar el comando de forma correcta es muy importante poner ‘;’ al final, de otra forma SQL Shell pensará que queremos seguir haciendo la consulta en la siguiente línea, por ejemplo esta consulta

  • SELECT * FROM TABLE

No lo ejecutará, pensará que queremos seguir la consulta a la siguiente línea, pero esta si la ejecutará

  • SELECT * FROM TABLE;

Otros comandos de la consola:

  • \du : lista todos los usuarios.

  • \dv : lista las vistas de la bd actual.

  • \df : lista las funciones.

  • \dn : lista los esquemas.

  • \q: cierra la consola.

Todo bien pero sigo prefiriendo SQL SERVER ._.

En este clase vamos a acceder la programa de Postgre en esta clase desde la consola

Server [Localhost] — El servicio o dominio donde esta instalado el lugar trabajar

Database [postgres]— El nombre de la base datos

Port [5432]— El puerto desde donde se trabajará

Username [postgres] — El usuario

Después de esto deberás ingresar la contraseña que se creo al instalar el programa de Postgress

Estos son algunos de los comandos que utilizaras en la consola de SQL Shell

  1. ENTRAR A LA CONSOLA DE POSTGRES**psql -U postgres -W**
  2. VER LOS COMANDOS \ DE POSTGRES**\?**
  3. LISTAR TODAS LAS BASES DE DATOS**\l**
  4. VER LAS TABLAS DE UNA BASE DE DATOS**\dt**
  5. CAMBIAR A OTRA BD**\c nombre_BD**
  6. DESCRIBIR UNA TABLA**\d nombre_tabla**
  7. VER TODOS LOS COMANDOS SQL**\h**
  8. VER COMO SE EJECTUA UN COMANDO SQL**\h nombre_de_la_funcion**
  9. CANCELAR TODO LO QUE HAY EN PANTALLA**Ctrl + C**
  10. VER LA VERSION DE POSTGRES INSTALADA, IMPORTANTE PONER EL ';'SELECT version();
  11. VOLVER A EJECUTAR LA FUNCION REALIADA ANTERIORMENTE**\g**
  12. INICIALIZAR EL CONTADOR DE TIEMPO PARA QUE LA CONSOLA TE DIGA EN CADA EJECUCION ¿CUANTO DEMORO EN EJECUTAR ESA FUNCION?\timing
  13. LIMPIAR PANTALLA DE LA CONSOLA PSQL**Ctrl + L**

\h Funciona como el comando “man” en Linux. Interesante.

otra forma seria con docker:

$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

interactuar en docker:

docker exec -it some-postgres bash

ingresar a potgres:

psql -U postgres -W

Lee el archivo “filename” y ejecuta su contenido.

\i filename

Excelente que se pueda manejar las BD desde la consola tipo shell. Grande PostgresSQL!

El timing es bastante útil para ver cuanto tiempo toma ejecutar ciertas funciones y así mismo para poder analizar si necesito optimizar una consulta.

es un buen enlace que complementa esta clase muy recomendado

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-20-04

\timing (Te dice cuanto se demoró la consola ejecutando un comando)

\g (Volver a ejecutar la función que acabas de realizar)

SELECT version(); (Nos sirve para ver que versión de SQL tiene la base de datos)

Ctrl + c (Para cancelar lo que sea que está corriendo en pantalla)

\h comando estándar específico (Para saber como funciona un comando en estándar SQL en específico)

\h (Para consultar los comandos estándares de SQL)

\d tabla que se quiere consultar (Este comando describe la tabla que pusiste)

\c nombre de base de datos (para cambiar o entrar a una base de datos)

\dt (Las tablas que contiene la base de datos de PostgreSQL)

\l (Listar todas las bases de datos)

Comandos básicos de PostgreSQL

Cómo acceder a la consola

Consola e interfaz visual

en la instalación de postgreSQL cuando voy a la consola en user password aparece una llave y noe deja poner la password maestra . estoy dejando los valores predeterminados en todo . lo estoy bajando en Mac M1. alguien me puede ayudar a resolver esto? Gracias

Comparto algunos comandos para poder trabajar con la base de datos desde la consola Shell

Crear una base de datos

Integracion con Postgret desde la consola

\l: Lista todas las bases de datos
\dt: Que tablas tiene la base de datos
\c: Cambiar a base de datos
\d nombre_tabla: descripe la tabla
\h: Muestra las funciones que podemos ejecutar con
comandos sql
\g: permite volver a ejecutar la funcion que acabamos de ejecutar
\timig: inicializa el contador de tiempo

Información resumida de esta clase

EstudiantesDePlatzi

  • Existen dos maneras de ingresar a nuestras bases de datos, una es por la consola y la otra es por medio de la interfaz gráfica

  • Es bueno saber utilizar la consola

  • Algunos de los comandos más importantes inician con \

  • \l = Este comando nos ayuda para listar nuestras bases de datos

  • \dt = Nos ayuda a mostrar las tablas que contienen nuestra base de datos

  • \c = Nos sirve para ingresar a la base de datos que queramos

  • \d = Nos ayuda a describir la tabla que queramos

  • Dentro de SQL Sell también podemos hacer consultas

  • Ctrl + C = Cancela lo que estamos mostrando en el momento

  • \g = Nos ayuda para volver a ejecutar el comando que anteriormente ejecutamos

  • \t = Con este comando podemos activar el timing para saber cuanto tiempo se demora en ejecutar los siguientes comandos

Como curiosidad, si le vuelves a dar \timing entonces vas a desactivar el conteo del tiempo que tarda la consola en ejecutar cada comando.

Postgres desde la consola:

  • \? : lista todos los comandos disponibles del grupo del backslash
  • \l : lista todas las base de datos
  • dt: lista todas las tablas de la base de datos
  • \c transporte_masivo: accedemos a la DB transporte masivo
  • \dt: lista las tablas de la DB donde estamos
  • \d viajero: describe la tabla viajero
  • SELECT version(); podemos hacer consultas SQL
  • \h: lista comandos standard de SQL (control + C para salir)
  • \h ALTER : consulta específica de una función SQL
  • \g: vuelve a ejecutar la última función ejecutada teniendo en cuenta TODOS los USUARIOS CONECTADOS.
  • \timing: inicializamos el contador de tiempo para que la consola me diga en cada ejecución cuanto se demoro en ejecutar ese comando

Brillante. Es la primera vez que lo veo desde la consola. Se aprende mucho. A seguir así.

si alguien quiere añadir psql shell a windows terminal deben modificar el json de los settings con:
{
“guid”: “{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}”,
“name” : “SQL psql”,
“commandline”: “%PROGRAMFILES%/PostgreSQL/14/scripts/runpsql.bat -i -l”,
“hidden”: false,
“icon”: “%SystemDrive%/PROGRA~1/PostgreSQL/14/scripts/images/pgAdmin4.ico”
}

En sistema operativo MacOS, para acceder a la consola de Postgres, es necesario utilizar la app que tiene nativa, y seleccionar la BD que se desea conectar, al hacer eso, se abrira la terminal correspondiente a postgres. Espero que en este curso añadan la instalacion tanto para Mac como Linux.

El comando \timing es lo mejor, alguien cree en la siguiente afirmación?, es verdad que para el ojo humano cualquier cosa que demore más de 0.4 segundos en procesar es incómoda de visualizar

Podemos accerder a la BD desde la GUI o la consola. Es más recomendable usar la consola.

  • Ver todos los comandos disponibles: \?
  • Mirar todas las BD: \l
  • Tablas en la BD: dt
  • Crear BD: CREATE DATABASE baseDatos1
  • Entrar a BD: \c baseDatos1
  • Entrar a tabla: \d nombreTabla
  • Pedir ayuda con consultas de SQL: \h
  • Consultar versión de Postgres: SELECT version();
  • Volver a ejecutar el último comando ejecutado \g
  • Encender un cronómetro: \timing -> te dirá cuánto se tarda una instrucción en ejecutarse.

EL ERROR:

ERROR: database “pilot” is being accessed by other users
DETAIL: There is 1 other session using the database.

Es porque la SQL Shell seguia abierta, si alguien mas le sucedio, deben cerrar la SQL shell para poder borrar la base de datos. Digo cerrar, pero puede ser finalizar conexion

Si tienen problemas para entrar en ubuntu les comparto este link, a mi me sirvió mucho: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-20-04

para crear un usuario
#CREATE USER name PASSWORD ‘password’;
para listar los usuarios
#\du

Manejar la línea de comandos es esencial para la correcta creación y administración de las bases de datos.

\timing: activa el cronómetro de tiempo para ver cuánto se demora la función en ejecutarse.

\g es muy útil en caso de tener varias consolas o servicios ejecutando versiones en paralelo.

\h: para ver todos los comandos posibles para poner en PostgreSQL.

  • Basic Commands

    <h3>PostgreSQL commands</h3>

    Access the PostgreSQL server from psql with a specific user:

    psql-U [username];Code language: CSS (css)
    

    For example, the following command uses the postgres user to access the PostgreSQL database server:

    psql -U postgresCode language: SQL (Structured Query Language) (sql)
    

    Connect to a specific database:

    \c database_name;
    

    For example, the following command connects to the dvdrental database:

    \c dvdrental;
    You are now connected to database "dvdrental" as user "postgres".Code language: SQL (Structured Query Language) (sql)
    

    To quit the psql:

    \q
    

    List all databases in the PostgreSQL database server

    \l
    

    List all schemas:

    \dnCode language: SQL (Structured Query Language) (sql)
    

    List all stored procedures and functions:

    \df
    

    List all views:

    \dvCode language: SQL (Structured Query Language) (sql)
    

    Lists all tables in a current database.

    \dt
    

    Or to get more information on tables in the current database:

    \dt+
    

    Get detailed information on a table.

    \d+ table_name
    

    Show a stored procedure or function code:

    \df+ function_name
    

    Show query output in the pretty-format:

    \x
    

    List all users:

    \du
    

    Create a new role:

    CREATE ROLE role_name;
    

    Create a new role with a username and password:

    CREATE ROLE username NOINHERIT LOGIN PASSWORD password;
    

    Change role for the current session to the new_role:

    SET ROLE new_role;
    

    Allow role_1 to set its role as role_2:

    GRANT role_2TO role_1;Code language: SQL (Structured Query Language) (sql)
    
    <h3>Managing databases</h3>

    Create a new database:

    CREATEDATABASE [IFNOTEXISTS] db_name;Code language: SQL (Structured Query Language) (sql)
    

    Delete a database permanently:

    DROPDATABASE [IFEXISTS] db_name;Code language: SQL (Structured Query Language) (sql)
    
    <h3>Managing tables</h3>

    Create a new table or a temporary table

    CREATE [TEMP]TABLE [IFNOTEXISTS] table_name(
       pk SERIAL PRIMARYKEY,
       c1type(size)NOT NULL,
       c2type(size) NULL,
       ...
    );Code language: SQL (Structured Query Language) (sql)
    

    Add a new column to a table:

    ALTERTABLE table_nameADDCOLUMN new_column_nameTYPE;Code language: SQL (Structured Query Language) (sql)
    

    Drop a column in a table:

    ALTERTABLE table_nameDROPCOLUMN column_name;Code language: SQL (Structured Query Language) (sql)
    

    Rename a column:

    ALTERTABLE table_nameRENAME column_nameTO new_column_name;Code language: SQL (Structured Query Language) (sql)
    

    Set or remove a default value for a column:

    ALTERTABLE table_nameALTERCOLUMN [SETDEFAULTvalue |DROPDEFAULT]Code language: SQL (Structured Query Language) (sql)
    

    Add a primary key to a table.

    ALTER TABLE table_name ADD PRIMARY KEY (column,...);
    

    Remove the primary key from a table.

    
    ALTERTABLE table_name
    DROPCONSTRAINT primary_key_constraint_name;Code language: SQL (Structured Query Language) (sql)
    

    Rename a table.

    
    ALTERTABLE table_nameRENAMETO new_table_name;Code language: SQL (Structured Query Language) (sql)
    

    Drop a table and its dependent objects:

    
    DROPTABLE [IFEXISTS] table_nameCASCADE;Code language: SQL (Structured Query Language) (sql)
    
    <h3>Managing views</h3>

    Create a view:

    
    CREATEORREPLACE view_nameASquery;Code language: SQL (Structured Query Language) (sql)
    

    Create a recursive view:

    
    CREATERECURSIVEVIEW view_name(column_list)ASSELECT column_list;Code language: SQL (Structured Query Language) (sql)
    

    Create a materialized view:

    
    CREATEMATERIALIZEDVIEW view_name
    ASqueryWITH [NO]DATA;Code language: SQL (Structured Query Language) (sql)
    

    Refresh a materialized view:

    
    REFRESH MATERIALIZED VIEW CONCURRENTLY view_name;
    Code language: SQL (Structured Query Language) (sql)
    

    Drop a view:

    
    DROPVIEW [IFEXISTS ] view_name;Code language: SQL (Structured Query Language) (sql)
    

    Drop a materialized view:

    
    DROPMATERIALIZEDVIEW view_name;Code language: SQL (Structured Query Language) (sql)
    

    Rename a view:

    
    ALTERVIEW view_nameRENAMETO new_name;Code language: SQL (Structured Query Language) (sql)
    
    <h3>Managing indexes</h3>

    Creating an index with the specified name on a table

    
    CREATE [UNIQUE]INDEX index_name
    ONtable (column,...)Code language: SQL (Structured Query Language) (sql)
    

    Removing a specified index from a table

    
    DROPINDEX index_name;Code language: SQL (Structured Query Language) (sql)
    
    <h3>Querying data from tables</h3>

    Query all data from a table:

    
    SELECT *FROM table_name;Code language: SQL (Structured Query Language) (sql)
    

    Query data from specified columns of all rows in a table:

    
    SELECT column_list
    FROMtable;Code language: SQL (Structured Query Language) (sql)
    

    Query data and select only unique rows:

    
    SELECTDISTINCT (column)
    FROMtable;Code language: SQL (Structured Query Language) (sql)
    

    Query data from a table with a filter:

    
    SELECT *
    FROMtableWHERE condition;Code language: SQL (Structured Query Language) (sql)
    

    Assign an alias to a column in the result set:

    
    SELECT column_1AS new_column_1, ...
    FROMtable;
    Code language: SQL (Structured Query Language) (sql)
    

    Query data using the [LIKE](https://www.postgresqltutorial.com/postgresql-like/) operator:

    
    SELECT *FROM table_name
    WHEREcolumnLIKE '%value%'Code language: SQL (Structured Query Language) (sql)
    

    Query data using the BETWEEN operator:

    
    SELECT *FROM table_name
    WHEREcolumnBETWEENlowANDhigh;Code language: SQL (Structured Query Language) (sql)
    

    Query data using the IN operator:

    
    SELECT *FROM table_name
    WHEREcolumnIN (value1, value2,...);Code language: SQL (Structured Query Language) (sql)
    

    Constrain the returned rows with the [LIMIT](https://www.postgresqltutorial.com/postgresql-limit/) clause:

    
    SELECT *FROM table_name
    LIMITlimitOFFSEToffsetORDERBY column_name;Code language: SQL (Structured Query Language) (sql)
    

    Query data from multiple using the inner joinleft joinfull outer joincross join and natural join:

    
    SELECT *
    FROM table1
    INNERJOIN table2ON conditionsCode language: SQL (Structured Query Language) (sql)
    
    
    SELECT *
    FROM table1
    LEFTJOIN table2ON conditionsCode language: SQL (Structured Query Language) (sql)
    
    
    SELECT *
    FROM table1
    FULLOUTERJOIN table2ON conditionsCode language: SQL (Structured Query Language) (sql)
    
    
    SELECT *
    FROM table1
    CROSSJOIN table2;Code language: SQL (Structured Query Language) (sql)
    
    
    SELECT *
    FROM table1
    NATURALJOIN table2;Code language: SQL (Structured Query Language) (sql)
    

    Return the number of rows of a table.

    
    SELECTCOUNT (*)
    FROM table_name;Code language: SQL (Structured Query Language) (sql)
    

    Sort rows in ascending or descending order:

    
    SELECT select_list
    FROMtableORDERBYcolumnASC [DESC], column2ASC [DESC],...;Code language: SQL (Structured Query Language) (sql)
    

    Group rows using [GROUP BY](https://www.postgresqltutorial.com/postgresql-group-by/) clause.

    
    SELECT *
    FROMtableGROUPBY column_1, column_2, ...;Code language: SQL (Structured Query Language) (sql)
    

    Filter groups using the [HAVING](https://www.postgresqltutorial.com/postgresql-having/) clause.

    
    SELECT *
    FROMtableGROUPBY column_1
    HAVING condition;Code language: SQL (Structured Query Language) (sql)
    
    <h3>Set operations</h3>

    Combine the result set of two or more queries with [UNION](https://www.postgresqltutorial.com/postgresql-union/) operator:

    
    SELECT *FROM table1
    UNIONSELECT *FROM table2;Code language: SQL (Structured Query Language) (sql)
    

    Minus a result set using [EXCEPT](https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-except/) operator:

    
    SELECT *FROM table1
    EXCEPTSELECT *FROM table2;Code language: SQL (Structured Query Language) (sql)
    

    Get intersection of the result sets of two queries:

    
    SELECT *FROM table1
    INTERSECTSELECT *FROM table2;Code language: SQL (Structured Query Language) (sql)
    
    <h3>Modifying data</h3>

    Insert a new row into a table:

    
    INSERTINTOtable(column1,column2,...)
    VALUES(value_1,value_2,...);Code language: SQL (Structured Query Language) (sql)
    

    Insert multiple rows into a table:

    
    INSERTINTO table_name(column1,column2,...)
    VALUES(value_1,value_2,...),
          (value_1,value_2,...),
          (value_1,value_2,...)...
    Code language: SQL (Structured Query Language) (sql)
    

    Update data for all rows:

    
    UPDATE table_name
    SET column_1 = value_1,
        ...;Code language: SQL (Structured Query Language) (sql)
    

    Update data for a set of rows specified by a condition in the WHERE clause.

    
    UPDATEtableSET column_1 = value_1,
        ...
    WHERE condition;Code language: SQL (Structured Query Language) (sql)
    

    Delete all rows of a table:

    
    DELETEFROM table_name;Code language: SQL (Structured Query Language) (sql)
    

    Delete specific rows based on a condition:

    
    DELETEFROM table_name
    WHERE condition;Code language: SQL (Structured Query Language) (sql)
    
    <h3>Performance</h3>

    Show the query plan for a query:

    
    EXPLAINquery;Code language: SQL (Structured Query Language) (sql)
    

    Show and execute the query plan for a query:

    
    EXPLAINANALYZEquery;Code language: SQL (Structured Query Language) (sql)
    

    Collect statistics:

    
    ANALYZE table_name;
    

Por qué me sal que la contraseña es incorrecta??? Sólo he configurado una sola contraseña.

Consola

.

Server [Localhost]

.
Si utilizas una base de datos instalada en otro equipo es necesario escribir la IP o nombre de dominio donde se aloja el servidor.
.
Si no hay modificación en la configuración (trabajo en equipo local), solo dar Enter.
.

<h3>Database [postgres]</h3>

.
Base de datos predeterminada, si no hubo cambios solo dar Enter.
.
En caso de haber creado una base de datos diferente en la instalación y querer acceder a ella, escribir el nombre de la base de datos y dar Enter.
.

<h3>Puerto [5432]</h3>

.
El puerto [5432] es el predeterminado. Dar Enter.
.
Se puede trabajar con un puerto diferente por cuestiones de seguridad.
.

<h3>Usernam [Postgres]</h3>

.
Postgres es predefinido. Dar Enter.

Alguien me podría ayudar, tengo problemas de autenticación en la consola de postgres, me dice que tengo fallo de autenticación de ccontraseña y escribo la contraseña correcta, al entrar apgAdmin utilizando la misma contraseña me deja sin ningún problema
Espero alguien pueda ayudarme

Me toco trabajar desde consola y ahí a puro tutorial salí adelante, espero y este curso me ayude a mejorar mis habilidades.

\g; Con esta instrucción se puede saber la versión con la cual se está trabajando en PostgreSQL y parte también se puede visualizar que consultas se están realizando desde otra consola y usuarios.