En esta guia les mostrare como instalar, configurar y usar el motor de base de datos postgressql en linux, especificamente Linux Mint, compatible con Ubuntu o cualquier distro basada en Debian.
PostgreSQL es un sistema gestor de base de datos relacional orientado a objetos y libre, el desarrollo de postgresql no es manejado por ninguna empresa, es dirigido por un grupo de desarrolladores que trabajan de forma desinteresada, altruista, libre y apollados por organizaciones comerciales.
Instalacion
La instalacion es simple, usando apt-get:
sudo apt-get update sudo apt-get install postgresql postgresql-contrib
El paquete postgresql contiene el sistema gestor de base de datos y el paquete postgresql-contrib contiene algunas herramientas utiles adicionales.
Una vez instalado postgresql ya podemos empezar a hacer uso.
Para empezar a usar postgresql bastara con escribir el comando: psql
Usuarios
Los usuarios de postgresql se manejan mediante el uso de roles, y estos estan ligados al sistema linux. por default al instalar postgresql se crea un usuario deniminado postgres, debemos cambiar de usuario en la terminal usando el comando:
sudo -i -u postgres
El cual nos pedira el password del usuario actual y despues cambiaremos al usuario postgres, para entrar a la consola de postgresql escribiremos:
psql
El cual abrira la consola para poder escribir comandos de postgresql, podemos ver en que usuario estamos logeados usando el comando de postgresql:
\conninfo
La version corta:
\c
El comando nos devolvera, la base de datos a la que estamos conectados (por default a la base de datos postgres), el usuario del que estamos logeados, el ejecutable y el puerto.
Para salir del modo interactivo de posgresql usamos el comando:
\q
Para crear usuario usamos el comando:
createuser --interactive
Al usar el comando createuser se nos preguntaran: el nombre del usuario, si el usuario tendra permiso de superusuario, si el usuario podra crear base de datos, si el usuario podrea crear roles.
Como podemos al agregar usuaurio no se asigna un password, por lo que para asignar un password debemos logearnos en el sistema postgres con el nuevo usuario y ejecutar el comando:
\password
Nos solicitara introducir el password y una confirmacion y hecho esto la cuenta estara protegida con password.
Base de datos
Para crear una base de datos, se usa el comando de linux, createdb:
createdb mydb
Tambien podemos usar el comando SQL:
CREATE DATABASE mysql;
Y para eliminar una base de datos:
DROP DATABASE mydb;
Si estamos conectados a la misma base de datos que vamos a eliminar estaremos en un error, debemos cambiar de base de datos para poder eliminar la base de datos objetivo.
Para acceder al gestor de postgres:
psql -d mydb
Recordemos que mydb es el nombre de la nueva base de datos, podemos usar el parametro -d para especificar que usaremos una base de datos diferente de postgres.
Si ya estamos en el gestor de postgresql y queremos cambiar a otra base de datos usamos:
\connect mydb
Para mostrar las base de datos que tenemos en el servidor actual:
\list
Tambien la version corta:
\l
Tablas
Una vez que hemos creado y conectado una base de datos procederemos a crear una tabla:
CREATE TABLE persona ( id serial PRIMARY KEY, name varchar (50), lastname varchar (50), created_at timestamp );
Creamos una tabla con 4 campos,
- id: tipo serial (similar a auto_increment en mysql)
- name y lastname tipo varchar(50)
- created_at tipo timespan (fecha y hora)
El siguiente comando muestra las tablas y las relaciones:
\d
Para ver solo las tablas usaremos:
\dt
Y para describir una tabla usaremos
\d nombre_tabla
O tambien
\d+ nombre_tabla
Para insertar datos en la tabla que ya hemos creado usaremos el comando insert de SQL:
insert into persona (name,lastname,created_at) values ('Agustin','Ramos',NOW());
Para mostrar o seleccionar usaremos el comando select de SQL:
select * from persona;
Para eliminar registros de la tabla simplemente usamos el comando delete de SQL:
delete from persona;
Para actualizar un registro tambien hacemos uso del comado update de SQL:
update persona set name='otro' where id=1;
Conclusion
Como podemos ver usar postgresql es relativamente facil, como ya tengo practica con MySQL no se me dificulta mucho postgresql.
Tambien hay que destacar que las cosas como los select, insert,update, delete, drop, create son lo mismo tanto para MySQL y PostgreSQL o cualquier otro gestor que soporte SQL.