2021-10-22

O Básico do SQL

Sintaxe básica

  • SELECT
select 2+2;
1 records
?column?
4

Sintaxe básica

  • SELECT
select now();
1 records
now
2021-10-23 12:20:37

Sintaxe básica

  • SELECT col1, col2
  • FROM tabela1, tabela2
select nm_municip 
from municipios_basico;
Displaying records 1 - 10
nm_municip
ACEGUÁ
ÁGUA SANTA
ALECRIM
ALEGRETE
AGUDO
ALTO FELIZ
ALVORADA
SILVEIRA MARTINS
AJURICABA
ALEGRIA

Municípios ordenados pela população

  • ORDER BY: ordena por uma coluna
select nm_municip, pop 
from municipios_basico
order by pop;
Displaying records 1 - 10
nm_municip pop
ANDRÉ DA ROCHA 1216
UNIÃO DA SERRA 1487
ENGENHO VELHO 1526
COQUEIRO BAIXO 1528
VISTA ALEGRE DO PRATA 1540
MONTAURI 1540
TUPANCI DO SUL 1562
LAGOA DOS TRÊS CANTOS 1597
GUABIJU 1598
CARLOS GOMES 1606

Agora do maior para o menor

  • ASC: Do menor para o maior (ascendente)
  • DESC: Do maior para o menor (descendente)
select nm_municip, pop 
from municipios_basico
order by pop desc;
Displaying records 1 - 10
nm_municip pop
PORTO ALEGRE 1397364
CAXIAS DO SUL 433918
PELOTAS 326850
CANOAS 322984
SANTA MARIA 259246
GRAVATAÍ 255045
VIAMÃO 237926
NOVO HAMBURGO 237742
SÃO LEOPOLDO 213202
RIO GRANDE 195768

Agora apenas os 5 mais populosos

  • LIMIT: limita o número de registros
  • Muito útil para poupar tempo e checar se a consulta funciona
select nm_municip, pop 
from municipios_basico
order by pop desc
limit 5;
5 records
nm_municip pop
PORTO ALEGRE 1397364
CAXIAS DO SUL 433918
PELOTAS 326850
CANOAS 322984
SANTA MARIA 259246

Não gostei do nome das colunas

  • AS: muda o nome da coluna (apenas para esta consulta)
select nm_municip as "Município", pop as "População"
from municipios_basico
order by pop desc
limit 5;
5 records
Município População
PORTO ALEGRE 1397364
CAXIAS DO SUL 433918
PELOTAS 326850
CANOAS 322984
SANTA MARIA 259246

Sintaxe básica

  • SELECT col1, col2, col3
  • FROM tabela1, tabela2
  • WHERE condição
select nm_municip, dom, pop, renda, st_area
from municipios_basico
where nm_municip='RIO GRANDE';
1 records
nm_municip dom pop renda st_area
RIO GRANDE 66606 195768 1334.242 2709530436

Quero a área em km²

select nm_municip, dom, pop, renda, st_area/1000000 as area
from municipios_basico
where nm_municip='RIO GRANDE';
1 records
nm_municip dom pop renda area
RIO GRANDE 66606 195768 1334.242 2709.53

Municípios que começam com “Rio”

  • LIKE: não é igual, mas parecido
select nm_municip, dom, pop, renda
from municipios_basico
where nm_municip like 'RIO%';
4 records
nm_municip dom pop renda
RIOZINHO 1448 4312 744.3333
RIO DOS ÍNDIOS 1170 3588 762.0714
RIO GRANDE 66606 195768 1334.2420
RIO PARDO 12745 37366 893.4769

Municípios que possuem “gra” no nome

select nm_municip, dom, pop, renda
from municipios_basico
where nm_municip like '%GRA%';
Displaying records 1 - 10
nm_municip dom pop renda
ARROIO GRANDE 6494 18408 902.6739
IMIGRANTE 1064 3012 1105.8000
CERRO GRANDE 788 2415 633.0833
CERRO GRANDE DO SUL 3333 10233 674.8421
ERVAL GRANDE 1651 5147 1086.3636
GRAMADO 11140 32048 1813.0896
GRAMADO DOS LOUREIROS 722 2244 686.2222
GRAMADO XAVIER 1215 3967 835.2500
GRAVATAÍ 82378 255045 1154.2715
HULHA NEGRA 1926 5989 959.0000

Municípios que possuem “gra” no nome

  • ILIKE: independente se maiúsculo ou minúsculo
select nm_municip, dom, pop, renda
from municipios_basico
where nm_municip ilike '%gra%';
Displaying records 1 - 10
nm_municip dom pop renda
ARROIO GRANDE 6494 18408 902.6739
IMIGRANTE 1064 3012 1105.8000
CERRO GRANDE 788 2415 633.0833
CERRO GRANDE DO SUL 3333 10233 674.8421
ERVAL GRANDE 1651 5147 1086.3636
GRAMADO 11140 32048 1813.0896
GRAMADO DOS LOUREIROS 722 2244 686.2222
GRAMADO XAVIER 1215 3967 835.2500
GRAVATAÍ 82378 255045 1154.2715
HULHA NEGRA 1926 5989 959.0000

Funções de agregação

O que são funções de agregação?

  • SUM: soma
  • AVG: média
  • COUNT: contagem
  • MIN: mínimo
  • MAX: máximo

Qual é o total de população do RS?

select sum(pop)
from municipios_basico;
1 records
sum
10629866

Qual é o total de população do RS exceto PoA?

select sum(pop)
from municipios_basico
where nm_municip != 'PORTO ALEGRE';
1 records
sum
9232502

Qual é a renda média no estado?

select avg(renda)
from municipios_basico;
1 records
avg
1083.778

Resumo do dia

Sintaxe Básica

  • SELECT (seleciona as colunas)
  • FROM (seleciona as tabelas)
  • WHERE (estabelece condições)
  • ORDER BY (DESC OU ASC) (ordena os resultados)
  • AS (renomeia as colunas ou tabelas)

Condições

  • = (igual)
  • e < (maior, menor)

  • = e <= (maior igual, menor igual)

  • != (diferente)
  • LIKE e ILIKE (parecido)
  • ‘%’ (cadeia de caracteres)

Funções de Agregação

  • SUM (soma)
  • AVG (média)

Obrigado!