Sistema de Gestión de Calificaciones de Estudiantes

SQLSQLBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) sql(("SQL")) -.-> sql/DataDefinitionandIntegrityGroup(["Data Definition and Integrity"]) sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") mysql/BasicKeywordsandStatementsGroup -.-> mysql/create_database("Database Creation") mysql/BasicKeywordsandStatementsGroup -.-> mysql/drop_database("Database Deletion") mysql/BasicKeywordsandStatementsGroup -.-> mysql/create_table("Table Creation") mysql/BasicKeywordsandStatementsGroup -.-> mysql/drop_table("Table Removal") sql/BasicSQLCommandsGroup -.-> sql/create_table("CREATE TABLE statements") sql/BasicSQLCommandsGroup -.-> sql/drop_table("DROP TABLE statements") sql/DataDefinitionandIntegrityGroup -.-> sql/data_types("Data Types") sql/DataDefinitionandIntegrityGroup -.-> sql/constraints("Constraints") subgraph Lab Skills mysql/use_database -.-> lab-301414{{"Sistema de Gestión de Calificaciones de Estudiantes"}} mysql/create_database -.-> lab-301414{{"Sistema de Gestión de Calificaciones de Estudiantes"}} mysql/drop_database -.-> lab-301414{{"Sistema de Gestión de Calificaciones de Estudiantes"}} mysql/create_table -.-> lab-301414{{"Sistema de Gestión de Calificaciones de Estudiantes"}} mysql/drop_table -.-> lab-301414{{"Sistema de Gestión de Calificaciones de Estudiantes"}} sql/create_table -.-> lab-301414{{"Sistema de Gestión de Calificaciones de Estudiantes"}} sql/drop_table -.-> lab-301414{{"Sistema de Gestión de Calificaciones de Estudiantes"}} sql/data_types -.-> lab-301414{{"Sistema de Gestión de Calificaciones de Estudiantes"}} sql/constraints -.-> lab-301414{{"Sistema de Gestión de Calificaciones de Estudiantes"}} end

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.

  1. Inicia el servidor MySQL:

    sudo /etc/init.d/mysql start
  2. Inicia sesión en la terminal de MySQL:

    mysql -uroot
  3. Crea un nuevo archivo llamado studentSys.sql en el directorio /home/labex/project.

  4. En el archivo studentSys.sql, crea la base de datos studentSys:

    DROP DATABASE IF EXISTS studentSys;
    CREATE DATABASE IF NOT EXISTS studentSys CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

    La sentencia DROP DATABASE IF EXISTS verifica si la base de datos studentSys ya existe y, si es así, la elimina. Luego, la sentencia CREATE DATABASE IF NOT EXISTS crea la base de datos studentSys con 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.

  1. En el archivo studentSys.sql, utiliza la base de datos studentSys:

    USE studentSys;
  2. 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 EXISTS verifica si la tabla student_info ya existe y, si es así, la elimina. Luego, la sentencia CREATE TABLE crea la tabla student_info con dos columnas: Id y name. La columna Id se 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.

  1. En el archivo studentSys.sql, crea la tabla student_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 EXISTS verifica si la tabla student_score ya existe y, si es así, la elimina. Luego, la sentencia CREATE TABLE crea la tabla student_score con tres columnas: Id, score y Sid.

    La sentencia PRIMARY KEY (Id) establece la columna Id como clave primaria de la tabla student_score.

    La sentencia FOREIGN KEY (Sid) REFERENCES student_info(Id) establece una relación de clave foránea entre la columna Sid de la tabla student_score y la columna Id de la tabla student_info. Esto significa que los valores de la columna Sid de la tabla student_score deben coincidir con los valores de la columna Id de la tabla student_info.

  2. 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)
✨ Revisar Solución y Practicar

Resumen

¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.