Centro Nacional de Desarrollo e Investigación de Tecnologías Libres (CENDITEL)
CENDITEL, Mérida - Venezuela
Dirección de Desarrollo
Autor: Ing. Angelo Osorio
Fecha de Elaboración: 05-09-2017 (dd,mm,aaaa)
El símbolo al principio de una línea de comandos indica:
$ = hacer la sentencia como usuario
# = hacer la sentencia como administrador
- Instalar PostgreSQL
# apt-get install postgresql - Desinstalar PostgreSQL
# apt-get remove postgresql
- Iniciar Postgres Server:
# /etc/init.d/postgresql start# service postgresql start# systemctl start postgresql
- Detener Postgres Server:
# /etc/init.d/postgresql stop# service postgresql stop# systemctl stop postgresql
- Reiniciar Postgres Server:
# /etc/init.d/postgresql restart# service postgresql restart# systemctl restart postgresql
- Verificar el estado de Postgres Server:
# /etc/init.d/postgresql status# service postgresql status# systemctl status postgresql
- Entrar a postgreSQL:
# su postgres -c psql postgres
- El prompt cambiará al prefijo
postgres=#, ahora se debe ingresar el comando:postgres=# ALTER USER postgres WITH PASSWORD 'nuevacontraseña';
- Cerrar PostgreSQL
postgres=# \q
- Reiniciar PostgreSQL Server
# /etc/init.d/postgresql restart
- Cambiar al usuario postgres usando el comando
su postgrescomo superusuario:# su postgres
- Ingresar el comando
psql:postgres@user:/home/user$ psql
- El prefijo del prompt cambiará a
postgres=#, significando que se entró con éxito a PostgreSQL.
- Listar las base de datos
\l
- Cambiar a la base de datos nombre_base_de_datos
\c nombre_base_de_datos
- Listar las tablas
\d
- Describir los campos de la tabla nombre_tabla
\d+ nombre_tabla
- Salir de PostgreSQL
\q
- Crear una base de datos:
CREATE DATABASE nombre_base_de_datos;
- Cambiar a una base de datos:
\c nombre_base_de_datos
- Eliminar una base de datos:
DROP DATABASE nombre_base_de_datos;
Nota importante: Las bases de datos, tablas y datos deben ir en minúsculas siempre.
- Crear una tabla vacía:
CREATE TABLE nombre_tabla;
- Crear una tabla con atributos:
CREATE TABLE nombre_tabla (campo1 VARCHAR(30) NOT NULL UNIQUE, campo2 SERIAL NOT NULL UNIQUE PRIMARY KEY);
- Modificar el nombre de una tabla:
ALTER TABLE nombre_tabla RENAME TO nombre_nuevo_tabla;
- Vaciar una tabla;
TRUNCATE TABLE nombre_tabla;
- Eliminar una tabla:
DROP TABLE nombre_tabla;
- Agregar un campo:
ALTER TABLE nombre_tabla ADD nombre_campo tipo_atributo restricción_atributo;
- Modificar un campo:
ALTER TABLE nombre_tabla ALTER COLUMN nombre_campo TYPE tipo_atributo;
- Eliminar un campo:
ALTER TABLE nombre_tabla DROP COLUMN nombre_campo;
- Campos No nulos:
- Agregar la restricción no nulo al campo:
ALTER TABLE nombre_tabla ALTER COLUMN nombre_campo SET NOT NULL;
- Eliminar la restricción no nulo al campo:
ALTER TABLE nombre_tabla ALTER COLUMN nombre_campo SET NOT NULL;
- Agregar la restricción no nulo al campo:
- Campos Únicos:
- Agregar la restricción único al campo (o campos):
ALTER TABLE nombre_tabla ADD CONSTRAINT MyUniqueConstraint UNIQUE(column1, column2...);
- Eliminar la restricción único al campo(s):
ALTER TABLE nombre_tabla DROP CONSTRAINT MyUniqueConstraint;
- Agregar la restricción único al campo (o campos):
- Llaves primarias:
- Agregar una llave primaria:
ALTER TABLE nombre_tabla ADD PRIMARY KEY (MyPrimaryKey);
- Eliminar una llave primaria:
ALTER TABLE nombre_tabla DROP CONSTRAINT MyPrimaryKey;}
- Agregar una llave primaria:
- Llaves foráneas:
- Agregar una llave primaria:
ALTER TABLE nombre_tabla ADD CONSTRAINT FK_nombre_tabla_nombreforaneo FOREIGN KEY (nombreforaneo) REFERENCES nombre_tabla_enlazada(nombre_campo_referenciado);
- Agregar una llave primaria:
- Crear usuario:
CREATE USER usuario WITH PASSWORD 'contraseña';
- Eliminar usuario:
DROP USER usuario;
- Asignarle rol de superusuario a un usuario:
ALTER ROLE usuario WITH SUPERUSER;
- Agregar un registro:
INSERT INTO nombre_tabla (campo1, campo2, campo3, campo4) VALUES ('Valor 1', 2, NULL, 'Valor 4');
- Consultar todos los registros de una tabla:
SELECT * FROM nombre_tabla;
- Consultar solo registros de campos específicos:
SELECT campo1, campo2 FROM nombre_tabla;
- Consultar todos los registros de una tabla donde:
SELECT * FROM nombre_tabla WHERE campo='Restricción';
- Consultar solo registros de campos específicos donde:
SELECT campo1, campo2 FROM nombre_tabla WHERE campo='Restricción';
- Consultar datos ordenados por un campo:
SELECT * FROM nombre_tabla ORDER BY campo;
- Modificar un registro:
UPDATE nombre_tabla SET campo1='Valor1', campo2=2 WHERE campo2='Dato';
- Eliminar un registro:
DELETE FROM nombre_tabla WHERE campo1='Dato';
Para exportar una base de datos desde PostgreSQL se utiliza el comando:
$ pg_dump -U username -W -h host basename > basename.sql
Detalles de los argumentos del comando:
- $ pg_dump Declara que se exportará una base de datos de PostgreSQL
- -U username Se refiere al usuario propietario de la base de datos o el usuario postgres
- -W Parámetro para solicitar el password del usuario antes especificado
- -h 127.0.0.1 Indica la dirección IP del host a donde se conectará
- basename Nombre de la base de datos que se va a exportar
- basename.sql Indica dónde se va a guardar el archivo exportado
- La base de datos que se quiere respaldar se llama entidades
- La base de datos está en un servidor local
- El usuario propietario de la base de datos es antares
- Se quiere guardar el archivo en la carpeta del servidor con el nombre respaldo Por lo tanto, el comando a utilizar será:
$ pg_dump -U antares -W -h localhost entidades > /var/www/html/respaldo.sql- Para importar una base de datos en PostgreSQL, primero hay que crear una vacía para llenarla con las tablas:
postgres=# CREATE DATABASE nombre_base;
- Importar el archivo sql:
$ psql -U username -W -h host nombre_base < dump_base.sql
Explicando paso a paso:
- $ psql Declara que se importará una base de datos usando PostgreSQL
- -U username Se refiere al usuario propietario de la base de datos o el usuario postgres
- -W Parámetro para solicitar el password del usuario antes especificado
- -h 127.0.0.1 Indica la dirección IP del host a donde se conectará
- nombre_base Nombre de la base de datos que se va a exportar
- < dump_base.sql Indica desde dónde se va a obtener el archivo a importar
Si se quisiera importar la base de datos que se exportó en el punto anterior, se usaría el siguiente comando:
$ psql -U postgres -W -h localhost nombre_base < dump_base.sql