MySQL Create Table Exercises: Создайте таблицу job_history и убедитесь, что столбец employee_id не будет содержать повторяющихся значений во время вставки, а job_id содержит значения, которые существуют в таблице jobs
MySQL Создать Таблицы: Упражнение-14 с Решением
14. Напишите оператор SQL для создания таблицы job_history, включающей столбцы employee_id, start_date, end_date, job_id и Department_id, и убедитесь, что столбец employee_id не содержит повторяющихся значений во время вставки, а столбец внешнего ключа job_id содержит только те значения, которые существуют в таблице заданий.
Вот структура таблицы заданий;
+ ------------ + -------------- + ------ + ----- + -------- - + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Extra | + ------------ + -------------- + ------ + ----- + -------- - + ------- + | JOB_ID | Варчар (10) | НЕТ | PRI | | | | JOB_TITLE | Варчар (35) | НЕТ | | NULL | | | MIN_SALARY | десятичное число (6,0) | ДА | | NULL | | | MAX_SALARY | десятичное число (6,0) | ДА | | NULL | | + ------------ + -------------- + ------ + ----- + -------- - + ------- +
Пример решения:
CREATE TABLE job_history (
EMPLOYEE_ID decimal(6,0) NOT NULL PRIMARY KEY,
START_DATE date NOT NULL,
END_DATE date NOT NULL,
JOB_ID varchar(10) NOT NULL,
DEPARTMENT_ID decimal(4,0) DEFAULT NULL,
FOREIGN KEY (job_id) REFERENCES jobs(job_id)
)ENGINE=InnoDB;
Позвольте выполнить вышеупомянутый код в командной строке MySQL 5.6
Вот структура таблицы:
mysql> DESC job_history; + --------------- + -------------- + ------ + ----- + ----- ---- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Extra | + --------------- + -------------- + ------ + ----- + ----- ---- + ------- + | EMPLOYEE_ID | десятичное число (6,0) | НЕТ | PRI | NULL | | | START_DATE | дата | НЕТ | | NULL | | | END_DATE | дата | НЕТ | | NULL | | | JOB_ID | Варчар (10) | НЕТ | MUL | NULL | | | DEPARTMENT_ID | десятичный (4,0) | ДА | | NULL | | + --------------- + -------------- + ------ + ----- + ----- ---- + ------- + 5 рядов в наборе (0,02 сек)
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущая: напишите оператор SQL для создания таблицы стран, включая столбцы country_id, country_name и region_id, и убедитесь, что комбинация столбцов country_id и region_id будет уникальной.
Далее: напишите оператор SQL, чтобы создать таблицу сотрудников, включая столбцы employee_id, first_name, last_name, email, phone_number hire_date, job_id, зарплату, комиссию, manager_id и Department_id, и убедитесь, что столбец employee_id не содержит повторяющихся значений в то время столбцы вставки и внешнего ключа, объединенные столбцами отдела_ид и менеджера_идентификатора, содержат только те уникальные значения комбинации, какие комбинации существуют в таблице отделов.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования