Escolar Documentos
Profissional Documentos
Cultura Documentos
Para ser um bom cientista de dados, SQL é uma forma simples e rápida de
extrair conhecimento de valor de bases de dados.
SELECT *
FROM clientes
WHERE uf = ‘GO’ OR uf = ‘SP’ OR uf = ‘AP’
Pois um jeito menos verborrágico (isso existe?) é utilizando o
operador IN. Ele é bem simples de usar e evitar ficar repetindo
OR, OR, OR toda hora
SELECT *
FROM clientes
WHERE uf IN (‘GO’, ‘SP’, ‘AP’)
Legal que podemos também utilizar a exclusão, ou seja,
podemos selecionar todos os clientes que NÃO SÃO de Goiás e
nem do Pará (pô, que preconceito é esse, eu adoro pequi e
maniçoba*)
SELECT *
FROM clientes
WHERE uf NOT IN (‘GO’, ‘PA’)
* É sério, maniçoba é BOM DEMAIS
Um comando para todas as tabelas
governar,
É bastante comum termos que buscar as descrições nas tabelas de domínio e, para
isso, precisamos utilizar a junção
clientes produtos
id nome id nome_produto
1 Leoncio 1 Pringles
2 Mariazinha 2 Alface
3 Joaozinho 3 Coca cola
4 Jack 4 Ruffles
5 Joe 5 Bolinhas do capeta
6 Joanna da Lindt
7 Juan Come só
mais uma...
Vc tá
magrinho,
bobo!
clientes
id nome
1 Leoncio
2 Mariazinha
3 Joaozinho
compras 4 Jack
5 Joe
id_cliente id_produto quantidade
6 Joanna
1 1 5
7 Juan
1 3 10
1 5 973519459 produtos
2 2 15
id nome
3 1 2
1 Pringles
3 4 3
2 Alface
3 Coca cola
4 Ruffles
5 Bolinhas do capeta
da Lindt
Percebam que agora temos somente a indicação de índices na tabela
compras, sem o nome do cliente ou do produto. Para saber o nome de um
produto de uma compra, por exemplo, precisamos de DUAS TABELAS:
compras e produtos
Mais ainda, perceberam que nas duas tabelas teremos identificadores que
se relacionam? Na tabela compras temos id_produto que REFERENCIA o id
da tabela de produtos.
compras produtos
id_cliente id_produto quantidade id nome_produto
1 1 5 1 Pringles
1 3 10 2 Alface
1 5 973519459 3 Coca cola
2 2 15 4 Ruffles
3 1 2 5 Bolinhas do capeta
da Lindt
3 4 3
compras produtos
id_cliente id_produto quantidade id nome_produto
1 1 5 1 Pringles
1 3 10 2 Alface
1 5 973519459 3 Coca cola
2 2 15 4 Ruffles
3 1 2 5 Bolinhas do capeta
da Lindt
3 4 3
Os nomes das colunas que se referenciam são diferentes (id_produto em
clientes e id em produtos). Por isso é importante saber a correlação
SEMÂNTICA entre os ids. Isso porque nem sempre os identificadores terão
nomes bonitinhos que nem os que fiz pra vocês
Vou jogar o comando aqui, mas não se assuste, vamos mostrar passo
a passo. Inclusive temos que conhecer um conceito importante antes
de entender completamente como funciona a junção, e será um
diferencial no seu entendimento (quero que me cobrem depois se
não facilita o entendimento!!)
SELECT *
FROM compras JOIN produtos ON compras.id_produto = produtos.id
SELECT *
FROM compras JOIN produtos ON compras.id_produto = produtos.id
03 – você precisa de todas as colunas ou somente de algumas?
E AGORA?!
01 – em que tabelas estão os dados necessários?
Tabelas compras, produtos e clientes!
SELECT *
FROM compras JOIN produtos ON compras.id_produto = produtos.id
JOIN clientes ON compras.id_cliente = clientes.id
02 – você precisa de todas as linhas ou precisa de um filtro?
SELECT *
FROM compras JOIN produtos ON compras.id_produto = produtos.id
JOIN clientes ON compras.id_cliente = clientes.id
WHERE clientes.nome = “Leoncio”
03 – você precisa de todas as colunas ou somente de algumas?
SQL ANSI/ISO
• Lista de documentos:
https://docs.oracle.com/database/121/SQLRF/ap_standard_sql001.htm#SQLRF55514
• ANSI: https://www.ansi.org/resource-center (Família ANSI/ISO/IEC 9075)