# Session Four: Checkin | SQL
Autora: Isabela Silva Sousa
[toc]
# Chave Estrangeira
>[color=lightblue]Mapa mental

>[color=darkblue]
>Supondo que tenhamos duas tabelas TB_Filme e TB_Personagem, quando passamos a chave primaria da TB_Filme para a TB_Personagem, a chave se torna **estrangeira**.
>- Esses campos, são os campos que mostram o relacionamento entre as tabelas.
>[color=darkblue]
> Para nós inserirmos um registro na tabela que possui a chave entrangeira, usaremos o mesmo comando **INSERT INTO** que usamos na tabela com a chave primaria.
>[color=darkblue]
>- **Qual valor que iremos informar à chave estrangeira da TB_Personagem?**
> Será o ID_Filme, temos que descobrir o ID do filme para realizar essa inserção.
>[color=lightblue]

>[color=darkblue]
>- **Como em um único select retornar as informações das duas tabelas, já que estão relacionadas?**
> Podemos realizar esse comando atraves do comando **INNER JOIN**. E utilizando a cláusula **ON** para realizar o vínculo das tabelas.
>[color=lightblue]
> 
>[color=lightblue]
>Quando executamos esse select todos os campos das tabelas são retornados.
>[color=darkblue]
>- Como temos dois nomes identicos nos campos das duas tabelas o select não reconhece qual campo é de qual tabela.
>Sendo assim para informar a tabela que queremos exibir, vamos nesse caso informar o nome da tabela prescendendo o nome do campo, partido desse momento conseguimos o resultado desejado.
## Realizar filtro na união de tabelas
>[color=darkblue]
>Basta ultilizar o comando **WHERE** que realiza os filtros dessa união/relacionamento de tabela.
>A cláusula WHERE fica a baixo dos relacionamentos ou seja, dos INNER JOINS.
>[color=lightblue]

## ORDER BY
>[color=darkblue]
>Também é possível realizar a ordenação desses registros que são retornados através da cláusula **ORDER BY**.
>ORDER BY ultilizado para realizar ordenações
>- Quando relacionamos duas tabelas a quantidade de linhas de um comando do select será a tabela que possui mais registros relacionados.
## LEFT JOIN
>[color=darkblue]
>(Left)esquerda
>- Significa que estamos dando prioridade para os registros da esquerda do nosso relacionamento.
>[color=lightblue]

>[color=darkblue]
> Para mostrarmos os personagens que não possuem um relacionamento podemos dar prioridade da tabela do relacionamento da esquerda.
## RIGHT JOIN
>[color=darkblue]
>(Right)direita
>- Para dar prioridade aos registros da tabela/relacionamento da direita é só usar o comando **RIGHT JOIN**.
{"metaMigratedAt":"2023-06-16T02:46:45.268Z","metaMigratedFrom":"Content","title":"Session Four: Checkin | SQL","breaks":true,"contributors":"[{\"id\":\"efa8ac71-fa69-4ab5-8a89-20016d037e45\",\"add\":2758,\"del\":64}]"}