Sistema de Gestão de Notas de Estudantes

SQLBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como criar um sistema de gerenciamento de informações de alunos usando MySQL. Este sistema inclui duas tabelas: student_info e student_score, com um relacionamento de chave estrangeira entre elas.

👀 Visualização

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)

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como iniciar o servidor MySQL e fazer login no terminal MySQL
  • Como criar um banco de dados e tabelas usando instruções SQL
  • Como estabelecer um relacionamento de chave estrangeira entre duas tabelas

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Compreender o conceito de um banco de dados relacional e como criar e gerenciar tabelas
  • Implementar uma restrição de chave estrangeira para garantir a integridade dos dados entre tabelas relacionadas
  • Aplicar seu conhecimento de SQL para construir um sistema simples de gerenciamento de informações de alunos

Iniciar o MySQL e Criar o Banco de Dados

Nesta etapa, você aprenderá como iniciar o servidor MySQL e criar o banco de dados studentSys.

  1. Inicie o servidor MySQL:

    sudo /etc/init.d/mysql start
  2. Faça login no terminal MySQL:

    mysql -uroot
  3. Crie um novo arquivo chamado studentSys.sql no diretório /home/labex/project.

  4. No arquivo studentSys.sql, crie o banco de dados studentSys:

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

    A instrução DROP DATABASE IF EXISTS verifica se o banco de dados studentSys já existe e, caso exista, o exclui. A instrução CREATE DATABASE IF NOT EXISTS então cria o banco de dados studentSys com o conjunto de caracteres e a ordenação especificados.

✨ Verificar Solução e Praticar

Criar a Tabela student_info

Nesta etapa, você aprenderá como criar a tabela student_info.

  1. No arquivo studentSys.sql, use o banco de dados studentSys:

    USE studentSys;
  2. Crie a tabela student_info:

    DROP TABLE IF EXISTS student_info;
    CREATE TABLE student_info (
        Id INT NOT NULL AUTO_INCREMENT,
        name VARCHAR(10),
        PRIMARY KEY (Id)
    );

    A instrução DROP TABLE IF EXISTS verifica se a tabela student_info já existe e, caso exista, a exclui. A instrução CREATE TABLE então cria a tabela student_info com duas colunas: Id e name. A coluna Id é definida como a chave primária e é configurada para auto-incremento.

✨ Verificar Solução e Praticar

Criar a Tabela student_score e Estabelecer a Relação de Chave Estrangeira

Nesta etapa, você aprenderá como criar a tabela student_score e estabelecer uma relação de chave estrangeira entre a tabela student_score e a tabela student_info.

  1. No arquivo studentSys.sql, crie a tabela 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)
    );

    A instrução DROP TABLE IF EXISTS verifica se a tabela student_score já existe e, caso exista, a exclui. A instrução CREATE TABLE então cria a tabela student_score com três colunas: Id, score e Sid.

    A instrução PRIMARY KEY (Id) define a coluna Id como a chave primária para a tabela student_score.

    A instrução FOREIGN KEY (Sid) REFERENCES student_info(Id) estabelece uma relação de chave estrangeira entre a coluna Sid na tabela student_score e a coluna Id na tabela student_info. Isso significa que os valores na coluna Sid da tabela student_score devem corresponder aos valores na coluna Id da tabela student_info.

  2. No prompt do MySQL, execute o seguinte comando para executar o script studentSys.sql:

SOURCE ~/project/studentSys.sql

Após concluir estas etapas, você criou o banco de dados studentSys, a tabela student_info e a tabela student_score, e estabeleceu uma relação de chave estrangeira entre as duas tabelas.

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)
✨ Verificar Solução e Praticar

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.