Cómo instalar y utilizar PostgreSQL en Ubuntu 20.04

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Instalación de PostgreSQL
  • Paso 2: Uso de roles y bases de datos de PostgreSQL
    1. Cambiar a la cuenta de postgres
    2. Cómo acceder a un indicador de Postgres sin cambiar de cuenta
  • Paso 3: creación de un nuevo rol
  • Paso 4: Creación de una nueva base de datos
  • Paso 5: Apertura de un mensaje de Postgres con el nuevo rol
  • Paso 6: Creación y eliminación de tablas
  • Paso 7: agregar, consultar y eliminar datos en una tabla
  • Paso 8: Agregar y eliminar columnas de una tabla
  • Paso 9: Actualizar datos en una tabla
  • Conclusión
  • Los sistemas de gestión de bases de datos relacionales son un componente clave de muchos sitios web y aplicaciones. Ofrecen una forma estructurada de almacenar, organizar y acceder a la información.

    PostgreSQL , o Postgres, es un sistema de gestión de bases de datos relacionales que proporciona una implementación del lenguaje de consulta SQL . Cumple con los estándares y tiene muchas funciones avanzadas, como transacciones confiables y concurrencia sin bloqueos de lectura.

    Esta guía muestra cómo instalar Postgres en un servidor Ubuntu 20.04. También proporciona algunas instrucciones para la administración general de bases de datos.

    Implemente una base de datos PostgreSQL con un solo clic mediante las bases de datos administradas de DigitalOcean . Deje que DigitalOcean se concentre en el escalado, el mantenimiento y las actualizaciones de su base de datos.

    Prerrequisitos

    Para seguir este tutorial, necesitará un servidor Ubuntu 20.04 que haya sido configurado siguiendo nuestra guía de configuración inicial del servidor para Ubuntu 20.04 . Después de completar este tutorial de requisitos previos, su servidor debe tener un usuario no root con permisos sudo y un firewall básico.

    Paso 1: Instalación de PostgreSQL

    Los repositorios predeterminados de Ubuntu contienen paquetes Postgres, por lo que puedes instalarlos usando el aptsistema de empaquetado.

    Si no lo ha hecho recientemente, actualice el índice de paquetes local de su servidor:

    1. sudo apt update

    Luego, instale el paquete Postgres junto con un -contribpaquete que agrega algunas utilidades y funcionalidades adicionales:

    1. sudo apt install postgresql postgresql-contrib

    Asegúrese de que el servidor esté ejecutándose mediante el systemctl startcomando:

    1. sudo systemctl start postgresql.service

    Ahora que el software está instalado y funcionando, podemos repasar cómo funciona y en qué se diferencia de otros sistemas de gestión de bases de datos relacionales que pueda haber utilizado.

    Paso 2: Uso de roles y bases de datos de PostgreSQL

    De forma predeterminada, Postgres utiliza un concepto denominado “roles” para gestionar la autenticación y la autorización. En algunos aspectos, son similares a las cuentas normales de estilo Unix, pero Postgres no distingue entre usuarios y grupos y, en su lugar, prefiere el término más flexible “rol”.

    Tras la instalación, Postgres se configura para utilizar la autenticación entre pares , lo que significa que asocia los roles de Postgres con una cuenta de sistema Unix/Linux correspondiente. Si existe un rol dentro de Postgres, un nombre de usuario Unix/Linux con el mismo nombre puede iniciar sesión como ese rol.

    El procedimiento de instalación creó una cuenta de usuario denominada postgres que está asociada con el rol predeterminado de Postgres. Para usar Postgres, puede iniciar sesión en esa cuenta.

    Hay algunas formas de utilizar esta cuenta para acceder a Postgres.

    Cambiar a la cuenta de postgres

    Cambie a la cuenta postgres en su servidor escribiendo:

    1. sudo -i -u postgres

    Ahora puede acceder al indicador de PostgreSQL inmediatamente escribiendo:

    1. psql

    Desde allí, usted es libre de interactuar con el sistema de gestión de bases de datos según sea necesario.

    Salga del indicador de PostgreSQL escribiendo:

    1. q

    Esto lo llevará de regreso al postgressímbolo del sistema de Linux.

    Cómo acceder a un indicador de Postgres sin cambiar de cuenta

    También puedes ejecutar el comando que desees con la cuenta postgressudo directamente con .

    Por ejemplo, en el último ejemplo, se le indicó que accediera al indicador de Postgres cambiando primero al usuario postgres y luego ejecutando psqlpara abrir el indicador de Postgres. Podría hacer esto en un solo paso ejecutando el comando único psqlcomo usuario postgres con sudo, de esta manera:

    1. sudo -u postgres psql

    Esto le permitirá iniciar sesión directamente en Postgres sin el bashshell intermediario.

    Nuevamente, puedes salir de la sesión interactiva de Postgres escribiendo:

    1. q

    Muchos casos de uso requieren más de una función de Postgres. Continúe leyendo para aprender a configurarlas.

    Paso 3: creación de un nuevo rol

    Actualmente, solo tiene configurado el rol postgres dentro de la base de datos. Puede crear nuevos roles desde la línea de comandos con el createrolecomando. La --interactivebandera le solicitará el nombre del nuevo rol y también le preguntará si debe tener permisos de superusuario.

    Si ha iniciado sesión con la cuenta de postgres , puede crear un nuevo usuario escribiendo:

    1. createuser --interactive

    Si, en cambio, prefieres utilizar sudopara cada comando sin cambiar de cuenta normal, escribe:

    1. sudo -u postgres createuser --interactive

    El script le solicitará algunas opciones y, en función de sus respuestas, ejecutará los comandos Postgres correctos para crear un usuario según sus especificaciones.

    OutputEnter name of role to add: sammyShall the new role be a superuser? (y/n) y

    Puedes obtener más control si pasas algunas banderas adicionales. Consulta las opciones en la manpágina:

    1. man createuser

    Su instalación de Postgres ahora tiene un nuevo usuario, pero aún no ha agregado ninguna base de datos. La siguiente sección describe este proceso.

    Paso 4: Creación de una nueva base de datos

    Otra suposición que el sistema de autenticación de Postgres hace de forma predeterminada es que para cualquier rol utilizado para iniciar sesión, ese rol tendrá una base de datos con el mismo nombre a la que puede acceder.

    Esto significa que si el usuario que creaste en la última sección se llama sammy , ese rol intentará conectarse a una base de datos que también se llama “sammy” de manera predeterminada. Puedes crear la base de datos adecuada con el createdbcomando.

    Si ha iniciado sesión como cuenta de postgres , deberá escribir algo como:

    1. createdb sammy

    Si, en cambio, prefieres usar sudofor each command sin cambiar de tu cuenta normal, deberás escribir:

    1. sudo -u postgres createdb sammy

    Esta flexibilidad proporciona múltiples rutas para crear bases de datos según sea necesario.

    Paso 5: Apertura de un mensaje de Postgres con el nuevo rol

    Para iniciar sesión con autenticación de pares, necesitará un usuario de Linux con el mismo nombre que su rol y base de datos de Postgres.

    Si no tienes un usuario Linux disponible, puedes crear uno con el addusercomando. Tendrás que hacerlo desde una cuenta que no sea rootsudo y que tenga privilegios (es decir, que no hayas iniciado sesión como usuario de postgres ):

    1. sudo adduser sammy

    Una vez que esta nueva cuenta esté disponible, puedes cambiarla y conectarte a la base de datos escribiendo:

    1. sudo -i -u sammy
    2. psql

    O puedes hacer esto en línea:

    1. sudo -u sammy psql

    Este comando iniciará sesión automáticamente, asumiendo que todos los componentes se hayan configurado correctamente.

    Si desea que su usuario se conecte a una base de datos diferente, puede hacerlo especificando la base de datos de esta manera:

    1. psql -d postgres

    Una vez que haya iniciado sesión, puede verificar su información de conexión actual escribiendo:

    1. conninfo
    OutputYou are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".

    Esto es útil si se conecta a bases de datos no predeterminadas o con usuarios no predeterminados.

    Paso 6: Creación y eliminación de tablas

    Ahora que sabe cómo conectarse al sistema de base de datos PostgreSQL, puede aprender algunas tareas básicas de administración de Postgres.

    La sintaxis básica para crear tablas es la siguiente:

    CREATE TABLE table_name (    column_name1 col_type (field_length) column_constraints,    column_name2 col_type (field_length),    column_name3 col_type (field_length));

    Como puede ver, estos comandos le dan un nombre a la tabla y luego definen las columnas, así como el tipo de columna y la longitud máxima de los datos del campo. También puede agregar restricciones de tabla para cada columna de manera opcional.

    Puede obtener más información sobre cómo crear y administrar tablas en Postgres aquí.

    Para fines demostrativos, cree la siguiente tabla:

    1. CREATE TABLE playground (
    2. equip_id serial PRIMARY KEY,
    3. type varchar (50) NOT NULL,
    4. color varchar (25) NOT NULL,
    5. location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
    6. install_date date
    7. );

    Este comando creará una tabla que incluye el inventario de los equipos de juegos. La primera columna de la tabla contendrá los números de identificación de los equipos del serialtipo , que es un número entero que se incrementa automáticamente. Esta columna también tiene la restricción de PRIMARY KEYque los valores que contiene deben ser únicos y no nulos.

    Las dos líneas siguientes crean columnas para el equipo typey colorrespectivamente, ninguna de las cuales puede estar vacía. La línea que sigue a estas crea una locationcolumna y una restricción que requiere que el valor sea uno de los ocho valores posibles. La última línea crea una datecolumna que registra la fecha en la que instaló el equipo.

    Para dos de las columnas ( equip_idy install_date), el comando no especifica una longitud de campo. La razón es que algunos tipos de datos no requieren una longitud definida porque la longitud o el formato están implícitos.

    Puedes ver tu nueva tabla escribiendo:

    1. d
    Output                  List of relations Schema |          Name           |   Type   | Owner --------+-------------------------+----------+------- public | playground              | table    | sammy public | playground_equip_id_seq | sequence | sammy(2 rows)

    Aquí está tu tabla de juegos, pero también hay algo llamado playground_equip_id_seqque es del tipo sequence. Esta es una representación del serialtipo que le diste a tu equip_idcolumna. Esto lleva un registro del siguiente número en la secuencia y se crea automáticamente para columnas de este tipo.

    Si desea ver solo la tabla sin la secuencia, puede escribir:

    1. dt
    Output          List of relations Schema |    Name    | Type  | Owner --------+------------+-------+------- public | playground | table | sammy(1 row)

    Con una tabla a mano, usémosla para practicar la gestión de datos.

    Paso 7: agregar, consultar y eliminar datos en una tabla

    Ahora que tiene una tabla, puede insertar algunos datos en ella. Por ejemplo, agregue una diapositiva y un columpio llamando a la tabla que desea agregar, nombrando las columnas y luego proporcionando datos para cada columna, de esta manera:

    1. INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2017-04-28');
    2. INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2018-08-16');

    Debe tener cuidado al ingresar los datos para evitar algunos errores comunes. Por un lado, no coloque los nombres de las columnas entre comillas, pero los valores de las columnas que ingrese sí deben estar entre comillas.

    Otra cosa que hay que tener en cuenta es que no se debe introducir un valor para la equip_idcolumna, ya que este se genera automáticamente cada vez que se añade una nueva fila a la tabla.

    Recupere la información que ha agregado escribiendo:

    1. SELECT * FROM playground;
    Output equip_id | type  | color  | location  | install_date ----------+-------+--------+-----------+--------------        1 | slide | blue   | south     | 2017-04-28        2 | swing | yellow | northwest | 2018-08-16(2 rows)

    Aquí puedes ver que tu equip_idformulario se ha completado correctamente y que todos los demás datos se han organizado correctamente.

    Si el tobogán del patio de juegos se rompe y tienes que quitarlo, también puedes eliminar la fila de tu mesa escribiendo:

    1. DELETE FROM playground WHERE type = 'slide';

    Consulta la tabla nuevamente:

    1. SELECT * FROM playground;
    Output equip_id | type  | color  | location  | install_date ----------+-------+--------+-----------+--------------        2 | swing | yellow | northwest | 2018-08-16(1 row)

    Tenga en cuenta que la slidefila ya no es parte de la tabla.

    Paso 8: Agregar y eliminar columnas de una tabla

    Después de crear una tabla, puede modificarla agregando o eliminando columnas. Agregue una columna para mostrar la última visita de mantenimiento de cada equipo escribiendo lo siguiente:

    1. ALTER TABLE playground ADD last_maint date;

    Si vuelve a ver la información de su tabla, verá que se agregó la nueva columna pero no se ingresaron datos:

    1. SELECT * FROM playground;
    Output equip_id | type  | color  | location  | install_date | last_maint ----------+-------+--------+-----------+--------------+------------        2 | swing | yellow | northwest | 2018-08-16   | (1 row)

    Si descubre que su equipo de trabajo utiliza una herramienta independiente para realizar un seguimiento del historial de mantenimiento, puede eliminar la columna escribiendo:

    1. ALTER TABLE playground DROP last_maint;

    Esto elimina la last_maintcolumna y todos los valores que se encuentran en ella, pero deja todos los demás datos intactos.

    Paso 9: Actualizar datos en una tabla

    Hasta ahora, ha aprendido cómo agregar registros a una tabla y cómo eliminarlos, pero este tutorial aún no ha cubierto cómo modificar las entradas existentes.

    Puede actualizar los valores de una entrada existente consultando el registro que desea y configurando la columna con el valor que desea utilizar. Puede consultar el swingregistro (esto coincidirá con cada columpio de su tabla) y cambiar su color a red. Esto podría ser útil si le dio una mano de pintura al columpio:

    1. UPDATE playground SET color = 'red' WHERE type = 'swing';

    Puede verificar que la operación fue exitosa consultando los datos nuevamente:

    1. SELECT * FROM playground;
    Output equip_id | type  | color | location  | install_date ----------+-------+-------+-----------+--------------        2 | swing | red   | northwest | 2018-08-16(1 row)

    Como puedes ver, la diapositiva ahora está registrada como roja.

    Conclusión

    Ya tiene instalado PostgreSQL en su servidor Ubuntu 20.04. Si desea obtener más información sobre PostgreSQL y cómo usarlo, le recomendamos que consulte las siguientes guías:

    • Una comparación de los sistemas de gestión de bases de datos relacionales
    • Practica la ejecución de consultas con SQL
    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion