Упражнения по созданию таблицы в MySQL: создайте таблицу сотрудников и убедитесь, что столбец employee_id должен быть уникальным, и установите внешние ключи, ссылающиеся на другую таблицу, с помощью действий ON DELETE CASCADE и ON UPDATE RESTRICT
MySQL Создать Таблицы: Упражнение 18 с Решением
18. Напишите оператор SQL для создания таблицы сотрудников, включая столбцы employee_id, first_name, last_name, job_id, salary, и убедитесь, что столбец employee_id не содержит повторяющихся значений во время вставки, а столбец внешнего ключа job_id, на который есть ссылки по столбцу job_id таблицы jobs, может содержать только те значения, которые существуют в таблице jobs. InnoDB Engine был использован для создания таблиц. Особенность этого оператора заключается в том, что ON DELETE CASCADE позволяет разрешать удалять записи в таблице сотрудников (дочерних), которые ссылаются на запись в таблице заданий (родительских), когда запись в родительской таблице удаляется и ON Действия ОБНОВЛЕНИЕ ОГРАНИЧЕНИЯ отклоняют любые обновления.
Предположим, что структура заданий таблицы и InnoDB Engine были использованы для создания заданий таблицы.
CREATE TABLE ЕСЛИ НЕ СУЩЕСТВУЕТ РАБОТ ( JOB_ID integer NOT NULL УНИКАЛЬНЫЙ ПЕРВИЧНЫЙ КЛЮЧ, JOB_TITLE varchar (35) NOT NULL DEFAULT '', MIN_SALARY десятичное число (6,0) ПО УМОЛЧАНИЮ 8000, MAX_SALARY десятичное число (6,0) DEFAULT NULL ) ДВИГАТЕЛЬ = InnoDB; + ------------ + -------------- + ------ + ----- + -------- - + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Extra | + ------------ + -------------- + ------ + ----- + -------- - + ------- + | JOB_ID | int (11) | НЕТ | PRI | NULL | | | JOB_TITLE | Варчар (35) | НЕТ | | | | | MIN_SALARY | десятичное число (6,0) | ДА | | 8000 | | | MAX_SALARY | десятичное число (6,0) | ДА | | NULL | | + ------------ + -------------- + ------ + ----- + -------- - + ------- +
Пример решения:
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,
JOB_ID INTEGER NOT NULL,
SALARY decimal(8,2) DEFAULT NULL,
FOREIGN KEY(JOB_ID)
REFERENCES jobs(JOB_ID)
ON DELETE CASCADE ON UPDATE RESTRICT
)ENGINE=InnoDB;
Позвольте выполнить вышеупомянутый код в командной строке MySQL 5.6
Вот структура таблицы:
mysql> сотрудники DESC; + ---------------- + -------------- + ------ + ----- + ---- ----- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Extra | + ---------------- + -------------- + ------ + ----- + ---- ----- + ------- + | EMPLOYEE_ID | десятичное число (6,0) | НЕТ | PRI | NULL | | | FIRST_NAME | Варчар (20) | ДА | | NULL | | | LAST_NAME | Варчар (25) | НЕТ | | NULL | | | Электронная почта | Варчар (25) | НЕТ | | NULL | | | PHONE_NUMBER | Варчар (20) | ДА | | NULL | | | HIRE_DATE | дата | НЕТ | | NULL | | | JOB_ID | Варчар (10) | НЕТ | | NULL | | | Заработная плата | десятичное число (8,2) | ДА | | NULL | | | COMMISSION_PCT | десятичный (2,2) | ДА | | NULL | | | MANAGER_ID | десятичное число (6,0) | ДА | | NULL | | | DEPARTMENT_ID | десятичный (4,0) | ДА | MUL | NULL | | + ---------------- + -------------- + ------ + ----- + ---- ----- + ------- + 11 рядов в наборе (0,09 сек)
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите оператор SQL для создания таблицы employee и убедитесь, что в столбце employee_id нет повторяющихся значений, и установите внешние ключи, ссылающиеся на другую таблицу, с помощью ON UPDATE CASCADE и ON DELETE RESTRICT.
Далее: напишите оператор SQL для создания табличных упражнений: создайте таблицу employee и убедитесь, что столбец employee_id должен быть уникальным, и установите внешние ключи, ссылающиеся на другую таблицу, с помощью действий ON DELETE SET NULL и ON UPDATE SET NULL
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования