Создание таблицы сотрудников в PostgreSQL

PostgreSQLBeginner
Практиковаться сейчас

Введение

В этом испытании вам предстоит спроектировать и создать таблицу employee_contacts в PostgreSQL для хранения контактных данных сотрудников. Важной задачей является обеспечение целостности данных путем выбора правильных типов данных и установки необходимых ограничений. Работа будет проходить в подготовленной среде, где уже имеется таблица employees.

Ваша задача заключается в подключении к базе данных PostgreSQL от имени пользователя postgres с помощью утилиты psql и выполнении SQL-команд для создания таблицы employee_contacts. Таблица должна содержать столбцы contact_id (первичный ключ с автоинкрементом), employee_id (внешний ключ, ссылающийся на таблицу employees), phone_number (уникальное значение) и email (обязательное поле, не допускающее пустых значений).

Создание таблицы сотрудников

Спроектируйте таблицу для хранения контактных данных сотрудников, обеспечив надежность данных с помощью корректных типов и ограничений.

Таблица employees уже создана для вас. Если вы её не обнаружили, вы можете создать её самостоятельно, используя следующую команду:

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

Задачи

  • Создайте таблицу с именем employee_contacts в PostgreSQL. Таблица должна включать столбцы: contact_id (первичный ключ), employee_id (внешний ключ, ссылающийся на таблицу employees), phone_number (уникальный) и email (не может быть NULL).
  • Убедитесь, что столбец employee_id корректно ссылается на столбец employee_id в таблице employees.

Требования

  1. Столбец contact_id должен быть первичным ключом с автоматическим приращением (auto-incrementing).
  2. Столбец phone_number должен содержать только уникальные значения.
  3. Столбец email не должен допускать значений NULL.
  4. Столбец employee_id должен быть внешним ключом (foreign key), ссылающимся на таблицу employees.
  5. Выполните SQL-команды через интерфейс psql.

Примеры

Таблицы employees и employee_contacts должны иметь следующую структуру:

Структура таблиц сотрудников и контактов
                                          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)

Подсказки

  • Используйте оператор CREATE TABLE для создания таблицы.
  • Используйте тип данных SERIAL для столбца contact_id, чтобы автоматически генерировать уникальные целочисленные значения.
  • Используйте ограничение PRIMARY KEY для определения первичного ключа.
  • Используйте ограничение UNIQUE, чтобы гарантировать уникальность данных в столбце phone_number.
  • Используйте ограничение NOT NULL, чтобы запретить пустые значения в столбце email.
  • Используйте ограничение FOREIGN KEY для установления связи между столбцом employee_id в таблице employee_contacts и столбцом employee_id в таблице employees.
  • Не забудьте подключиться к базе данных PostgreSQL с помощью команды sudo -u postgres psql перед выполнением SQL-запросов.
✨ Проверить решение и практиковаться

Резюме

В этом испытании вы научились создавать таблицу PostgreSQL под названием employee_contacts в заданной среде. Процесс включал проектирование структуры таблицы со столбцами contact_id (первичный ключ, автоинкремент), employee_id (внешний ключ к таблице employees), phone_number (уникальность) и email (обязательность заполнения).

Для решения задачи потребовалось подключиться к базе данных PostgreSQL под пользователем postgres через psql и выполнить SQL-команды для настройки таблицы и её ограничений, что обеспечило целостность данных и правильные связи между таблицами.