Créer la table des employés dans PostgreSQL

PostgreSQLBeginner
Pratiquer maintenant

Introduction

Dans ce défi, vous allez concevoir et créer une table employee_contacts dans PostgreSQL afin de stocker les coordonnées des employés. L'objectif est de garantir l'intégrité des données en utilisant les types de données et les contraintes adéquats. Vous évoluerez dans un environnement où la table employees est déjà présente.

Votre mission consiste à vous connecter à la base de données PostgreSQL en tant qu'utilisateur postgres via l'outil psql, puis à exécuter les commandes SQL nécessaires pour générer la table employee_contacts. Cette table doit comporter les colonnes contact_id (clé primaire, auto-incrémentée), employee_id (clé étrangère référençant la table employees), phone_number (unique) et email (non nul).

Créer la table des employés

Concevez une table pour stocker les coordonnées des employés, en veillant à l'intégrité des données par le choix judicieux des types et des contraintes.

La table employees a été créée pour vous. Si elle n'apparaît pas, vous pouvez la générer à l'aide de la commande suivante :

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

Tâches

  • Créer une table nommée employee_contacts dans PostgreSQL. La table doit inclure les colonnes contact_id (clé primaire), employee_id (clé étrangère référençant la table employees), phone_number (unique) et email (non nul).
  • S'assurer que la colonne employee_id référence correctement la colonne employee_id de la table employees.

Exigences

  1. La colonne contact_id doit être une clé primaire auto-incrémentée.
  2. La colonne phone_number doit être unique.
  3. La colonne email ne doit pas autoriser de valeurs NULL.
  4. La colonne employee_id doit être une clé étrangère pointant vers la table employees.
  5. Exécuter les commandes SQL via psql.

Exemples

Les tables employees et employee_contacts doivent présenter la structure suivante :

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)

Conseils

  • Utilisez l'instruction CREATE TABLE pour créer la table.
  • Utilisez le type de données SERIAL pour la colonne contact_id afin de générer automatiquement des valeurs entières uniques.
  • Utilisez la contrainte PRIMARY KEY pour définir la clé primaire.
  • Utilisez la contrainte UNIQUE pour garantir que la colonne phone_number contient des valeurs uniques.
  • Utilisez la contrainte NOT NULL pour empêcher les valeurs NULL dans la colonne email.
  • Utilisez la contrainte FOREIGN KEY pour établir la relation entre la colonne employee_id de la table employee_contacts et celle de la table employees.
  • N'oubliez pas de vous connecter à la base de données PostgreSQL avec sudo -u postgres psql avant de lancer vos commandes SQL.
✨ Vérifier la solution et pratiquer

Résumé

Dans ce défi, l'objectif était de créer une table PostgreSQL nommée employee_contacts dans un environnement spécifique. Cela impliquait la conception d'une structure de table incluant un contact_id (clé primaire auto-incrémentée), un employee_id (clé étrangère liée à la table employees), un phone_number (unique) et un email (obligatoire).

La solution a nécessité une connexion à PostgreSQL via psql sous l'identité de l'utilisateur postgres, suivie de l'exécution des commandes SQL pour définir la table et ses contraintes, assurant ainsi la cohérence des données et les relations entre les tables.