Introducción
En este proyecto, aprenderás cómo crear un sistema de gestión de información de estudiantes utilizando MySQL. Este sistema incluye dos tablas: student_info y student_score, con una relación de clave foránea entre ellas.
👀 Vista previa
MySQL [studentSys]> DESC student_info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| Id | int | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.002 sec)
MySQL [studentSys]> DESC student_score;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| Id | int | NO | PRI | NULL | |
| score | varchar(4) | YES | | NULL | |
| Sid | int | YES | MUL | NULL | |
+-------+------------+------+-----+---------+-------+
3 rows in set (0.001 sec)
🎯 Tareas
En este proyecto, aprenderás:
- Cómo iniciar el servidor MySQL e iniciar sesión en la terminal de MySQL
- Cómo crear una base de datos y tablas utilizando sentencias SQL
- Cómo establecer una relación de clave foránea entre dos tablas
🏆 Logros
Después de completar este proyecto, serás capaz de:
- Comprender el concepto de una base de datos relacional y cómo crear y gestionar tablas
- Implementar una restricción de clave foránea para garantizar la integridad de los datos entre tablas relacionadas
- Aplicar tus conocimientos de SQL para construir un simple sistema de gestión de información de estudiantes
Iniciar MySQL y Crear la Base de Datos
En este paso, aprenderás cómo iniciar el servidor MySQL y crear la base de datos studentSys.
Inicia el servidor MySQL:
sudo /etc/init.d/mysql startInicia sesión en la terminal de MySQL:
mysql -urootCrea un nuevo archivo llamado
studentSys.sqlen el directorio/home/labex/project.En el archivo
studentSys.sql, crea la base de datosstudentSys:DROP DATABASE IF EXISTS studentSys; CREATE DATABASE IF NOT EXISTS studentSys CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;La sentencia
DROP DATABASE IF EXISTSverifica si la base de datosstudentSysya existe y, si es así, la elimina. Luego, la sentenciaCREATE DATABASE IF NOT EXISTScrea la base de datosstudentSyscon el conjunto de caracteres y la collation especificados.
Crear la tabla student_info
En este paso, aprenderás cómo crear la tabla student_info.
En el archivo
studentSys.sql, utiliza la base de datosstudentSys:USE studentSys;Crea la tabla
student_info:DROP TABLE IF EXISTS student_info; CREATE TABLE student_info ( Id INT NOT NULL AUTO_INCREMENT, name VARCHAR(10), PRIMARY KEY (Id) );La sentencia
DROP TABLE IF EXISTSverifica si la tablastudent_infoya existe y, si es así, la elimina. Luego, la sentenciaCREATE TABLEcrea la tablastudent_infocon dos columnas:Idyname. La columnaIdse establece como clave primaria y se configura para autoincrementarse.
Crear la tabla student_score y establecer la relación de clave foránea
En este paso, aprenderás cómo crear la tabla student_score y establecer una relación de clave foránea entre la tabla student_score y la tabla student_info.
En el archivo
studentSys.sql, crea la tablastudent_score:DROP TABLE IF EXISTS student_score; CREATE TABLE student_score ( Id INT NOT NULL, score VARCHAR(4), Sid INT, PRIMARY KEY (Id), FOREIGN KEY (Sid) REFERENCES student_info(Id) );La sentencia
DROP TABLE IF EXISTSverifica si la tablastudent_scoreya existe y, si es así, la elimina. Luego, la sentenciaCREATE TABLEcrea la tablastudent_scorecon tres columnas:Id,scoreySid.La sentencia
PRIMARY KEY (Id)establece la columnaIdcomo clave primaria de la tablastudent_score.La sentencia
FOREIGN KEY (Sid) REFERENCES student_info(Id)establece una relación de clave foránea entre la columnaSidde la tablastudent_scorey la columnaIdde la tablastudent_info. Esto significa que los valores de la columnaSidde la tablastudent_scoredeben coincidir con los valores de la columnaIdde la tablastudent_info.En el prompt de MySQL, ejecuta el siguiente comando para ejecutar el script
studentSys.sql:
SOURCE ~/project/studentSys.sql
Después de completar estos pasos, has creado la base de datos studentSys, la tabla student_info y la tabla student_score, y has establecido una relación de clave foránea entre las dos tablas.
MySQL [studentSys]> DESC student_info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| Id | int | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.002 sec)
MySQL [studentSys]> DESC student_score;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| Id | int | NO | PRI | NULL | |
| score | varchar(4) | YES | | NULL | |
| Sid | int | YES | MUL | NULL | |
+-------+------------+------+-----+---------+-------+
3 rows in set (0.001 sec)
Resumen
¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.
