Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Termos
COLUNAS CHAVE
DCOD
LINHAS
CO1 E11
ENTIDADE: DEPARTAMENTO
SQL
STRUCTURED QUERY LANGUAGE
Semelhante ao ingls falado Fcil de escrever, ler e entender
Componentes do SQL
DML - Data Manipulation Language
SELECT UPDATE INSERT DELETE
SELECT BSICO
DEPTCOD 10 15 20 38 42 51 66 84
DEPTNOME MATRIZ CAMPINAS RIO MINAS BAHIA RECIFE RIO GRANDE PARANA
LOCAL SAO PAULO CAMPINAS R.JANEIRO B.HORIZONTE SALVADOR RECIFE PORTO ALEGRE CURITIBA
Query
Sequncia Obrigatria
SELECT NOME, TEMP, SALARIO
Especifica quais colunas mostrar
FROM STAFF
Especifica de quais tabelas
WHERE DEPT = 38
Especifica quais linhas selecionar
ORDER BY NOME
Especifica como ordenar o resultado
SELECT NOME, TEMP, SALARIO FROM STAFF WHERE DEPT = 38 ORDER BY NOME
Exemplo
SELECT DEPTNOME, DEPTCOD FROM ORG
DEPTCOD -----------------10 15 20 38 . .
10
10
15 20 38 . .
MATRIZ
CAMPINAS RIO MINAS . .
160
50 10 30 . .
CENTRO
SUDESTE SUDESTE SUDESTE . .
SAO PAULO
CAMPINAS R.JANEIRO B.HORIZONTE . .
11
Controle de Linhas
WHERE
Traz certas linhas Estabelece condies
CARGO, COMIS
FROM STAFF WHERE DEPT = 20
Exemplos de WHERE
Selecionar linhas atravs de dado numrico
SELECT DEPT, NOME, CARGO FROM STAFF WHERE DEPT = 20
13
Operadores de comparao
= ! = ou < > ou = > >= < <= ~ > ou > ou !> ~ < ou < ou !<
SELECT NOME, COMIS FROM STAFF WHERE COMIS > = 1000
Igual Diferente Maior Maior ou igual Menor Menor ou igual No maior No menor
SELECT NOME, DEPT, TEMP FROM STAFF WHERE CARGO < > GER
14
Nulidade
Na insero de linha, uma coluna que :
NOT NULL o valor deve ser fornecido (ALLOW) NULL o valor pode ser omitido Um valor NULO: NO ZERO
NO BRANCO DESCONHECIDO
15
16
Seleo de Nulos
Valor nulo como critrio de SELECT
SELECT NOME, CARGO, COMIS FROM STAFF WHERE COMIS IS NULL
Resultado:
NOME -----------SANTANA DANTAS SOUZA PLOTZ . CARGO ----------GER GER GER GER . COMIS ---------.
17
Seleo de Nulos
Valor no nulo como critrio de SELECT
SELECT NOME, CARGO, COMIS FROM STAFF WHERE COMIS IS NOT NULL
Resultado:
NOME --------------ORSINI OBRIEN SUZUKI ALMEIDA JAMES . CARGO ------------VENDAS VENDAS VENDAS VENDAS ATEND . COMIS ----------612.45 846.55 650.25 1152.00 128.20 .
18
Mltiplas Condies
Operadores para mltiplas condies:
AND OR
19
Mltiplas Condies
Para ter qualquer uma satisfeita: OR
WHERE CARGO = VENDAS OR SALARIO < 17000
Resultado:
20
Mltiplas Condies
(cont)
WHERE (CARGO = VENDAS AND COMIS > 1200) OR TEMP > 10
Resultado:
TEMP --------6 12 13 7
No equivale a:
WHERE CARGO = VENDAS AND (COMIS > 1200 OR TEMP > 10) Resultado:
NOME -------------KOONITZ GRAHAM VIEIRA CARGO ------------VENDAS VENDAS VENDAS TEMP --------6 13 7 COMIS -----------1386.70 200.30 1285.00
21
IN
Valor deve coincidir com algum elemento da lista
WHERE DEPT IN (38,20,42)
Equivale a:
22
BETWEEN
Para selecionar intervalo fechado de valores
SELECT NOME, CARGO, TEMP FROM STAFF WHERE TEMP BETWEEN 9 AND 11
Equivale a:
SELECT NOME, CARGO, TEMP FROM STAFF WHERE TEMP >= 9 AND TEMP <= 11
Resultado:
NOME -------------SOUZA LU LEA WILSON PINHO CARGO TEMP -------------- --------GER 10 GER 10 GER 9 VENDAS 9 GER 10
23
Pesquisas Parciais
Para pesquisar um subconjunto de caracteres: LIKE
* ou % Conjunto de caracteres quaisquer
? ou _
Um caracter qualquer
24
Pesquisas Parciais
Exemplos:
WHERE NOME LIKE G% inclui GRAHAM GONZALES GAFNEY WILSON JASON
inclui
inclui
SAMANTA MOLINARI
LU FRAYE GRAHAM
25
inclui inclui
Negao
Para reverter o teste:
WHERE NOME NOT LIKE G%
Exclui:
GRAHAM
GONZALES
GAFNEY
26
27
ORDER BY
Para classificar numa sequncia especificada: Lista classificada do pessoal do depto 84
SELECT NOME, CARGO, TEMP FROM STAFF WHERE DEPT = 84 ORDER BY NOME Resultado:
NOME -------------DAVIS GAFNEY PINHO VIEIRA CARGO -------------VENDAS ATEND GER VENDAS TEMP --------5 5 10 7
28
ORDER BY - Observaes
Colunas classificadas devem ser referenciadas pelo SELECT (DB2, SQL/DS). Em alguns SGBDs as colunas do ORDER BY no precisam ser referenciadas no SELECT. Em alguns SGBDs nulos so considerados como valor mais baixo Em alguns SGBDs nulos so considerados como valor mais alto (DB2, SQL/DS) Podemos especificar colunas para o ORDER BY fornecendo um nmero que indica a posio da mesma na clusula SELECT. O ORDER BY o nico que permite isto A clusula ORDER BY classifica uma tabela resultante. Logo deve ser SEMPRE NICA e a LTIMA a aparecer numa instruo SELECT
29
ORDER BY
Para classificar pelas coluna(s) em ordem ASCendente (default) ou DESCendente
SELECT NOME, CARGO, TEMP FROM STAFF WHERE DEPT = 84 ORDER BY CARGO, TEMP DESC Resultado:
NOME -------------GAFNEY PINHO VIEIRA DAVIS CARGO -------------ATEND GER VENDAS VENDAS TEMP --------5 10 7 5
30
ORDER BY
ORDER BY TEMP DESC, CARGO
Resultado:
ANOS --------10 7 5 5
31
SELECT DISTINCT
SELECT DEPT FROM STAFF
DEPT -------20 20 38 38 15 38 10 . .
DEPT -------10 15 20 38 . .
32
SELECT DISTINCT
Mltiplas colunas
SELECT DISTINCT DEPT, CARGO FROM STAFF
DEPT -------10 15 15 15 20 20 20 38 . . CARGO -------------GER ATEND GER VENDAS ATEND GER VENDAS ATEND . .
33
34
Exemplo 2:
SELECT CARGO, SALARIO + COMIS FROM STAFF ORDER BY CARGO, 2
36
-------------20094.15 21200.30
37
Operador de concatenao
string1 || string2 string1string2 ABC || XYZ ABCXYZ
MARQUES .
FRANCO .
X .
38