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.
- 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.
- 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.
- ./psql base_datos < archivo_creador_tablas_y_campos.sql
- Ahora haremos los mismo con los datos, No con el archivo de restricciones resultante de la edición del paso 1!!.
- ./psql base_datos < archivo_con_datos.sql
- 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.
- ./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;