# 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**.
{"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}]"}
Expand menu