sql – structured query language

Propaganda
MODELAGEM DE DADOS
- INTRODUÇÃO AO SQL: DML
Prof. Angelo Augusto Frozza, M.Sc.
http://about.me/TilFrozza
SQL – STRUCTURED QUERY LANGUAGE

DML – Data Manipulation
Language

Linguagem de Manipulação de Dados

Comandos básicos:

Insert

Update

Delete

Select
SQL – STRUCTURED QUERY LANGUAGE

INSERT (Inserir)
Sintaxe:
INSERT INTO <tabela> [(<campos>)] [VALUES
(<valores>)];
Exemplo:
insert into empresa (idempresa, nome, fone)
values (1,”Matriz”, “4922323234”);
SQL – STRUCTURED QUERY LANGUAGE

UPDATE (Atualizar)
Sintaxe:
UPDATE <tabela> SET <campo> = <expressão>
[WHERE <condição>];
Exemplos:
Aumento de 20% nos produtos do fornecedor 3:
update produto set custo=custo*1.2 where
idfornec=3;
Aumento de 30% nos produtos do fornecedor 1:
update Produto set custo=custo*1.3 where
idfornec=1;
SQL – STRUCTURED QUERY LANGUAGE

DELETE (Excluir)
Sintaxe:
DELETE FROM <tabela> [WHERE <condição>];
Exemplo:
delete from fornecedor where idfornecedor=2;
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consultar)

Seleção de todos os campos (ou colunas) da tabela de
Departamentos:
SELECT
*
FROM
dept;
O exemplo utiliza o coringa "*“ (asterisco) para
selecionar as colunas na ordem em que foram criadas;
 No caso, a instrução FROM indica a necessidade de
pesquisar apenas na tabela Dept;
 A instrução SELECT, como pode-se observar,
seleciona um grupo de registros de uma (ou mais)
tabela(s).

SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consultar)

Cláusula WHERE - adiciona Restrição de tuplas
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;


A seguir são apresentados operadores lógicos e
complementares que são utilizados nas expressões
utilizando a cláusula WHERE...
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

Cláusula WHERE - Operadores lógicos
Operador
=
>
>=
<
<=
Significado
igual a
maior que
maior que ou igual a
menor que
menor que ou igual a
Exemplo:
SELECT empnome, empfuncao FROM
WHERE depnume > 10;
emp
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

Cláusula WHERE – Operadores
complementares
Operador
between ... and ...
in ( .... )
like
is null
Significado
- entre dois valores ( inclusive )
- lista de valores
- com um padrão de caracteres
- é um valor nulo
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

Cláusula WHERE – Operadores
complementares
Exemplos:
SELECT empnome, empsala FROM emp
WHERE empsala BETWEEN 500 AND 1000;
SELECT empnome, depnume FROM emp
WHERE depnume IN (10,30);
SELECT empnome, empfuncao FROM emp
WHERE empnome LIKE 'F%';
SELECT empnome, empfuncao FROM emp
WHERE emptelcoml IS NULL;

O símbolo "%" pode ser usado para construir a pesquisa
("%" = qualquer sequência de nenhum até vários
caracteres).
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

Cláusula WHERE – Operadores negativos
Operador
<>
not nome_coluna =
not nome_coluna >
not between
not in
valores
not like
is not null
Descrição
Diferente
Diferente da coluna
Não maior que
Não entre dois valores informados
Não existente em uma dada lista de
Diferente do padrão de caracteres
informado
Não é um valor nulo
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

Cláusula WHERE – Funções de caracter
Lower
- força caracteres maiúsculos aparecerem em
minúsculos;
Upper
- força caracteres minúsculos aparecerem em
maiúsculos;
Concat(x,y)
- concatena a string "x" com a string "y“;
Substring(x,y,str
)
- extrai um substring da string "str“
- começa em "x", e termina em "y“;
Cast(x to type)
- converte um valor para um tipo específico.
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

Cláusula WHERE – Funções agregadas (ou de
agrupamento)
Função
avg(n)
Retorno
média do valor n, ignorando nulos
count(expr)
vezes que o valor 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
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

Cláusula WHERE – Funções de agregação
Exemplos:
SELECT AVG(empsala) FROM emp;
SELECT MIN(empsala) FROM emp;
SELECT MAX(empsala) FROM emp;
SELECT SUM(empsala) FROM emp;
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

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;
As funções de grupo devolvem uma informação sumarizada
para cada grupo.

SELECT depnume, AVG(empsala) FROM em
GROUP BY depnume;
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

Agrupamentos
OBSERVAÇÃO:
Qualquer coluna ou expressão na lista de seleção, que não for
uma função agregada, deve constar da cláusula GROUP BY.
Portanto é errado tentar impor uma "restrição" do tipo
agregada na cláusula WHERE.
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

Cláusula HAVING
A cláusula HAVING pode ser utilizada para
especificar quais grupos devem ser exibidos, portanto
restringindo-os.
SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

Cláusulas GROUP BY e HAVING
Retomando o problema anterior, apresente resposta
apenas para departamentos com mais de 10
empregados:
SELECT depnume, AVG(empsala) FROM emp
GROUP BY depnume HAVING COUNT(*) > 3;
OBSERVAÇÃO:
A cláusula GROUP BY deve ser colocada antes da HAVING, pois os
grupos são formados e as funções de grupo são calculadas antes de se
resolver a cláusula HAVING;
 A cláusula WHERE não pode ser utilizada para restringir grupos que
devem ser exibidos.

SQL – STRUCTURED QUERY LANGUAGE

SELECT (Consulta)

Sequência no comando SELECT
SELECT coluna(s)
FROM tabela(s)
WHERE condição(ões) da(s) tupla(s)
GROUP BY condição(ões) do(s) grupo(s) de
tupla(s)
HAVING condição(ões) do(s) grupo(s) de
tupla(s)
ORDER BY coluna(s);
a)
b)
c)
A SQL fará a seguinte avaliação:
WHERE - para estabelecer tuplas individuais candidatas (não pode conter
funções de grupo);
GROUP BY - para fixar grupos;
HAVING - para selecionar grupos para exibição.
SQL – STRUTURED QUERY LANGUAGE

Consultar dados em uma tabela

Outras cláusulas interessantes:
union
 intersect
 except
 join
 left join
 right join
 full join
 cross join
 having
 distinct

SQL – STRUTURED QUERY LANGUAGE

Consultar dados em uma tabela

Operador UNION (união):

Dados dois conjuntos: A (1, 2, 3, 4, 5) e B (1, 4, 9)
SELECT * FROM A
UNION
SELECT * FROM B;

O operador UNION retorna os registros selecionados em ambas
as consultas, eliminando os registros duplicados:
SQL – STRUTURED QUERY LANGUAGE

Consultar dados em uma tabela

Operador UNION ALL:

Dados dois conjuntos: A (1, 2, 3, 4, 5) e B (1, 4, 9)
SELECT * FROM A
UNION ALL
SELECT * FROM B;

O operador UNION ALL retorna TODOS os registros
selecionados em ambas as consultas, SEM REMOVER os
registros duplicados:
SQL – STRUTURED QUERY LANGUAGE

Consultar dados em uma tabela

Operador INTERSECT (intersecção):

Dados dois conjuntos: A (1, 2, 3, 4, 5) e B (1, 4, 9)
SELECT * FROM A
INTERSECT
SELECT * FROM B;

O operador INTERSECT retorna APENAS os registros
comuns em ambas as consultas:
SQL – STRUTURED QUERY LANGUAGE

Consultar dados em uma tabela

Operador EXCEPT (exceto):

Dados dois conjuntos: A (1, 2, 3, 4, 5) e B (1, 4, 9)
SELECT * FROM A
EXCEPT
SELECT * FROM B;

O operador EXCEPT retorna os registros presentes no
primeiro conjunto, MENOS os registros presentes no segundo
conjunto:
Download