Loading…
Transcript

INNER JOIN

Acesso a dados em duas tabelas usando INNER JOIN e filtragem usando WHERE

vamos verificar os valores do bonus

MySQL

Verificar a redução do bonus do 4ºTrimestre p/ com 3º de cada colaborador.

Select

@Prof. Carlos Tojeiro

BD para Aula

Vamos chamar nosso BD de empresaboa

O conjunto de dados empresaboa terá duas tabelas: empregados

Banco de Dados

Colaboradores

Colaboradores

Técnicos

Vamos popular esta tabela:

Administrativos

As colunas e os dados na tabela acima são:

id - O ID exclusivo do colaborador e a chave primária da tabela.

primeiro_nome - O primeiro nome do colaborador.

ultimo_nome - O sobrenome do funcionário.

departamento - O departamento do colaborador.

salario - O salário mensal do colaborador, em reais.

Bonus

bonus (bonificação trimestral)

As colunas são:

colaborador_id - O ID exclusivo do colaborador. Além disso, uma chave estrangeira que faz referência à coluna id da tabela colaborador.

t1_2023 - O bonus do colaborador no primeiro trimestre de 2023.

t2_2023 - O bonus do colaborador no segundo trimestre de 2023.

t3_2022 - O bonus do colaborador no terceiro trimestre de 2023.

t4_2022 - O bonus do colaborador no quarto trimestre de 2023.

Consultas

Consultas

Agora, vamos começar a escrever as consultas SQL.

Seleção de todas as colunas de uma tabela:

Seleção de uma coluna de uma tabela:

Seleção de duas colunas em uma tabela:

Seleção de duas (ou mais) colunas de uma tabela e filtragem usando comparação numérica em WHERE:

Seleção de duas colunas e filtragem usando uma condição de igualdade em WHERE:

Seleção de duas colunas e ordenação por uma coluna:

Seleção de duas colunas e ordenação decrescente por uma coluna:

Outros Selects

Seleção de duas colunas de uma tabela e ordenação descendente por duas colunas:

Select

classificamos o resultado pelo salário e pelo sobrenome do colaborador. Desta vez, classificamos por salário em ordem decrescente e, em seguida, por sobrenome em ordem crescente.

Consultas com complexidade #1

Dificuldade #1

Seleção de duas colunas com uma condição lógica complexa em WHERE

Resultado:

Salários entre 3000 e 5000 ficam fora da consulta.

Consultas com complexidade #2

Operações

Na consulta acima, queremos encontrar o bonus no primeiro semestre de 2023 para cada colaborador.

Para isso, primeiro selecionamos a coluna colaborador_id da tabela bonus.

Em seguida, selecionamos a coluna t1_2023 e usamos o operador aritmético de adição para adicionar a coluna t2_2023. Também damos a essa nova coluna calculada um alias de "Primeiro Semestre" usando a palavra-chave AS.

Consultas com complexidades #3

GROUP BY

A saída mostra todos os departamentos e a soma dos custos salariais mensais totais por departamento.

count()

Podemos usar esta função se quisermos agrupar dados e mostrar o número de ocorrências em cada grupo.

Outras

Consultas

Selecione o departamento na tabela colaboradores. Em seguida, use a função de agregação COUNT(). Nesse caso, usamos a versão COUNT(*), que conta todas as linhas. Atribuímos à coluna o alias colaboradores_por_departmento.

AVG e ROUND

AVG(), GROUP BY, ROUND()

A função AVG() calcula o valor médio. Você pode usar essa consulta sempre que quiser agrupar dados e mostrar o valor médio de cada grupo.

Selecionamos o departamento, usamos AVG() com a coluna salario e agrupamos o resultado por departamento.

Ah, sim...você gostaria de duas casas na resposta! Vamos lá...use o ROUND().

O ROUND(AVG(salario), 2) irá arredondar o valor da média do salário para duas casas decimais.

MIN()

MAX()

MIN() e Max()

A saída mostra os departamentos e o salário mais baixo de cada departamento.

A saída mostra os departamentos e o salário mais alto de cada departamento.

SUM()

SUM()

A Query mostrará o salário total por departamento

DATA

COUNT(), WHERE e GROUP BY

Vamos supor que precisamos verificar o Nº de colaboradores que gaham salário maiores que 3500

Agora precisamos verificar qual colaborador recebeu bonus maior que 1000 nos quatro trimestres...

Conferindo...

INNER

SQL - linguagem padrão para trabalhar com banco de dados.

Ourinhos-SP