Cambiar de base de datos
PostgreSQL: \c tienda -es una conexión nueva-.
MySQL y SQL Server: USE tienda;.
En PostgreSQL una consulta no puede cruzar dos bases de datos; en los otros dos, sí.
Vamos a dejarlo funcionando en tu equipo. Es gratuito, no pide registro y el instalador hace casi todo el trabajo.
Descarga el instalador desde postgresql.org y
acepta las opciones propuestas. Te pedirá una
contraseña para el usuario postgres: anótala,
porque es la del administrador de la base de datos.
Instala de paso pgAdmin, una herramienta gráfica que viene bien para mirar los datos.
Con Homebrew: brew install postgresql@18 y luego
brew services start postgresql@18.
También existe Postgres.app, que instala todo con doble clic.
sudo apt update && sudo apt install postgresql
Queda arrancado y configurado para iniciarse solo. Se comprueba con
sudo systemctl status postgresql.
Cada motor trae su propio programa de línea de comandos. Es lo primero que necesitas saber cuando llegas a un servidor que no montaste tú.
# -U el usuario, -d la base de datos, -h el servidor
psql -U postgres -d postgres
# En Linux, si tu usuario del sistema no existe como rol:
sudo -u postgres psqlpsql (18.6) Type "help" for help. postgres=#
# -p SIN la contrasena al lado: la pide despues, y asi no queda en el historial
mysql -u root -pEnter password: Welcome to the MySQL monitor. mysql>
# -S el servidor, -U el usuario. -C acepta el certificado en un entorno de prueba
sqlcmd -S localhost -U sa -CPassword: 1>
Fíjate en el detalle de MySQL: -p a secas hace que
pida la contraseña. Escribirla pegada al comando la deja en el
historial del sistema y a la vista de cualquiera que liste los procesos. Es la misma
regla que en los otros cursos: las contraseñas no se escriben en la línea de
comandos.
El primer error que ve todo el mundo en Linux y macOS: «FATAL: role "ana" does not exist».
No es un fallo de instalación. PostgreSQL asume que quieres entrar con
un usuario de base de datos que se llame igual que tu usuario del sistema,
y ese no existe. La salida es conectarse con el usuario administrador:
sudo -u postgres psql, o indicar el usuario con -U postgres.
Todas las lecciones siguientes trabajan sobre una base de datos llamada
tienda. Créala ahora y no tendrás que volver aquí.
-- Desde psql, conectado como postgres
CREATE DATABASE tienda;
-- Cambiar a la base recien creada
\c tienda
-- Ver las bases que existen
\lLos comandos que empiezan por contrabarra
-\c, \l, \dt- no son SQL: son atajos del
cliente psql. Por eso no llevan punto y coma y no funcionan en otros
motores.
-- MySQL
CREATE DATABASE tienda;
USE tienda;
SHOW DATABASES;
-- SQL Server
CREATE DATABASE tienda;
GO
USE tienda;
GO
SELECT name FROM sys.databases;
GOPostgreSQL: \c tienda -es una conexión nueva-.
MySQL y SQL Server: USE tienda;.
En PostgreSQL una consulta no puede cruzar dos bases de datos; en los otros dos, sí.
No es SQL: es una señal del cliente que significa «manda lo escrito hasta aquí».
Sin él, algunas órdenes no llegan a ejecutarse y parece que no pasa nada.
Tres formas distintas para lo mismo: \l,
SHOW DATABASES; y una consulta a una tabla del sistema.
Es un aviso temprano: lo administrativo es lo menos portátil.
El punto y coma no es decoración. Es lo que marca el final
de una orden. Si lo olvidas, el cliente no ejecuta nada: se queda esperando
a que termines, y muestra un símbolo distinto --# en PostgreSQL,
-> en MySQL-.
Parece que se colgó y no: está esperando. Escribe el punto y coma y pulsa Enter.
Cuatro atajos que se usan constantemente. Son los que evitan tener que recordar de memoria cómo se llamaba una tabla.
# PostgreSQL (psql)
\dt -- listar tablas
\d clientes -- ver como esta hecha una tabla
\? -- ayuda de los atajos
\q -- salir
# MySQL
SHOW TABLES;
DESCRIBE clientes;
exit
# SQL Server (sqlcmd)
SELECT name FROM sys.tables;
GO
EXITEl servicio no está corriendo o no escucha donde crees.
En Linux, sudo systemctl status postgresql. Es exactamente el
diagnóstico del curso de servidores: primero se comprueba que el servicio
está vivo.
Contraseña incorrecta, o el método de autenticación no admite lo que estás intentando.
En PostgreSQL eso se decide en el archivo pg_hba.conf, que
define quién puede conectarse, desde dónde y cómo. Es el archivo al que
apuntan casi todos los problemas de conexión.
pgAdmin, DBeaver o Azure Data Studio están muy bien y las vas a usar a diario.
El curso enseña la terminal porque está en todos los servidores: el día que tengas que mirar algo por SSH, no habrá ventanas. Quien entiende la terminal usa cualquier herramienta gráfica; al revés, no.
Se puede levantar cualquiera de los tres motores con Docker en un par de minutos, sin ensuciar el equipo.
Es cómodo si ya conoces Docker; si no, el instalador normal es el camino corto.
Escribes una orden, pulsas Enter y el cliente no responde: aparece otro símbolo distinto. ¿Qué pasa?
En Linux escribes psql y responde que no existe el rol con tu nombre. ¿Por qué?
-U postgres o
conectándose con sudo -u postgres psql.¿Por qué se escribe -p sin la contraseña al lado en MySQL?
Ya tienes una base de datos vacía. En la siguiente lección creas las tablas -y ahí aparece la mayor diferencia entre los tres motores: cómo se declara la columna que se numera sola-.
Siguiente: Tablas, tipos y el id automático
Continuar ← Qué es una base de datos y cuál elegir