Criando e Visualizando Relacionamentos Entre Tabelas no SQL

Aprenda a criar e visualizar relacionamentos entre tabelas no SQL! Entenda o que são os relacionamentos entre tabelas no MySQL e como utilizá-los.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: A aula cria, do zero, um banco MySQL de exemplo (alunos, cursos, matrículas) com CREATE TABLE, chave primária e chave estrangeira, e depois usa um recurso do próprio MySQL para gerar sozinho o diagrama dessas relações. Mostra como ler o diagrama (chave primária e estrangeira), mas não chega a explicar cardinalidade, indicando outra aula para isso.

Neste vídeo (16 min):

  • 3:39 - Cria o banco com CREATE DATABASE exemplo, para um cenário de escola com tabelas de alunos, cursos e matrículas.
  • 4:45 - Cria a tabela de alunos com CREATE TABLE: o id do aluno é do tipo inteiro, e o nome e o e-mail, do tipo VARCHAR, que é texto.
  • 6:12 - Explica que nome e e-mail do aluno têm uma regra contra valor vazio (nulo), e que o id do aluno é a PRIMARY KEY: a coluna que identifica cada linha de forma única.
  • 8:09 - Cria a tabela de matrículas com duas FOREIGN KEY, o id do aluno e o id do curso, porque uma matrícula é um aluno associado a um curso.
  • 10:21 - Na seção de modelos, clica na setinha e escolhe Create EER Model from Database, que monta sozinha o diagrama do banco depois de um assistente que pede a conexão e a senha.
  • 12:43 - No diagrama gerado aparecem três caixas (alunos, cursos, matrículas), e a de matrículas se liga às outras duas porque nela um aluno está associado a um curso.
  • 13:41 - No diagrama, a chave primária aparece marcada com o ícone de uma chave, e a chave estrangeira aparece destacada em vermelho.
  • 14:35 - Cita de passagem a cardinalidade (um para um, um para muitos), sem entrar no assunto, e indica outra aula para aprofundar.

Trechos do vídeo:

  • Duas tabelas se relacionam quando uma guarda, numa coluna, o id que é a chave primária da outra: essa coluna repetida, a chave estrangeira, é o que liga as duas tabelas.
  • O diagrama de relacionamento só existe porque as tabelas foram criadas com a lógica de chave primária e chave estrangeira: sem essa lógica no banco, não haveria relação nenhuma para desenhar.
  • Com as tabelas já criadas no MySQL, o diagrama dá uma visualização mais clara dos dados e de como as tabelas se relacionam.
  • As regras de uma tabela, como não aceitar valor vazio ou ter uma chave primária, são definidas na modelagem do banco de dados.

Visualizando Relacionamentos Entre Tabelas no SQL

Na aula de hoje, quero te ensinar como criar e visualizar os relacionamentos entre tabelas no SQL.

Vou te mostrar como fazer a criação do banco de dados no MySQL e como criar as tabelas nele, utilizando a chave primária e a chave secundária para relacionar as informações entre as tabelas.

Depois disso, vou te ensinar como criar relacionamentos entre tabelas no SQL e entender como esses relacionamentos funcionam.

Ficou interessado em saber mais sobre relacionamentos entre tabelas no SQL? Então, vem comigo que eu vou te mostrar!

Os relacionamentos entre tabelas no SQL conectam dados de tabelas diferentes por meio de chaves: a chave primária identifica cada registro e a chave estrangeira aponta para a chave primária de outra tabela. Esse vínculo garante a integridade dos dados e permite consultar informações combinadas de várias tabelas usando JOINs.

O que são Relacionamentos entre Tabelas

Quando falamos de bancos de dados relacionais, estamos nos referindo a tabelas que possuem algum tipo de relação, ou seja, interconexões entre elas.

Por exemplo, dentro do banco de dados de uma empresa, podemos ter tabelas de vendas, produtos, clientes e lojas que se relacionam entre si.

Ao extrair as informações de uma venda, por exemplo, teremos um cliente que comprou um produto em uma determinada loja. Perceba como as informações de cada uma das tabelas se relacionam.

Criação do Banco de Dados no MySQL

Para podermos trabalhar e visualizar esse relacionamento entre tabelas, vamos criar um banco de dados de exemplo com 3 tabelas: Alunos, Cursos e Matrículas.

Ícone SQLSQL Impressionador

Domine a linguagem mais importante do Mundo para quem trabalha com Dados, seja para se destacar na sua empresa atual, para conseguir um diferencial em processos seletivos ou até mesmo para entrar em áreas de dados.

Começar agoraSeta para a direita
Fundo SQLTelas SQL
Luz SQL

Para criar o banco de dados, basta executar o comando:

SQL
create database exemplo;

Em seguida, para ativá-lo, executamos o código:

Codigo
use exemplo;


Para garantir que seu banco de dados está ativo e em uso, atualize o Schemas dentro do MySQL e verifique se o banco de dados está em negrito.

Criação do Banco de Dados no MySQL

Com isso, todos os comandos que executarmos a partir de agora serão realizados dentro desse banco de dados de exemplo.

Criação de Tabelas no MySQL – Chave Primária e Estrangeira

Com o banco de dados criado e ativado, podemos prosseguir com a criação das nossas tabelas.

Para compreender mais a fundo essa etapa, você pode acessar nossa aula sobre criação de tabelas, e sobre constraints em bancos de dados.

A primeira tabela a ser criada será a de Alunos. Nela teremos as colunas id_aluno (tipo inteiro), nome_aluno (tipo texto) e email (tipo texto).

SQL
create table Alunos (
    id_aluno int,
    nome_aluno varchar(100) not null,
    email varchar(100) not null,
    primary key(id_aluno)
);

Além disso, precisamos definir algumas regras (constraints) para essas colunas, informando que as colunas nome_aluno e email não podem receber valores nulos, ou seja, ambas precisam ser preenchidas.

A coluna id_aluno será a chave primária dessa tabela. É ela que identifica as informações distintas em uma tabela. Toda tabela possui uma e apenas uma chave primária. Ela serve como um identificador único para cada linha da tabela.

É a chave primária que permite a conexão com uma chave estrangeira de outra tabela. A chave estrangeira é uma coluna presente em outra tabela, que possibilita relacionar as linhas de uma segunda tabela com a chave primária da primeira tabela.

A próxima tabela será a tabela de Cursos com as colunas id_curso (inteiro), nome_curso (texto) e preco_curso (decimal).

SQL
create table Cursos (
    id_curso int,
    nome_curso varchar(100) not null,
    preco_curso decimal(10, 2) not null,
    primary key(id_curso)
);

Do mesmo modo que a coluna de alunos, essa coluna possui duas constraints para garantir que as colunas nome_curso e preco_curso não aceitem valores nulos, e a chave primária dela é o id_curso.

É bastante comum que a chave primária de uma tabela seja a coluna de Id.

E para finalizar, teremos a tabela Matriculas com as colunas id_matricula (inteiro), id_aluno (inteiro), id_curso (inteiro) e data_cadastro (data).

SQL
create table Matriculas (
    id_matricula int,
    id_aluno int not null,
    id_curso int not null,
    data_cadastro date not null,
    primary key(id_matricula),
    foreign key(id_aluno) references Alunos(id_aluno),
    foreign key(id_curso) references Cursos(id_curso),
);

Nessa tabela, as colunas id_aluno, id_curso e data_cadastro não podem ser do tipo nulo, e id_matricula será a primary key.

Além disso, temos as definições das foreign keys para as colunas id_aluno e id_curso. Dessa forma, a coluna id_aluno da tabela Matriculas se relaciona com a id_aluno da tabela Alunos, e o mesmo é válido para a coluna id_curso.

Para criar as tabelas, basta selecionar o código de cada uma delas e executá-lo dentro do MySQL.

Se elas tiverem sido criadas com sucesso, você poderá visualizá-las no Schemas.

Criação de Tabelas no MySQL – Chave Primária e Estrangeira

Como visualizar os Relacionamentos entre Tabelas?

Só é possível visualizarmos o relacionamento entre essas tabelas porque, quando elas foram criadas, criamos com elas a lógica de chaves primárias e chaves estrangeiras.

Se não tivéssemos construído as tabelas com essa lógica, não haveria um relacionamento entre elas que pudesse ser observado.

Dentro do MySQL, para visualizarmos os relacionamentos entre tabelas, precisamos primeiro voltar para a tela inicial dele, clicando no ícone da casinha.

Ícone página inicial MySQL

E em seguida, selecionar a guia de modelos (Models). Dentro dessa tela, clique na setinha ao lado de Models e selecione a opção Create EER Model from Database.

Create EER Model from Database

Na janela que será aberta, vamos definir o Stored Connection como Local instance e clicar em Next.

Criação do relacionamento entre tabelas pt 1

Na próxima tela, basta inserir a senha, aguardar o processo de conexão e clicar em Next.

Criação do relacionamento entre tabelas pt 2

Em seguida, selecione o banco de dados e clique em Next novamente. No caso desta aula, vamos selecionar o banco de dados exemplo.

Criação do relacionamento entre tabelas pt 3

Feito isso, basta apenas ir clicando em Next nas telas seguintes até o diagrama do banco de dados ser gerado.

diagrama do banco de dados

Entendendo o Relacionamento Entre Tabelas

Dentro desse diagrama, temos 3 caixinhas, cada uma representando uma das tabelas criadas (Alunos, Cursos e Matriculas).

Entendendo o Relacionamento Entre Tabelas

Perceba que temos a tabela Cursos e a tabela Alunos conectadas com a tabela Matriculas. Isso indica a relação entre as tabelas. Ou seja, a tabela Matriculas se relaciona com as outras duas tabelas através das chaves primárias e estrangeiras.

Perguntas frequentes sobre relacionamentos entre tabelas no SQL

1. O que são relacionamentos entre tabelas no SQL?

São ligações criadas entre tabelas por meio de chaves, permitindo que os dados de uma tabela se conectem aos de outra. Por exemplo, uma tabela de Pedidos se relaciona com a de Clientes, evitando repetir os dados do cliente em cada pedido.

2. Como criar um relacionamento entre tabelas no MySQL?

Defina uma chave primária (PRIMARY KEY) na tabela principal e, na tabela secundária, crie uma coluna com FOREIGN KEY apontando para essa chave primária. O MySQL passa a validar que só entram valores que existem na tabela referenciada.

3. Qual a diferença entre chave primária e estrangeira?

A chave primária identifica de forma única cada registro de uma tabela e não aceita valores nulos nem repetidos. A chave estrangeira fica em outra tabela e referencia essa chave primária, criando o relacionamento e garantindo a integridade referencial.

4. Como visualizar os relacionamentos entre tabelas?

No MySQL Workbench é possível gerar o diagrama EER (engenharia reversa do banco), que mostra as tabelas e as linhas ligando as chaves primárias às estrangeiras. É a forma mais clara de enxergar como as tabelas se conectam.

Conclusão – Visualizando Relacionamentos Entre Tabelas no SQL

Na aula de hoje, eu te mostrei como criar e visualizar os relacionamentos entre tabelas no SQL.

Te mostrei como criar o banco de dados, as tabelas e construir o relacionamento entre elas através das chaves primárias e estrangeiras.

Esse é um importante recurso na construção de um banco de dados e garante o bom funcionamento e interpretação das tabelas e das informações contidas nelas.

Quer aprender SQL do básico ao avançado? Confira o curso completo da Hashtag Treinamentos!

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?