Crear una tabla en PostgreSQL: una guía con ejemplos

El artículo proporciona una descripción completa de los métodos existentes para crear una tabla en PostgreSQL.

PostgreSQL es uno de los sistemas de administración de bases de datos relacionales de código abierto más eficientes y avanzados. Como su nombre lo enfatiza, el sistema cumple con el estándar SQL, lo que lo hace muy popular entre las empresas que realizan operaciones de datos complejas y masivas.

El sistema utiliza el control de paralelismo de múltiples versiones (MVCC), que permite que múltiples usuarios realicen de manera eficiente múltiples tareas simultáneamente.

Índice

    Cómo crear tablas en PostgreSQL

    La creación de una tabla en PostgreSQL implica una operación básica que se puede realizar mediante la declaración CREATE TABLE de Postgres y varias herramientas de GUI de PostgreSQL. En este artículo, vamos a explorar varias formas de crear una tabla en PostgreSQL.

    Contenido
    1. Cree una tabla usando la instrucción CREATE TABLE de PostgreSQL
    1.1 Usando la opción ME GUSTA
    1.2 Crear una tabla temporal
    2. Crea una nueva tabla desde la línea de comando
    3. Cree una tabla de PostgreSQL usando dbForge Studio para PostgreSQL
    4. Restricciones de la tabla de Postgres
    5. Cómo usar la declaración CREATE TABLE AS de PostgreSQL
    6. El parámetro OR REPLACE en la declaración CREATE TABLE

    La necesidad de un DBMS confiable y eficiente se está volviendo extremadamente aguda con el aumento en la cantidad de datos que las empresas necesitan almacenar y procesar en la actualidad. Como base de datos relacional, PostgreSQL almacena datos en tablas que contienen datos relacionados estructurados, como listas de productos, sus precios, cantidad, etc., y permite que los usuarios de la base de datos modifiquen fácilmente estos datos. Si es nuevo en PostgreSQL y busca más información, puede comenzar aprendiendo cómo descargar e instalar PostgreSQL en Windows.

    ¿Qué es una tabla en Postgres?

    Una tabla en PostgreSQL es un objeto de base de datos que organiza y almacena datos en un formato estructurado: en filas y columnas. Las tablas de PostgreSQL le permiten acceder y recuperar información rápidamente.

    Cree una tabla usando la declaración CREATE TABLE de PostgreSQL

    La sintaxis básica de la instrucción CREATE TABLE de PostgreSQL es la siguiente:

    CREATE TABLE [IF NOT EXISTS] table_name (
       column1 datatype(length) column_contraint,
       column2 datatype(length) column_contraint,
       column3 datatype(length) column_contraint,
       table_constraints
    );

    En esta sintaxis:

    • Utilice la declaración IF NOT EXISTS para asegurarse de que no exista una tabla con el mismo nombre en la base de datos. Si ya existe, PostgreSQL no le permitirá continuar y omitir el comando.
    • Ingrese los nombres de las columnas, separados por comas, y especifique los tipos de datos para las columnas, las longitudes de las columnas y las restricciones de las columnas.
    • Especifique restricciones de tabla como PRIMARY KEY y FOREIGN KEY.

    Vamos a crear cuentas mesa:

    CREATE TABLE accounts (
    	user_id serial PRIMARY KEY,
    	username VARCHAR ( 50 ) UNIQUE NOT NULL,
    	password VARCHAR ( 50 ) NOT NULL,
    	email VARCHAR ( 255 ) UNIQUE NOT NULL,
    	created_on TIMESTAMP NOT NULL,
            last_login TIMESTAMP
    );

    Donde:

    • La restricción NOT NULL hace que la columna NO tome valores NULL
    • La restricción ÚNICA garantiza que la columna no contenga valores duplicados

    Usando la opción ME GUSTA

    PostgreSQL le permite crear una tabla vacía basada en la definición de otra tabla, incluidos los atributos de columna y los índices definidos en la tabla de origen. Para copiar la estructura de la tabla, use LIKE PostgreSQL:

    CREATE TABLE new_table_name (LIKE old_table_name INCLUDING ALL);

    Crear una tabla temporal

    PostgreSQL también le permite crear tablas temporales.

    La tabla temporal de PostgreSQL es una tabla no permanente a la que solo se puede acceder hasta el final de la sesión de la base de datos. A continuación, la tabla se eliminará automáticamente.

    Utilice la instrucción CREATE TEMPORARY TABLE para crear una tabla PostgreSQL temporal:

    CREATE TEMPORARY TABLE temp_table_name(
       column_list
    );

    Vamos a crear ciudad_temp mesa:

    CREATE TEMPORARY TABLE city_temp (
          city VARCHAR(80),
          street VARCHAR(80)
       )
      ON COMMIT DELETE ROWS;

    Aquí, al agregar ON COMMIT DELETE ROWS, definimos la eliminación de datos de la tabla temporal al final de cada transacción.

    Crear una nueva tabla desde la línea de comando

    SQL Shell (psql) es una interfaz de PostgreSQL basada en la línea de comandos. Le permite ingresar, editar y ejecutar consultas y declaraciones, así como ver sus resultados.

    Para crear una tabla de Postgres desde la línea de comandos, primero ejecute SQL Shell. A continuación, conéctese a la base de datos y ejecute la instrucción CREATE TABLE.

    CREATE TABLE table_name (column_1 datatype, column_2 datatype);

    En la captura de pantalla anterior, ejecutamos la declaración CREATE TABLE nuevamente y obtenemos un mensaje de error que indica que la tabla ya existe.

    Intentemos obtener una lista de todas las tablas en la base de datos. Para hacer esto, ejecute el siguiente comando:

    d

    Como puedes ver, en libros de texto la tabla fue creada exitosamente.

    Los métodos anteriores para crear una nueva tabla en PostgreSQL son bastante simples. Si tiene un conocimiento básico de SQL, puede dominarlo rápidamente. Sin embargo, los desarrolladores de bases de datos y DBA tienen que realizar cientos de tareas similares todos los días, y estas tareas deben realizarse rápidamente y sin errores.

    ¿La solución? Aquí es donde las herramientas profesionales de desarrollo de bases de datos se vuelven extremadamente útiles. Consideremos una de las herramientas más convenientes: dbForge Studio para PostgreSQL. Con él, las tareas de creación de tablas de PostgreSQL se pueden realizar con un par de clics y una codificación manual mínima.

    Cree una tabla PostgreSQL usando dbForge Studio para PostgreSQL

    dbForge Studio para PostgreSQL es una solución de última generación diseñada para ofrecer todas las herramientas que necesita para desarrollar y administrar una base de datos PostgreSQL en un solo IDE. El estudio cuenta con una interfaz fácil de usar que permite que las personas sin experiencia en la base de datos manejen las tareas de la base de datos de manera efectiva.

    Con dbForge Studio para PostgreSQL, puede crear fácilmente una tabla en un editor de SQL mientras se beneficia enormemente de la verificación automática de sintaxis, la finalización de código sensible al contexto y las notificaciones de ejecución.

    Para crear una tabla usando dbForge Studio para PostgreSQL:

    1. Inicie Studio y conéctese al servidor.

    2. En el Explorador de bases de datos, haga clic con el botón derecho en la base de datos en la que desea crear la tabla y haga clic en SQL nuevo.

    3. En el editor de SQL que se abre, ingrese la instrucción CREATE TABLE.

    En el proceso, dbForge Studio para PostgreSQL sugerirá un autocompletado sensible al contexto para que no tenga que ingresar todo el código manualmente; simplemente haga clic para insertar la oración en su sintaxis. También verificará su código y resaltará los errores tipográficos. Para obtener información rápida sobre los objetos en la secuencia de comandos, simplemente coloque el cursor sobre ellos.

    Restricciones de la tabla de Postgres

    Las restricciones son reglas o restricciones especiales para los datos de la tabla. PostgreSQL admite restricciones tanto en tablas como en columnas. Las restricciones de tabla definen restricciones que se aplican a toda la tabla, mientras que una restricción de columna afecta solo a una columna específica.

    PostgreSQL admite las siguientes restricciones de columna: CLAVE PRINCIPAL, NO NULO, ÚNICO, COMPROBAR, CLAVE EXTERNA.

    Considere algunos de ellos con más detalle. Ya hemos mencionado las restricciones UNIQUE y NOT NULL.

    CLAVE PRINCIPAL la restricción indica que la columna se utiliza para identificar de forma única el registro en la tabla. Por lo tanto, al crear una hoja de cálculo de PostgreSQL, es importante recordar que las columnas de CLAVE PERSONAL solo pueden contener valores únicos (no duplicados) y no pueden tener NULL.

    Consideremos el ejemplo del operador CREATE TABLE de Postgres con PRIMARY KEY.

    CREATE TABLE orders ( 
      order_id integer NOT NULL,
      order_date date,
      quantity integer,
      notes varchar(200),
      CONSTRAINT orders_pk PRIMARY KEY (order_id)
    );

    Tenga en cuenta que no puede crear una tabla con varias claves principales porque entra en conflicto con la naturaleza de la clave principal; en su lugar, puede tener una clave principal que contenga varias columnas (clave principal compuesta).

    CREATE TABLE product_tags
    ( product_id INTEGER NOT NULL,
      tag_id SERIAL NOT NULL,
      production_date VARCHAR(20),
      tag_peni VARCHAR(20),
      item_number VARCHAR(20),
      PRIMARY KEY(product_id, tag_id)
    );

    CLAVE EXTERNA Las restricciones se utilizan para vincular tablas en una base de datos. Una clave externa contiene una columna o grupo de columnas en una tabla que hacen referencia a una columna o columnas de la clave principal en otra tabla. En otras palabras, la restricción FOREIGN KEY especifica que los valores de una columna deben coincidir con los valores de otra tabla. La integridad de referencia de la base de datos se mantiene de esta forma sencilla.

    CHEQUE Las restricciones se utilizan para asegurarse de que los valores en una columna cumplan con ciertos requisitos. Las restricciones CHECK usan una expresión booleana para evaluar los valores antes de que se inserten en una tabla. Si el valor no pasa la validación, PostgreSQL no lo insertará y emitirá un error de violación de restricción.

    CREATE TABLE prices
    ( id serial PRIMARY KEY,
      product_name VARCHAR (50),
      product_description VARCHAR (50),
      price numeric CHECK(price > 0)
    );

    Aquí nos aseguramos de que el valor del precio sea mayor que cero.

    Cómo usar la instrucción CREATE TABLE AS de PostgreSQL

    Para crear una nueva tabla de PostgreSQL basada en los resultados de la consulta, puede usar la instrucción CREATE AS. En otras palabras, la declaración CREATE TABLE AS de Postgres crea una nueva tabla y la completa con los datos devueltos por la consulta.

    Consulte la sintaxis básica para CREAR TABLA COMO:

    CREATE TABLE new_table_name
    AS query;

    Si desea asegurarse de que su tabla aún no existe, puede usar SI NO EXISTE operador. En este caso, la sintaxis es la siguiente:

    CREATE TABLE IF NOT EXISTS new_table_name
    AS query;

    Veamos ahora un ejemplo de trabajo:

    CREATE TABLE thrillers AS
    SELECT
        movie_id,
        movie_title,
        production_year,
        imbd_rating
    FROM
        movies
    INNER JOIN movie_category USING (movie_id)
    WHERE
        category_id = 5;

    El parámetro OR REPLACE para la instrucción CREATE TABLE

    El parámetro OR REPLACE en la declaración CREATE TABLE se usa en bases de datos MariaDB para cambiar la definición de una tabla existente. Entonces puede reemplazar la mesa vieja por una nueva. En lenguaje sencillo, si usa la declaración CREATE OR REPLACE TABLE y la tabla ya existe, no habrá errores: la tabla anterior se eliminará y se creará una nueva.

    Sin embargo PostgreSQL no soporta la opción OR REPLACE en la instrucción CREATE TABLE. Postgres OR REPLACE funciona bien con las declaraciones CREATE VIEW y CREATE FUNCTION, pero no funciona para CREATE TABLE.

    En su lugar, puede utilizar el siguiente método.

    Digamos que tienes una mesa:

    CREATE TABLE t_table (
      pk INT PRIMARY KEY,
      txt VARCHAR(255)
      );

    Ahora queremos reemplazarlo con otra mesa. Para hacer esto, creamos una nueva tabla con la misma estructura, insertamos sus valores, cambiamos los nombres de la tabla anterior y la nueva, y luego reiniciamos la tabla anterior:

    CREATE TABLE "table_new" AS TABLE t_table;
    INSERT INTO "table_new" (pk, txt) VALUES (1,'1');
    ALTER TABLE t_table RENAME TO "table_old";
    ALTER TABLE "table_new" RENAME TO t_table;
    DROP TABLE "table_old";

    Conclusión

    En este artículo, revisamos métodos populares para crear una nueva tabla en una base de datos PostgreSQL y encontramos que dbForge Studio para PostgreSQL ofrece funcionalidad avanzada para realizar la tarea de la manera más conveniente y rentable.

    Descargue la versión de prueba de 30 días de dbForge Studio para PostgreSQL y pruébelo usted mismo.

    Artículos de interés

    Subir