Thanks to visit codestin.com
Credit goes to pt.scribd.com

0% acharam este documento útil (0 voto)
34 visualizações15 páginas

SQL2

O documento apresenta os principais comandos SQL para consulta de dados, incluindo SELECT, WHERE, ORDER BY, GROUP BY e HAVING. São explicados operadores lógicos e de comparação e exemplos de consultas são fornecidos.

Enviado por

andinho1
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
34 visualizações15 páginas

SQL2

O documento apresenta os principais comandos SQL para consulta de dados, incluindo SELECT, WHERE, ORDER BY, GROUP BY e HAVING. São explicados operadores lógicos e de comparação e exemplos de consultas são fornecidos.

Enviado por

andinho1
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 15

17/10/2009

SQL
COMANDOS DE
CONSULTA

SELECT
Seleção de todas os campos (ou
colunas) da tabela.
tabela.

SELECT * FROM [TABELA]

SELECT [lista de atributos] FROM [TABELA]

1
17/10/2009

Cláusula WHERE
A cláusula "where" corresponde ao
operador restrição da álgebra
relacional.
 Contém a condição que as tuplas
devem obedecer a fim de serem
listadas.
 Ela pode comparar valores em
colunas, literais, expressões
aritméticas ou funções.

Operadores lógicos
operador significado

= igual a
> maior que
>= maior que ou igual a
< menor que
<= menor que ou igual a

2
17/10/2009

Exemplos
SELECT NM_NOME, DS_CARGO
FROM EMPREGADO
WHERE ID_DEPTO > 10;

SELECT NM_NOME, DS_CARGO


FROM EMPREGADO
WHERE DS_CARGO = 'GERENTE';

Alias
Os nomes dos atributos podem ser
substituidos por alias para melhorar a
apresentação da consulta.

SELECT NM_NOME “NOME”, DS_CARGO “CARGO”


FROM EMPREGADO
WHERE ID_DEPTO > 10;

3
17/10/2009

DISTINCT
A cláusula Distinct elimina
duplicidades, significando que
somente relações distintas serão
apresentadas como resultado de
uma pesquisa.

SELECT DISTINCT DS_CARGO


FROM EMP;

ORDER BY
A cláusula Order By modificará a
ordem de apresentação do resultado
da pesquisa (ascendente ou
descendente).

SELECT NM_NOME, DS_CARGO


FROM EMPREGADO
ORDER BY NM_NOME;

4
17/10/2009

DEMAIS OPERADORES
Operador Significado

between...and ... entre dois valores ( inclusive )

in ( .... ) lista de valores

like com um padrão de caracteres

is null é um valor nulo

Exemplos
SELECT NM_NOME, VL_SALARIO
FROM EMPREGADO
WHERE VL_SALARIO BETWEEN 500 AND 1000;

SELECT NM_NOME, ID_DEPTO


FROM EMPREGADO
WHERE ID_DEPTO IN (10,30);

SELECT NM_NOME, DS_CARGO


FROM EMPREGADO
WHERE NM_NOME LIKE 'F%';

SELECT NM_NOME, DS_CARGO


FROM EMPREGADO
WHERE VL_COMISSAO IS NULL;

5
17/10/2009

OPERADORE NEGATIVOS

OPERADOR DESCRIÇÃO

<> diferente

not between não entre dois valores informados

not in não existente numa dada lista de valores

not like diferente do padrao de caracteres informado

is not null não é um valor nulo

OPERADORES LOGICOS
Operadores "AND" (E) e "OR" (OU)

SELECT NM_NOME, VL_SALARIO, DS_CARGO


FROM EMPREGADO
WHERE VL_SALARIO BETWEEN 700 AND 2000
AND DS_CARGO = 'VENDEDOR';

SELECT NM_NOME, VL_SALARIO, DS_CARGO


FROM EMPREGADO
WHERE VL_SALARIO BETWEEN 700 AND 2000
AND ( DS_CARGO = 'BALCONISTA' OR DS_CARGO =
'VENDEDOR' );

6
17/10/2009

FUNÇÕES DE AGRUPAMENTO
função retorno

avg(n) média do valor n, ignorando nulos

count(expr) vezes que o número da expr avalia para algo


não nulo

max(expr) maior valor da expr

min(expr) menor valor da expr

sum(n) soma dos valores de n, ignorando nulos

EXEMPLOS
SELECT AVG(VL_SALARIO) FROM EMPREGADO;

SELECT MIN(VL_SALARIO) FROM EMPREGADO;

SELECT MAX(VL_SALARIO) FROM EMPREGADO;

SELECT SUM(VL_SALARIO) FROM EMPREGADO;

7
17/10/2009

AGRUPAMENTOS
 As funções de grupo operam sobre grupos
de tuplas(linhas). Retornam resultados
baseados em grupos de tuplas em vez de
resultados de funções por tupla
individual. A claúsula “GROUP BY" do
comando "select" é utilizada para dividir
tuplas em grupos menores.
 A cláusula "GROUP BY" pode ser usada
para dividir as tuplas de uma tabela em
grupos menores. As funções de grupo
devolvem uma informação sumarizada
para cada grupo.

GROUP BY
SELECT ID_DEPTO, AVG(VL_SALARIO)
FROM EMPREGADO
GROUP BY ID_DEPTO;

8
17/10/2009

EXERCÍCIOS
1 – SELECIONAR TODOS OS ATORES E DIRETORES
2 – CRIAR UMA RELAÇÃO COM O NOME DO FILME, O TITULO
ORIGINAL E O ANO DE LANÇAMENTO DO CINEMA
3 – REPETIR A SELEÇÃO ANTERIOR SUBSTITUINDO O NOME DOS
ATRIBUTOS POR ALIAS
4 – SELECIONAR TODAS AS PRATELEIRAS QUE POSSUEM FILMES
5 – SELECIONAR TODOS OS FILMES DE AVENTURA
6 – VERIFICAR QUANTOS DIRETORES/ATORES EXISTEM POR
NACIONALIDADE
7 – CALCULAR A MEDIA DO VALOR DAS LOCAÇÕES
8 – CALCULAR A MEDIA DO VALOR DAS LOCAÇÕES POR CLIENTE
9 – VERIFICAR QUAL ATOR/DIRETOR MAIS VELHO
10 – VERIFICAR QUAL O ATOR/DIRETOR MAIS NOVO
11 – CONTAR AS CÓPIAS EXISTENTES PARA CADA FILME
12 – SELECIONAR TODOS OS FILMES ORDENADOS POR CATEGORIA

EXERCÍCIOS
13 – LISTAR OS PERSONAGENS POR FILME EM ORDEM ALFABÉTICA -
14 – LISTAR TODOS OS FILMES DE DRAMA E SUSPENSE EM ORDEM
ALFABÉTICA
15 – LISTAR TODOS OS FILMES QUE NÃO SÃO COMÉDIA E COMÉDIA
ROMÂNTICA

9
17/10/2009

Equi--Junção ( Junção por


Equi
igualdade )
 O relacionamento existente entre tabelas
é chamado de equi-
equi-junção, pois os valores
de colunas das duas tabelas são iguais. A
Equi--junção é possível apenas quando
Equi
tivermos definido de forma adequada a
chave estrangeira de uma tabela e sua
referência a chave primária da tabela
precedente. Apesar de admitir-
admitir-se em
alguns casos, a equi-
equi-junção de tabelas,
sem a correspondência Chave Primária-
Primária-
Chave Estrangeira, esse tipo de
construção é totalmente desaconselhável.

Exemplo
SELECT A.NM_NOME, A.DS_CARGO, B.NM_DEPTO
FROM EMPREGADO A, DEPTO B
WHERE A.ID_DEPTO = B.ID_DEPTO;

10
17/10/2009

EXERCÍCIOS
1 – Listar todos os filmes ordenados pela descrição do gênero;
2 – Listar todos os personagens ordenados pelo nome do ator e
mostrando o nome do filme
3 – Listar o nome do filme e o nome do(s) diretor(es) para cada filme
4 – Totalizar todas as locações do mês de setembro ordenados pelo nome
do cliente;
5 – Listar todos os filmes ordenados pela descrição da categoria
6 – Listar todos os filmes que não são comedia e comédia romantica.
Usar para essa seleção a descrição do gênero.

INSERT
 Comando responsável para adicionar
um mais registros na tabela de
Banco de Dados. Os campos que
forem omitidos recebem valores
NULOS “NULL”.

INSERT INTO CLIENTES (ID,NOME)


VALUES (1,’Nome do Cliente’);

11
17/10/2009

DELETE
 Apaga um ou mais registros de uma
tabela. Se não for utilizado a cláusula
WHERE, será apagado todos os
registros da tabela.

DELETE FROM VENDAS WHERE


DATA_VENDA <= ‘1-JAN-2003’;

UPDATE
 Comando responsável pela
atualização da tabela no Banco do
Dados. Se não for utilizada a
cláusula WHERE a coluna da tabela
será atualizada para todas tuplas.

UPDATE CLIENTE SET


DATA_INCLUSAO = CURRENT DATE;

12
17/10/2009

COMMIT/ROLLBACK
COMMIT - Grava as alterações de uma
transação permanente no Banco de
Dados.
 ROLLBACK - Desfaz as mudanças
ocorridas até o exato momento no Banco
de Dados, sem que o comando COMMIT
tenha sido executado. Este comando e o
Commit fecham a transação aberta pela
aplicação e ou ferramenta de
gerenciamento as tabelas.

EXERCÍCIOS
1- Inserir os filmes abaixo:
– A Bússula de Ouro, New Line Cinema, 2007, Ingles,
aventura, lançamento.
– O Senhor dos Anéis – A Sociedade do Anel, New Line
Cinema, 2001, Ingles, Aventura, ouro.
2 – Alterar os registros criados inserindo o titulo
original.
- The Golden Compass
- The Lord of the Rings – The Fellowship of the Ring
3 – Excluir todos os filmes do estudio New Line
Cinema

13
17/10/2009

A Cláusula HAVING
 Às vezes, é mais interessante definir condições e
aplicá-las a grupos de que aplicá-las a tuplas. Por
exemplo, encontrar quais ID_DEPTO possuem média
(avg) do atributo VL-SALARIO maior que a média de
todas as tuplas da relação EMPREGADO.
 Essa condição não se aplica a uma única tupla, mas
em cada grupo determinado pela cláusula group by.
 Para exprimir tal consulta, deve-se usar a cláusula
having da SQL. Os predicados da cláusula having são
aplicados depois da formação dos grupos, assim
poderão ser usadas funções agregadas.
 Observação: a cláusula WHERE é usada somente para
restringir as linhas que serão selecionadas para a
formação dos grupos, enquanto a cláusula HAVING é
usada para restringir os grupos já formados.

A Cláusula HAVING
select ID_DEPTO, avg(VL_SALARIO)
from empregado
group by ID_DEPTO
having avg(VL_SALARIO) > (select
avg(VL_SALARIO) from EMPREGADO)

14
17/10/2009

SUBQUERIES
 Comando SELECT aninhado dentro de
outro Comando SELECT.

 Formato geral:
SELECT coluna1, coluna2,..
FROM tabela 1
WHERE colunaN = (SELECT colunaM
FROM tabela 2
WHERE condição)

SUBQUERIES
 Exemplo

SELECT nm_nome, id_depto, vl_salario


FROM EMPREGADO
WHERE vl_salario = (SELECT
MIN(vl_salario) FROM empregado);

15

Você também pode gostar