Введение
В этом проекте вы научитесь добавлять различные ограничения в схему базы данных, включая первичные ключи, внешние ключи, уникальные ограничения, значения по умолчанию и ограничения проверки. В конце этого проекта у вас будет лучше понимание того, как проектировать и обеспечивать соблюдение правил целостности данных в реляционной базе данных.
👀 Предварительный просмотр

🎯 Задачи
В этом проекте вы научитесь:
- Как создать составной первичный ключ на таблице
salgrade - Как указать внешний ключ на поле
deptnoв таблицеemp - Как использовать уникальное ограничение для предотвращения дублирования в поле
enameв таблицеemp - Как установить значение по умолчанию для поля
commв таблицеemp - Как использовать ограничение проверки для предотвращения ввода дат приема на работу позже 28 февраля 2022 года в поле
hiredateв таблицеemp
🏆 Достижения
После завершения этого проекта вы сможете:
- Разобраться в важности ограничений целостности данных в проектировании базы данных
- Реализовать различные типы ограничений в базе данных MySQL
- Применить наилучшие практики для поддержания качества и согласованности данных
- Отлаживать и устранять проблемы, связанные с ограничениями базы данных
Запустите сервер MySQL и импортируйте базу данных
В этом шаге вы научитесь запускать службу MySQL и импортировать базу данных personnel.sql. Следуйте шагам ниже, чтобы выполнить этот шаг:
Запустите MySQL:
sudo /etc/init.d/mysql startИмпортируйте базу данных
personnel.sqlв MySQL. Вы можете сделать это, выполнив следующую команду в терминале:mysql -u root < /home/labex/project/personnel.sql
Эта команда импортирует базу данных personnel.sql в MySQL с использованием пользователя root.
Добавьте составной первичный ключ в таблицу ‘salgrade’
В этом шаге вы научитесь добавлять составной первичный ключ в таблицу salgrade. Следуйте шагам ниже, чтобы выполнить этот шаг:
Войдите в терминал MySQL:
mysql -urootИспользуйте базу данных
personnel:USE `personnel`;Добавьте составной первичный ключ в таблицу
salgrade, используя поляgrade,losalиhisalв качестве составного первичного ключа:ALTER TABLE salgrade ADD PRIMARY KEY (grade, losal, hisal);
Это создаст составной первичный ключ на таблице salgrade, используя поля grade, losal и hisal.
Добавьте ограничения в таблицу ‘emp’
В этом шаге вы научитесь:
- Как указать внешний ключ на поле 'deptno' в таблице 'emp', которое ссылается на поле 'deptno' в таблице 'dept'.
- Как использовать уникальные ограничения для предотвращения дублирования поля 'name' в таблице 'emp'.
- Как использовать ограничение значения по умолчанию для установки значения по умолчанию поля 'comm' в таблице 'emp' равным 100.
- Как предотвратить ввод даты приема на работу после 28 февраля 2022 года в поле 'hiredate' таблицы 'emp' с использованием ограничения проверки.
Следуйте шагам ниже, чтобы выполнить этот шаг.
Используйте базу данных
personnel:USE `personnel`;Укажите внешний ключ на поле
deptnoв таблицеemp, ссылаясь на полеdeptnoв таблицеdept:ALTER TABLE emp ADD FOREIGN KEY (deptno) REFERENCES dept(deptno);Используйте уникальное ограничение для предотвращения дублирования в поле
enameв таблицеemp:ALTER TABLE emp ADD UNIQUE (ename);Используйте ограничение значения по умолчанию для установки значения по умолчанию поля
commв таблицеempравным 100:ALTER TABLE emp ALTER COLUMN comm SET DEFAULT 100;Используйте ограничение проверки для предотвращения ввода дат приема на работу позже 28 февраля 2022 года в поле
hiredateв таблицеemp:ALTER TABLE emp ADD CHECK (hiredate <= '2022-02-28');
Просмотреть структуру таблицы
В этом шаге вы будете использовать команды для отображения структуры таблиц salgrade и emp:
Показать структуру таблицы
salgrade:desc salgrade;Показать структуру таблицы
emp:desc emp;
Вы должны увидеть следующий вывод:
MariaDB [personnel]> desc salgrade;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| grade | int(4) | NO | PRI | NULL | |
| losal | double(7,2) | NO | PRI | NULL | |
| hisal | double(7,2) | NO | PRI | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.001 sec)
MariaDB [personnel]> desc emp;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| empno | int(4) | NO | PRI | NULL | |
| ename | varchar(20) | YES | UNI | NULL | |
| job | varchar(20) | YES | | NULL | |
| mgr | varchar(20) | YES | | NULL | |
| hiredate | date | YES | | NULL | |
| sal | double(7,2) | YES | | NULL | |
| comm | double(7,2) | YES | | 100.00 | |
| deptno | int(4) | YES | MUL | NULL | |
+----------+-------------+------+-----+---------+-------+
8 rows in set (0.001 sec)
Поздравляем! Вы успешно завершили проект.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



