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

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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


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{{"Создание таблицы сотрудников в PostgreSQL"}} postgresql/col_text -.-> lab-551115{{"Создание таблицы сотрудников в PostgreSQL"}} postgresql/key_primary -.-> lab-551115{{"Создание таблицы сотрудников в PostgreSQL"}} end

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

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

Таблица 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 должен быть автоинкрементным первичным ключом.
  2. Столбец phone_number должен быть уникальным.
  3. Столбец email не должен допускать значения NULL.
  4. Столбец employee_id должен быть внешним ключом, ссылающимся на таблицу employees.
  5. Выполните SQL-команды с помощью psql.

Примеры

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

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)

Подсказки

  • Используйте оператор CREATE TABLE для создания таблицы.
  • Используйте тип данных SERIAL для столбца contact_id, чтобы автоматически генерировать уникальные целочисленные значения.
  • Используйте ограничение (constraint) PRIMARY KEY для определения первичного ключа.
  • Используйте ограничение (constraint) UNIQUE для обеспечения того, чтобы столбец phone_number содержал уникальные значения.
  • Используйте ограничение (constraint) NOT NULL для обеспечения того, чтобы столбец email не содержал значения NULL.
  • Используйте ограничение (constraint) 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 (не null).

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