---
# System prepended metadata

title: 'Session Four: Checkin  | SQL'

---

# Session Four: Checkin  | SQL
Autora: Isabela Silva Sousa 

[toc]

# Chave Estrangeira

>[color=lightblue]Mapa mental
![](https://i.imgur.com/ufkLj58.png)

>[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]
![](https://i.imgur.com/Tqb9yrE.png)


>[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]
> ![](https://i.imgur.com/BobtQHA.png)

>[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]
![](https://i.imgur.com/vem9agN.png)


## 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]
![](https://i.imgur.com/9Rx2sy0.png)

>[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**.






