Comandos básicos psql en PostgreSQL

PostgreSQL es un poderoso sistema de base datos relacional, orientado a objetos y de código abierto. Además incluye por defecto psql que es el front-end basado en terminal de órdenes, el cual permite operar con PostgresSQL de forma interactiva.




Aunque circulan por Internet diferentes resúmenes de comandos, éste es muy completo y resulta especialmente útil cuando estas empezando con psql y en general con PostgreSQL. 


1. BASES DE DATOS


Crear nueva base de datos → createdb
Eliminar base de datos → dropdb
Listar BBDD existentes → psql -l

Conectarse a una base de datos usando psql:
psql -h servidor -U usuario -d base-datos

\l → Lista de las BBDD
\d → Describe la base de datos en uso
\c base-datos → Cambia a otra base de datos
\q ó Ctrl+D → Salir de la sesión




2. USUARIOS


Crear usuario →
CREATE USER nombre-usuario
Eliminar usuario → DROP USER nombre-usuario
Modificar usuario → ALTER USER nombre-usuario
Mostrar el usuario actual → SELECT USER

Revocar un permiso a un usuario → REVOKE UPDATE on Tabla (atributo) FROM usuario

Cambiar la contraseña de un usuario:
En terminal → psql -c "ALTER USER usuario WITH PASSWORD 'nueva-contraseña'"
Dentro de psql → ALTER USER usuario WITH PASSWORD 'nueva-contraseña';



3. ROLES


Crear un rol → CREATE role nombre-rol

Crear rol que puede crear roles y usuarios, logarse al inicio y con contraseña encriptada:
CREATE ROLE nombre_rol WITH LOGIN CREATEDB CREATEROLE ENCRYPTED PASSWORD;

Ver los roles existentes → SELECT rolname FROM pg_roles;
Cambiar a otro rol → SET ROLE nombre-rol;

Crear superusuario → CREATE ROLE nombre-usuario SUPERUSER;
Agregar un usuario a un rol → GRANT nombre-rol TO usuario
Añadir propiedades a un rol → GRANT propiedad1, propiedad2 ON tabla TO nombre-rol 



4. TABLAS


\dp \z → Lista privilegios sobre las tablas
\dt → Mostrar las tablas existentes
\d nombre-tabla → Mostrar de que tipo son las columnas de una tabla

Cambiar el propietario de una tabla:
ALTER TABLE nombre-tabla OWNER TO propietario-nuevo;

Renombrar columna de una tabla:
ALTER TABLE nombre-tabla RENAME COLUMB nombre-antiguo TO nombre-nuevo;

Borrar un registro de un tabla:
DELETE FROM nombre-tabla WHERE nombre-campo='nombre';

Modificar el tipo de dato de un atributo de la tabla:
ALTER TABLE nombre-tabla ALTER COLUMN nombre_columna TYPE tipo_dato;

Insertar un registro que contiene un campo array (multivalor) se hace con llaves:
INSERT INTO nombre-array VALUES ( 'campo' , '{val0,val1,val2' );

Entrar registro con un sólo valor en una posición del array de un campo:
INSERT INTO nombre-array( campo, valores[2]) VALUES ( 'valorA' , 'valorB');

Mostrar las dimensiones del array:
SELECT campo1, array_dims(campo_array) FROM nombre-tabla;

Actualizar un registro de una tabla:
UPDATE tabla SET campo='Nuevo-valor';

Conocer las propiedades de los campos de una tabla:
SELECT * FROM information_schema.columns WHERE table_name= 'nombre-de-tabla';

Modificar las propiedades de una columna de tipo varchar a tipo booleano:
ALTER TABLE nombre-tabla ALTER COLUMN nombre-columna SET DATA TYPE boolean USING nombre-columna::boolean;



5. ESQUEMAS


Mostrar el esquema actual → SHOW search_path;
Cambiar el esquema por defecto → SET search_path TO nombre-esquema;
Listar esquemas → \dn



6. SECUENCIAS


Crear una secuencia que empiece a contar desde mil:
CREATE SEQUENCE SEQ START 1000;

Borrar una secuenca → DROP SEQUENCE nombre-esquema.nombre-secuencia;

\ds → Lista las secuencias



7. FUNCIONES


Ejecutar una función  → SELECT nombre-funcion(parametros-si-hay)
Ejemplo eliminar una función  DROP FUNCTION public.prueba(i integer)
\df → Lista las funciones
\da → Lista las funciones de agregado

Saber a que esquema pertenece una función (ejemplo UPPER que ya viene integrada):
\df UPPER



8. FICHEROS


\i nombre-del-fichero-a-importar.sql → Importa y ejecuta el fichero desde psql
\g archivo → Ejecuta un archivo



9. VISTAS


Una vista, es una tabla lógica que permite consultar los datos de una o diversas tablas de una forma única y más práctica.

\dv → Lista las vistas



10. VARIOS


\di → Lista de los índices
\g ó ";" → Terminar sentencia
\p → Visualizar contenido memoria intermedia
\r → Vaciar contenido memoria intermedia
\p → Lee los datos en la memoria intermedia
\! → Ejecuta una orden de sistema operativo


Comentarios

Entradas populares