PostgreSQL Logo

PostgreSQL

Postgresql creado en la Universidad de Berkley, es un sistema gestor de bases de datos relacional, que utiliza el puerto 5432 para su comunicación con los sistemas.

Los podemos descargar desde aquí, instalación que recomiendo pese a estar en los repositorios de Ubuntu.

Su usuario principal es postgres, del cuál nos pedirá una contraseña durante la instalación.

Tenemos varios programas para utilizar postgres:

  • En modo terminal psql
  • En modo gráfico pgadminIII
  • En modo web pgpadmin

Para trabajar en modo terminal deberemos acudir a la carpeta donde están los archivos binarios del sistema gestor de bases de datos en este caso:

  • /opt/PostgresSQL/9.3/bin

Una vez situados allí, tenemos acceso a todos los archivos ejecutables de Postgres, ahora solo nos falta cambiar de usuario, estos binarios únicamente los puede ejecutar el usuario “postgres”

Crear una base de datos

./createdb Nombre_base_datos

Entrar en la base de datos

./psql Nombre_base_datos

Crear tablas

CREATE TABLE nombre_tabla (

nombrecampo tipo restriccionescampo,

nombrecampo2 tipo restriccionescampo);

Borrar y modificar tablas

DROP TABLE nombre_tabla; (para crear)

ALTER TABLE nombre_tabla; (para modificar)

El prompt de postgres

Cuando el prompt se muestre con un igual (=) esto querrá decir que la sentencia que hemos introducido estará acabada, pero si nos muestra un guión (-) el prompt nos esta diciendo que la sentencia no esta acabada.

Creando restricciones

Clave primaria:

  • constraint persona_pk primary key (dni);

Clave foránea:

  • constraint dept2pers_fk foreign key (boss) REFERENCES persona (dni);

Como importar y exportar bases de datos.

Importar

En muchas bases de datos tendremos abrazadas mortales, por el momento sabemos que hay de varios tipos y que pueden ser muy habituales, para proceder de una manera correcta lo haremos de la siguiente manera, tendremos dos archivos por un lado las sentencias SQL que nos crean las tablas y las restricciones y por otro lado los datos.

  1. Primero abrimos el archivo que nos crea las tablas y restricciones con un editor de texto, de este separemos las creación de las tablas y los campos de las restricciones, algo que no será muy díficil ya que las restricciones siempre están al final del archivo, normalmente en formato SQL.
  2. Una vez hayamos separado esto último en dos archivos, utilizaremos únicamente el de la creación de tablas y campos y procederemos a la recuperación de la base de datos.
    1. ./psql base_datos < archivo_creador_tablas_y_campos.sql
  3. Ahora haremos los mismo con los datos, No con el archivo de restricciones resultante de la edición del paso 1!!.
    1. ./psql base_datos < archivo_con_datos.sql
  4. Cuando ya tengamos nuestra base de datos con las tablas y sus campos, y con todos los datos introducidos podemos pasar a la introducción de las restricciones.
    1. ./psql base_datos < archivo_con_restricciones.sql

Ya habremos recuperado nuestra base de datos con todos sus restricciones.

Exportar

De momento conoceremos la manera sencilla de exportación que no es más que realizar una copia de la base de datos entera, con tablas, campos, restricciones y datos.

./pg_dump base_datos > /home/usuario/fichero_backup.sql

Solo el esquema ./pg_dump -s base_datos > /home/usuario/fichero_backup_schema.sql

Solo los datos ./pg_dump -a base_datos > /home/usuario/fichero_backup_datos.sql

Backup all database
/usr/pgsql-10/bin/pg_dumpall -U postgres -h 127.0.0.1 -w > /tmp/postgresql_backup.sql
Restore all database
psql -f db.out postgres

Realizar consultas SQL

Todas las consultas SQL tienen el mismo formato:

SELECT – lista de campos (campo1,campo2,campo3)

AS – Alias para los campos

FROM – tablas a las que accedemos (también podemos utilizar alias para las tablas, tablaraul r, donde r sería el alias)

WHERE – Condiciones

Ejemplo consulta SQL

SELECT nom_regio AS regio, nom_pais AS pais

FROM public.region r, public.pais p

WHERE r.idregio = p.idpais;

SELECT nom_departament AS dpto, nom |’_’| cognoms AS cap

FROM departaments d, empleats e

WHERE d.idcap = e.idempleat;

Queremos conocer los datos de los empleados cuyo nombre  es Ferran

SELECT *

FROM empleats

WHERE nom LIKE ‘Ferran’; (LIKE) Solo con varchar, realizar búsquedas más finas

o

WHERE nom LIKE ‘f%’; % es un comodín para las búsquedas, nos dará los datos de todos los empleados que empieza su nombre por F

Quiero que me liste los atributos de los empleados cuyo nombre es formado por 4 letras

SELECT *

FROM empleats

WHERE nom LIKE ‘____’; (_ ) Comodín para el cáracter

Quiero saber todos los datos de las personas que cobren entre 1000€ y 2000€

SELECT *

FROM personas

WHERE sou Between 1000 AND 2000;

o

WHERE sou>=1000 AND sou<=2000;

Entradas recomendadas