Упражнения по созданию таблицы MySQL: создайте таблицу сотрудников и убедитесь, что столбец employee_id не содержит повторяющихся значений, и установите внешние ключи, ссылающиеся на другую таблицу, с помощью ON UPDATE CASCADE и ON DELETE RESTRICT.
MySQL Создать Таблицы: Упражнение 17 с Решением
17. Напишите оператор SQL для создания таблицы сотрудников, включая столбцы employee_id, first_name, last_name, job_id, salary, и убедитесь, что столбец employee_id не содержит повторяющихся значений во время вставки, а также столбец внешнего ключа job_id, на который ссылаются по столбцу job_id таблицы jobs, может содержать только те значения, которые существуют в таблице jobs. InnoDB Engine был использован для создания таблиц. Особенность этого утверждения заключается в том, что действие ON UPDATE CASCADE позволяет выполнять обновление между таблицами, а действие ON DELETE RESTRICT отклоняет удаление. Действие по умолчанию - УДАЛИТЬ ОГРАНИЧЕНИЕ.
Предположим, что структура заданий таблицы и 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,
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)
REFERENCES departments(DEPARTMENT_ID),
FOREIGN KEY(JOB_ID)
REFERENCES jobs(JOB_ID)
)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,01 с)
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущая: напишите оператор SQL для создания табличных упражнений: создайте таблицу сотрудников, включая столбцы, и убедитесь, что столбец employee_id содержит только уникальное значение, и установите некоторые внешние ключи, ссылающиеся на другую таблицу.
Далее: напишите оператор SQL для создания таблицы сотрудников, включая столбцы employee_id, first_name, last_name, job_id, salary, и убедитесь, что столбец employee_id не содержит повторяющихся значений во время вставки, а столбец внешнего ключа job_id, на который есть ссылки по столбцу job_id таблицы jobs, может содержать только те значения, которые существуют в таблице jobs.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования