кодесурса
«MySQL

Упражнения по созданию таблицы в MySQL: создайте таблицу сотрудников и убедитесь, что столбец employee_id должен быть уникальным, и установите внешние ключи, ссылающиеся на другую таблицу, с помощью действий ON DELETE CASCADE и ON UPDATE RESTRICT

script1adsense2code
script1adsense3code

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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code