кодесурса

PostgreSQL Create Table: создайте таблицу, чтобы один из столбцов содержал уникальные значения, а комбинация двух других ссылается на комбинацию столбцов другой таблицы.

script1adsense2code
script1adsense3code

14. Напишите оператор SQL, чтобы создать таблицу сотрудников, включая employee_id, first_name, last_name, email, phone_number hire_date, job_id, зарплату, комиссию, manager_id и департамент_id, и убедитесь, что в столбце employee_id не было повторяющихся значений на тот момент столбцов вставки и внешнего ключа, объединенных столбцами отдела_ид и менеджера_идентификатора, содержат только те уникальные значения комбинации, которые существуют в таблице отделов.

Предположим структуру отделов таблицы ниже.


Indexes:
    "departments_pkey" PRIMARY KEY, btree (department_id, manager_id)

Пример решения:

Код:

CREATE TABLE IF NOT EXISTS employees ( 
EMPLOYEE_ID decimal(6,0) NOT NULL PRIMARY KEY, 
FIRST_NAME varchar(20) DEFAULT NULL, 
LAST_NAME varchar(25) NOT NULL, 
EMAIL varchar(25) NOT NULL, 
PHONE_NUMBER varchar(20) DEFAULT NULL, 
HIRE_DATE date NOT NULL, 
JOB_ID varchar(10) NOT NULL, 
SALARY decimal(8,2) DEFAULT NULL, 
COMMISSION_PCT decimal(2,2) DEFAULT NULL, 
MANAGER_ID decimal(6,0) DEFAULT NULL, 
DEPARTMENT_ID decimal(4,0) DEFAULT NULL, 
FOREIGN KEY(DEPARTMENT_ID,MANAGER_ID) 
REFERENCES  departments(DEPARTMENT_ID,MANAGER_ID)
);

Выход:

 postgres = # СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ сотрудников (
postgres (# EMPLOYEE_ID decimal (6,0) NOT NULL ПЕРВИЧНЫЙ КЛЮЧ,
postgres (# FIRST_NAME varchar (20) DEFAULT NULL,
postgres (# LAST_NAME varchar (25) NOT NULL,
postgres (# EMAIL varchar (25) НЕ NULL,
postgres (# PHONE_NUMBER varchar (20) DEFAULT NULL,
postgres (# HIRE_DATE дата NOT NULL,
postgres (# JOB_ID varchar (10) NOT NULL,
postgres (# SALARY decimal (8,2) DEFAULT NULL,
postgres (# COMMISSION_PCT decimal (2,2) DEFAULT NULL,
postgres (# MANAGER_ID decimal (6,0) DEFAULT NULL,
postgres (# DEPARTMENT_ID decimal (4,0) DEFAULT NULL,
postgres (# FOREIGN KEY (DEPARTMENT_ID, MANAGER_ID)
postgres (# ССЫЛКИ отделов (DEPARTMENT_ID, MANAGER_ID));
СОЗДАТЬ СТОЛ

Вот команда, чтобы увидеть структуру созданной таблицы:

postgres=# \d employees
                       Table "public.employees"
     Column     |         Type          |            Modifiers
----------------+-----------------------+---------------------------------
 employee_id    | numeric(6,0)          | not null
 first_name     | character varying(20) | default NULL::character varying
 last_name      | character varying(25) | not null
 email          | character varying(25) | not null
 phone_number   | character varying(20) | default NULL::character varying
 hire_date      | date                  | not null
 job_id         | character varying(10) | not null
 salary         | numeric(8,2)          | default NULL::numeric
 commission_pct | numeric(2,2)          | default NULL::numeric
 manager_id     | numeric(6,0)          | default NULL::numeric
 department_id  | numeric(4,0)          | default NULL::numeric
Indexes:
    "employees_pkey" PRIMARY KEY, btree (employee_id)
Foreign-key constraints:
    "employees_department_id_fkey" FOREIGN KEY (department_id, manager_id) REFERENCES departments(department_id, manager_id)

Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

Предыдущий: Напишите оператор SQL для создания таблицы job_history, включая employee_id, start_date, end_date, job_id и Department_id, и убедитесь, что столбец employee_id не содержит повторяющихся значений во время вставки, а столбец внешнего ключа job_id содержит только те значения, которые существуют в таблице заданий.
Далее: напишите SQL-оператор для создания таблицы сотрудников, включая столбцы employee_id, first_name, last_name, email, phone_number hire_date, job_id, оклад, комиссию, manager_id и Department_id, и убедитесь, что в столбце employee_id нет повторяющихся значений в время вставки, а столбец внешнего ключа отдел_идентификатора, ссылающийся на столбец отдела_для таблицы отделов, может содержать только те значения, которые существуют в таблице отделов, а другой столбец внешнего ключа job_id, на который ссылается столбец job_id таблицы заданий, может содержать только те значения, которые существуют в таблице заданий.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code