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.
Inicie o servidor MySQL:
sudo /etc/init.d/mysql startFaça login no terminal MySQL:
mysql -urootCrie um novo arquivo chamado
studentSys.sqlno diretório/home/labex/project.No arquivo
studentSys.sql, crie o banco de dadosstudentSys:DROP DATABASE IF EXISTS studentSys; CREATE DATABASE IF NOT EXISTS studentSys CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;A instrução
DROP DATABASE IF EXISTSverifica se o banco de dadosstudentSysjá existe e, caso exista, o exclui. A instruçãoCREATE DATABASE IF NOT EXISTSentão cria o banco de dadosstudentSyscom o conjunto de caracteres e a ordenação especificados.
Criar a Tabela student_info
Nesta etapa, você aprenderá como criar a tabela student_info.
No arquivo
studentSys.sql, use o banco de dadosstudentSys:USE studentSys;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 EXISTSverifica se a tabelastudent_infojá existe e, caso exista, a exclui. A instruçãoCREATE TABLEentão cria a tabelastudent_infocom duas colunas:Idename. A colunaIdé definida como a chave primária e é configurada para auto-incremento.
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.
No arquivo
studentSys.sql, crie a tabelastudent_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 EXISTSverifica se a tabelastudent_scorejá existe e, caso exista, a exclui. A instruçãoCREATE TABLEentão cria a tabelastudent_scorecom três colunas:Id,scoreeSid.A instrução
PRIMARY KEY (Id)define a colunaIdcomo a chave primária para a tabelastudent_score.A instrução
FOREIGN KEY (Sid) REFERENCES student_info(Id)estabelece uma relação de chave estrangeira entre a colunaSidna tabelastudent_scoree a colunaIdna tabelastudent_info. Isso significa que os valores na colunaSidda tabelastudent_scoredevem corresponder aos valores na colunaIdda tabelastudent_info.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)
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.
