Introducción
En este proyecto, aprenderá cómo agregar diversas restricciones a un esquema de base de datos, incluyendo claves primarias, claves foráneas, restricciones únicas, valores predeterminados y restricciones de chequeo. Al final de este proyecto, tendrá una mejor comprensión de cómo diseñar y aplicar reglas de integridad de datos en una base de datos relacional.
👀 Vista previa

🎯 Tareas
En este proyecto, aprenderá:
- Cómo crear una clave primaria compuesta en la tabla
salgrade - Cómo especificar una clave foránea en el campo
deptnode la tablaemp - Cómo usar una restricción única para evitar duplicados en el campo
enamede la tablaemp - Cómo establecer un valor predeterminado para el campo
commde la tablaemp - Cómo usar una restricción de chequeo para evitar la entrada de fechas de contratación posteriores a 28 de febrero de 2022 en el campo
hiredatede la tablaemp
🏆 Logros
Después de completar este proyecto, podrá:
- Comprender la importancia de las restricciones de integridad de datos en el diseño de bases de datos
- Implementar varios tipos de restricciones en una base de datos MySQL
- Aplicar las mejores prácticas para mantener la calidad y la consistencia de los datos
- Solucionar y depurar problemas relacionados con las restricciones de base de datos
Iniciar el servidor MySQL e importar la base de datos
En este paso, aprenderá cómo iniciar el servicio MySQL e importar la base de datos personnel.sql. Siga los pasos siguientes para completar este paso:
Iniciar MySQL:
sudo /etc/init.d/mysql startImportar la base de datos
personnel.sqlen MySQL. Puede hacer esto ejecutando el siguiente comando en su terminal:mysql -u root < /home/labex/project/personnel.sql
Este comando importará la base de datos personnel.sql en MySQL utilizando el usuario root.
Agregar una clave primaria compuesta a la tabla ‘salgrade’
En este paso, aprenderá cómo agregar una clave primaria compuesta a la tabla salgrade. Siga los pasos siguientes para completar este paso:
Inicie sesión en la terminal de MySQL:
mysql -urootUtilice la base de datos
personnel:USE `personnel`;Agregue una clave primaria compuesta a la tabla
salgrade, con los camposgrade,losalyhisalcomo clave primaria compuesta:ALTER TABLE salgrade ADD PRIMARY KEY (grade, losal, hisal);
Esto creará una clave primaria compuesta en la tabla salgrade, utilizando los campos grade, losal y hisal.
Agregar restricciones a la tabla ‘emp’
En este paso, aprenderá:
- Cómo especificar una clave foránea en el campo 'deptno' de la tabla 'emp' que hace referencia al campo 'deptno' de la tabla 'dept'.
- Cómo usar restricciones únicas para evitar la duplicación del campo 'name' en la tabla 'emp'.
- Cómo usar la restricción de valor predeterminado para establecer el valor predeterminado del campo 'comm' en la tabla 'emp' en 100.
- Cómo evitar la entrada de una fecha de contratación posterior a 28 de febrero de 2022 en el campo 'hiredate' de la tabla 'emp' utilizando la restricción de chequeo.
Siga los pasos siguientes para completar este paso.
Utilice la base de datos
personnel:USE `personnel`;Especifique una clave foránea en el campo
deptnode la tablaemp, haciendo referencia al campodeptnode la tabladept:ALTER TABLE emp ADD FOREIGN KEY (deptno) REFERENCES dept(deptno);Use una restricción única para evitar duplicados en el campo
enamede la tablaemp:ALTER TABLE emp ADD UNIQUE (ename);Use una restricción de valor predeterminado para establecer el valor predeterminado del campo
commen la tablaempen 100:ALTER TABLE emp ALTER COLUMN comm SET DEFAULT 100;Use una restricción de chequeo para evitar la entrada de fechas de contratación posteriores a 28 de febrero de 2022 en el campo
hiredatede la tablaemp:ALTER TABLE emp ADD CHECK (hiredate <= '2022-02-28');
Ver la estructura de la tabla
En este paso, utilizará comandos para mostrar la estructura de las tablas salgrade y emp:
Muestre la estructura de la tabla
salgrade:desc salgrade;Muestre la estructura de la tabla
emp:desc emp;
Debería ver la siguiente salida:
MariaDB [personnel]> desc salgrade;
+-------+-------------+------+-----+---------+-------+
| Campo | Tipo | Nulo | Clave | Predeterminado | Extra |
+-------+-------------+------+-----+---------+-------+
| grade | int(4) | NO | PRI | NULL | |
| losal | double(7,2) | NO | PRI | NULL | |
| hisal | double(7,2) | NO | PRI | NULL | |
+-------+-------------+------+-----+---------+-------+
3 filas en el conjunto (0.001 segundos)
MariaDB [personnel]> desc emp;
+----------+-------------+------+-----+---------+-------+
| Campo | Tipo | Nulo | Clave | Predeterminado | Extra |
+----------+-------------+------+-----+---------+-------+
| empno | int(4) | NO | PRI | NULL | |
| ename | varchar(20) | SI | UNI | NULL | |
| trabajo | varchar(20) | SI | | NULL | |
| mgr | varchar(20) | SI | | NULL | |
| hiredate | date | SI | | NULL | |
| sal | double(7,2) | SI | | NULL | |
| comm | double(7,2) | SI | | 100.00 | |
| deptno | int(4) | SI | MUL | NULL | |
+----------+-------------+------+-----+---------+-------+
8 filas en el conjunto (0.001 segundos)
¡Felicitaciones! Ha completado con éxito el proyecto.
Resumen
¡Felicitaciones! Ha completado este proyecto. Puede practicar más laboratorios en LabEx para mejorar sus habilidades.



