Postgres es una base de datos relacional de código abierto. Tiene muchas funciones avanzadas como rendimiento de clase empresarial, disparadores, atomicidad, consistencia, aislamiento, durabilidad y muchas otras funciones que harán de Postgres una buena opción para muchas aplicaciones complejas.
Instalación de PostgreSQL:
En este tutorial, descargamos la última versión de Postgres del sitio web oficial de PostgreSQL https://www.postgresql.org/download/linux/ubuntu/
PostgreSQL también está disponible en el repositorio de Ubuntu de forma predeterminada. Al usar el repositorio apt PostgreSQL desde su sitio oficial, podemos instalar una versión específica de nuestra elección.
Para usar el repositorio apt, sigue estos pasos:
Elige tu versión de Ubuntu
Mi versión de Ubuntu es Bionic (18.04)
Cree el repositorio de archivos PostgreSQL.
nano /etc/apt/sources.list.d/pgdg.list
y agregue una línea para el repositorio en pgdg.list
deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
Si usa una versión de Ubuntu diferente a la 18.04 (Bionic), reemplace la palabra 'bionic' con el nombre de la versión de Ubuntu utilizada. Importe la clave de firma del repositorio y actualice las listas de paquetes
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
Ahora instale el último servidor PostgreSQL en nuestro sistema Ubuntu usando los siguientes comandos.
sudo apt-get install postgresql postgresql-contrib
Después de la instalación, el servidor PostgreSQL se iniciará automáticamente.
Comprobar el estado del servicio PostgreSQL
systemctl status postgresql
Ahora verifique la conexión PostgreSQL y la versión del servidor PostgreSQL.
sudo -u postgres psql -c "SELECT version();"
Esto se conectará a PostgreSQL usando psql y dará la versión del servidor
version
-----------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 11.4 (Ubuntu 11.4-1.pgdg18.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, 64-bit
Uso de roles y métodos de autenticación de PostgreSQL
PostgreSQL utiliza el concepto de la función de permiso de acceso a la base de datos. Se puede aplicar un rol a un usuario de la base de datos o a un grupo de usuarios de la base de datos.
PostgreSQL admite múltiples métodos de autenticación.
Los siguientes son los métodos de autenticación más utilizados de PostgreSQL.
1. Confianza
Los métodos de autenticación de confianza se pueden definir en pg_hba.conf; con este método, el rol puede conectarse con una base de datos sin contraseña.
2.Contraseña
Un rol puede conectarse con la base de datos al probar la contraseña.
3.Ident
Los métodos de autenticación de identidad solo funcionan en conexiones TCP/IP.
4. Compañero
Métodos de autenticación de pares utilizados solo para conexión local.
El archivo pg_hba.conf define los métodos de autenticación del cliente. podemos cambiar los métodos de autenticación editando los siguientes archivos.
nano /etc/postgresql/11/main/pg_hba.conf
En este archivo, PostgreSQL usa el método de autenticación de pares de forma predeterminada. podemos cambiar los métodos de autenticación cambiando los pares a otros métodos.
En el momento de la instalación de PostgreSQL, el usuario de Postgres se creará de manera predeterminada, Postgres es el superusuario de la base de datos de PostgreSQL, de manera similar, el usuario raíz en el servidor de la base de datos de MYSQL. este usuario 'postgres' también crea en ubuntu.
Conectarse a PostgreSQL
El siguiente comando para conectarse con PostgreSQL.
sudo -i -u postgres
Ahora podemos conectarnos a un indicador de Postgres como MySQL escribiendo el siguiente comando.
psql
Obtendremos el siguiente mensaje y estamos listos para ejecutar consultas de PostgreSQL en él.
Tenga en cuenta que podemos conectarnos directamente al servidor de la base de datos simplemente escribiendo el siguiente comando.
sudo -u postgres psql
Creando roles y base de datos en PostgreSQL
Ya tenemos el rol de postgres en la base de datos, ahora creamos un nuevo rol usando los siguientes comandos.
[email protected]:/home# sudo -u postgres createuser --interactive
Enter name of role to add: sohan
Shall the new role be a superuser? (y/n) y
Podemos enumerar los roles de usuario existentes usando el siguiente comando.
postgres=# \du
o ejecute el siguiente comando desde el indicador de postgres.
SELECT rolname FROM pg_roles;
Podemos eliminar cualquier rol de usuario existente usando el comando DROP ROLE.
postgres=# DROP ROLE sohan;
DROP ROLE
Creando una base de datos PostgreSQL
Aquí podemos iniciar sesión como la cuenta de postgres y ejecutar el siguiente comando.
[email protected]:~$ createdb dummu
o simplemente podemos ejecutar los siguientes comandos con usuarios normales de ubuntu.
sudo -u postgres createdb dummu
Inicie sesión en postgres prompt usando el nuevo rol
ejecute directamente desde la terminal de su sistema para crear un nuevo usuario.
sudo adduser sohan
Después de crear un nuevo usuario en el sistema, simplemente ejecute
sudo -u sohan psql
o escribe el siguiente comando
sudo -i -u sohan
psql
Podemos conectarnos a una base de datos diferente simplemente proporcionando un nombre de base de datos como
psql -d dummu
Después de conectarnos a la base de datos anterior, podemos obtener la información de la base de datos con un simple comando
dummu=> \conninfo
output
You are connected to database "dummu" as user "sohan" via socket in "/var/run/postgresql" at port "5432"UPDATE dummu SET password = 'postgres' where username = 'sohan';
Creando tablas en PostgreSQL
Después de crear los roles, la base de datos y crear una conexión con el servidor de la base de datos, ahora crearemos una tabla.
CREATE TABLE dummu(user_id serial PRIMARY KEY,username VARCHAR (50) UNIQUE NOT NULL, password VARCHAR (50) NOT NULL, email VARCHAR (355) UNIQUE NOT NULL, created_on TIMESTAMP NOT NULL, last_login TIMESTAMP);
El comando anterior creará una nueva tabla ficticia como MySQL, podemos verificar esta nueva tabla escribiendo
\d
Aquí, también veremos la tabla dummu_user_id_seq, que realizará un seguimiento del siguiente número en la secuencia.
Si solo queremos mostrar el nombre de la tabla sin la secuencia, ejecute el siguiente comando.
\dt
Esto solo mostrará la tabla dummu
sohan=> \dt
Output
List of relations
Schema | Na | Type | Owner
--------+------------+-------+-------
public | dummu | table | soha
Agregar datos a la tabla
Ahora agregaremos datos en la tabla dummu escribiendo,
Insert into dummu(user_id,username,password,email,created_on,last_login) values (1,'sohan','123456','[email protected]','2019-06-24 11:11:11','2019-06-24 11:11:11');
Ahora buscaremos datos de la tabla dummu,
SELECT * FROM dummu;
Eliminar columna de la tabla
Ahora eliminemos datos de esta tabla
DELETE FROM dummu WHERE email = '[email protected]';
Alterar tabla PostgreSQL
De manera similar, podemos modificar la tabla usando alter query as
ALTER TABLE dummu DROP email;
Esto eliminará el campo de correo electrónico de la tabla dummu.
verificarlo por
SELECT * FROM dummu;
output:-
user_id | username | password | created_on | last_login
---------+----------+----------+---------------------+---------------------
1 | sohan | 123456 | 2019-06-24 11:11:11 | 2019-06-24 11:11:11
Actualización de datos en una tabla
Ahora veremos cómo actualizar datos en una tabla
ejecute el siguiente comando para actualizar la contraseña en la tabla dummu
UPDATE dummu SET password = 'postgres' where username = 'sohan';
verifique los cambios simplemente escribiendo
SELECT * FROM dummu;
output
user_id | username | password | created_on | last_login
---------+----------+----------+---------------------+---------------------
1 | sohan | postgres | 2019-06-24 11:11:11 | 2019-06-24 11:11:11
En resumen, en este tutorial aprendemos cómo instalar PostgreSQL, crear roles y bases de datos y comandos básicos de bases de datos.