Crear Tabla de Empleados en PostgreSQL

PostgreSQLPostgreSQLBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este desafío, diseñarás y crearás una tabla employee_contacts en PostgreSQL para almacenar los detalles de contacto de los empleados, asegurando la integridad de los datos a través de tipos de datos y restricciones (constraints) apropiados. Trabajarás dentro de un entorno preconfigurado donde ya existe una tabla employees.

Tu tarea implica conectarte a la base de datos PostgreSQL como el usuario postgres usando psql y luego ejecutar comandos SQL directamente para crear la tabla employee_contacts. La tabla debe incluir columnas para contact_id (clave primaria, autoincrementable), employee_id (clave foránea que hace referencia a la tabla employees), phone_number (único) y email (no nulo).


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL postgresql(("PostgreSQL")) -.-> postgresql/PostgreSQLGroup(["PostgreSQL"]) postgresql/PostgreSQLGroup -.-> postgresql/table_init("Create Basic Table") postgresql/PostgreSQLGroup -.-> postgresql/col_text("Add Text Column") postgresql/PostgreSQLGroup -.-> postgresql/key_primary("Set Primary Key") subgraph Lab Skills postgresql/table_init -.-> lab-551115{{"Crear Tabla de Empleados en PostgreSQL"}} postgresql/col_text -.-> lab-551115{{"Crear Tabla de Empleados en PostgreSQL"}} postgresql/key_primary -.-> lab-551115{{"Crear Tabla de Empleados en PostgreSQL"}} end

Crear Tabla de Empleados

Diseña una tabla para almacenar los detalles de contacto de los empleados, asegurando la integridad de los datos a través de tipos de datos y restricciones (constraints) apropiados.

La tabla employees ha sido creada para ti. Si no la ves, puedes crearla usando el siguiente comando:

CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL
);

Tareas

  • Crea una tabla llamada employee_contacts en PostgreSQL. La tabla debe incluir columnas para contact_id (clave primaria), employee_id (clave foránea que hace referencia a la tabla employees), phone_number (único) y email (no nulo).
  • Asegúrate de que la columna employee_id haga referencia correctamente a la columna employee_id en la tabla employees.

Requisitos

  1. La columna contact_id debe ser una clave primaria autoincrementable.
  2. La columna phone_number debe ser única.
  3. La columna email no debe permitir valores NULL.
  4. La columna employee_id debe ser una clave foránea que haga referencia a la tabla employees.
  5. Ejecuta los comandos SQL usando psql.

Ejemplos

Las tablas employees y employee_contacts deben tener la siguiente estructura:

Structure of employees and contacts tables
                                          Table "public.employees"
   Column    |         Type          | Collation | Nullable |                    Default
-------------+-----------------------+-----------+----------+------------------------------------------------
 employee_id | integer               |           | not null | nextval('employees_employee_id_seq'::regclass)
 first_name  | character varying(50) |           |          |
 last_name   | character varying(50) |           |          |
Indexes:
    "employees_pkey" PRIMARY KEY, btree (employee_id)
Referenced by:
    TABLE "employee_contacts" CONSTRAINT "employee_contacts_employee_id_fkey" FOREIGN KEY (employee_id) REFERENCES employees(employee_id)
                                      Table "public.employee_contacts"
     Column     |          Type          | Collation | Nullable |                     Default
----------------+------------------------+-----------+----------+--------------------------------------------------
 contact_id     | integer                |           | not null | nextval('employee_contacts_contact_id_seq'::regclass)
 employee_id    | integer                |           |          |
 phone_number   | character varying(20)  |           |          |
 email          | character varying(100) |           | not null |
Indexes:
    "employee_contacts_pkey" PRIMARY KEY, btree (contact_id)
    "employee_contacts_phone_number_key" UNIQUE CONSTRAINT, btree (phone_number)
Foreign-key constraints:
    "employee_contacts_employee_id_fkey" FOREIGN KEY (employee_id) REFERENCES employees(employee_id)

Sugerencias

  • Usa la sentencia CREATE TABLE para crear la tabla.
  • Usa el tipo de dato SERIAL para la columna contact_id para generar automáticamente valores enteros únicos.
  • Usa la restricción (constraint) PRIMARY KEY para definir la clave primaria.
  • Usa la restricción (constraint) UNIQUE para asegurar que la columna phone_number contenga valores únicos.
  • Usa la restricción (constraint) NOT NULL para asegurar que la columna email no contenga valores NULL.
  • Usa la restricción (constraint) FOREIGN KEY para crear una relación de clave foránea entre la columna employee_id en la tabla employee_contacts y la columna employee_id en la tabla employees.
  • Recuerda conectarte a la base de datos PostgreSQL usando sudo -u postgres psql antes de ejecutar los comandos SQL.
✨ Revisar Solución y Practicar

Resumen

En este desafío, la tarea consiste en crear una tabla de PostgreSQL llamada employee_contacts dentro de un entorno especificado. Esto implica diseñar la estructura de la tabla con columnas para contact_id (clave primaria, autoincrementable), employee_id (clave foránea que hace referencia a la tabla employees), phone_number (único) y email (no nulo).

La solución requiere conectarse a la base de datos PostgreSQL como el usuario postgres usando psql y luego ejecutar los comandos SQL necesarios directamente para definir la tabla y sus restricciones (constraints), asegurando la integridad de los datos y las relaciones adecuadas entre las tablas.