aula 08 - sql - dml
Post on 08-Mar-2015
108 Views
Preview:
TRANSCRIPT
Structured Query Language(SQL)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Inclusão de dados:INSERT INTO NOME_TABELA (COL1,
COL2,...,COLN)VALUES (VAL1, VAL2,...,VALN);
• Exemplo:Insert Into PESSOA (CPF, NOME, SEXO)values ('11122233344','Paulo Abreu', 'M');
Insert Into PESSOA (CPF, NOME, SEXO)Select CPF, NOME, SEXO From Aluno
2
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Consulta simples:SELECT COL1, COL2,...,COLNFROM NOME_TABELAWHERE (expressão lógica)GROUP BY (atributos de agrupamento)HAVING (condição de agrupamento)ORDER BY (lista de atributos)
• Where: filtra antes do agrupamento.• Having: filtra depois do agrupamento.
3
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Exemplo:Select * From PESSOA;
Select CPF, NOME, SEXO, IDADEFrom PESSOAWhere sexo = ‘M’ or sexo = ‘F’;ouWhere sexo in (‘M’, ‘F’);
Select CPF, NOME, SEXO, IDADEFrom PESSOAWhere IDADE > ANY (10,20,30);ouWhere IDADE > ALL (10,20,30);
4
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
5
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Exemplo:
SELECT * FROM DEPTWHERE DNAME LIKE '/_%' ESCAPE '/‘
Select CPF, NOME, SEXOFrom PESSOAWhere nome like ‘P%’; (‘[CK]%’) (‘[C-K]%’ intervalo) (not like)
Select CPF, NOME, SEXOFrom PESSOAWhere idade is null; (not null)
Select CPF, NOME, SEXOFrom PESSOAWhere idade >= 10 and idade <= 20; (between 10 and 20)
6
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Exemplo com Alias (apelidos):Select CPF as Meu_CPFFrom PESSOA
Select CPF, NOME, SEXOFrom PESSOA as PWhere P.idade is null;
Select NOME, IDADE + 5 AS NOVA_IDADEFrom PESSOA;
7
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Atualização:UPDATE NOME_TABELASET COL1=VAL1, COL2=VAL2,...,COLN=VALNWHERE (expressão lógica)
• Exemplo:UPDATE PESSOASET idade = 30WHERE nome = ‘Paulo’;
8
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Deleção:DELETE FROM NOME_TABELAWHERE (expressão lógica)
• Exemplo:DELETE FROM PESSOAWHERE nome = ‘Paulo’;
• TRUNCATE TABLE NOME_TABELA (sem rollback):
– O comando TRUNCATE remove rapidamente todas as linhas da tabela.Tem o mesmo efeito do comando DELETE sem a cláusula WHERE, mascomo não varre a tabela é mais rápido. É mais vantajoso para tabelasgrandes.
– O comando TRUNCATE não pode ser utilizado dentro de um bloco detransação (delimitado por BEGIN/COMMIT), porque não existe apossibilidade de desfazê-lo.
9
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Funções Agregadas:SELECT COUNT(*) FROM PESSOA;SELECT COUNT(NOME) FROM PESSOA;
SELECT SUM(idade) FROM PESSOA;SELECT AVG(idade) FROM PESSOA;SELECT MAX(idade) FROM PESSOA;SELECT MIN(idade) FROM PESSOA;
10
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Tabela Livro:(Codigo, Titulo, Preco, Lancamento, Assunto,
Editora)Assunto References Assunto(Sigla)Editora References Editora(Codigo)
• Tabela Assunto:(Sigla, Descricao)
• Tabela Editora:Editora(Codigo, Nome) 11
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
12
Linguagem de Manipulação de Dados (DML)
Editora Assunto
Livro
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Funções Agregadas:SELECT ASSUNTO, AVG(PRECO)FROM LIVROGROUP BY ASSUNTO;– Preço médio dos livros por assunto
SELECT ASSUNTO, COUNT(*)FROM LIVROGROUP BY ASSUNTO;– Quantidade de livros por assunto
13
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Funções Agregadas:SELECT ASSUNTO, MAX(PRECO)FROM LIVROGROUP BY ASSUNTO;– Preço do livro mais caro de cada assunto.
SELECT ASSUNTOFROM LIVROGROUP BY ASSUNTOHAVING AVG(PRECO) > 50;– Assuntos cuja média de preço dos livros seja maior
que R$ 50,00.
14
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Funções Agregadas:SELECT ASSUNTO, COUNT(*)FROM LIVROGROUP BY ASSUNTOHAVING COUNT(*) > 2;– Assuntos que possuem pelo menos três livros.
15
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Eliminação de Repetições:SELECT DISTINCT ASSUNTO AS ASSUNTOFROM LIVRO;– Assuntos distintos.
SELECT COUNT (ASSUNTO) AS Qtd_ASSUNTOFROM LIVRO;– Quantidade de ocorrência de assuntos.
SELECT COUNT (DISTINCT ASSUNTO) ASDif_ASSUNTO
FROM LIVRO;– Quantidade de assuntos distintos. 16
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Ordenação de Resultados:SELECT ASSUNTO, TITULO, PRECOFROM LIVROORDER BY ASSUNTO ASC, PRECO DESC;
SELECT ASSUNTO, TITULO, PRECOFROM LIVROORDER BY ASSUNTO, PRECO DESC;
SELECT ASSUNTO, TITULO, PRECOFROM LIVROORDER BY 2, PRECO DESC;
17
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Funções para cadeias de caracteres:- LOWER(col) = apresenta o resultado em minúsculas.
- UPPER (col)= apresenta o resultado em maiúsculas.
- INITCAP (col)= apresenta o resultado com a primeira letra maiúscula decada palavra.
- REPLACE (col, cadeia1, cadeia2)= Substitui um caractere ou caracteresde uma cadeia com 0 ou mais caracteres.
Ex: REPLACE(nome, ‘be’, ‘da’) – Abel Adal
- SUBSTR (col, inicio, qtd)= Obtém parte de uma cadeia.
Ex: SUBSTR(nome,2,2) – Abel be
- CONCAT (col1, col2)= Devolve “col1" concatenada com “col2".
18
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Funções para cadeias de caracteres:- LPAD (col, tam, ‘char’)= Adiciona caracteres à esquerda do resultado até que
tenha uma certa longitude.
- RPAD (col, tam, ‘char’)= Adiciona caracteres à direita do resultado até que tenhauma certa longitude.
Ex: LPAD(nome, 10, ‘*’) = ******Abel
Ex: RPAD(nome, 10, ‘*’) = Abel******
- LTRIM (col, ‘chars’)= Suprime um conjunto de caracteres à esquerda doresultado.
- RTRIM (col, ‘chars’)= Suprime um conjunto de caracteres à direita da cadeia.
Ex: LTRIM(nome, ‘a’) = Abel - bel
Ex: RTRIM(nome, ‘el’) = Abel - Ab
19
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Funções para números:• ABS(n)= Devolve o valor absoluto de (n).• CEIL(n)=Obtém o valor inteiro imediatamente superior ou
igual a "n".• FLOOR(n) = Devolve o valor inteiro imediatamente inferior
ou igual a "n".• MOD (m, n)= Devolve o resto resultante de dividir "m" por
"n".• NVL (col, valor)= Substitui um valor nulo por outro valor.• NULLIF(col, valor) = retorna NULL se col = valor;• POWER (m, exponente)= Calcula a potência de um
número.• SQRT(n)= Devolve a raiz quadrada de "n". 20
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Funções para conversão de tipos:– CAST– Sintaxe:
• CAST(dado_origem as tipo_dado_destino)
SELECT CAST (AVG(PRECO) AS DECIMAL(10,2))
FROM PRODUTO;
SELECT CAST (’11/02/2002’ AS DATE)FROM DUAL; 21
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Junção Interna:– Select Titulo, Descricao
From Livro INNER JOINAssuntoon Assunto = SiglaWhere Preco > 100
– Select Nome, TituloFrom LivroINNER JOIN Editora Eon Editora = E.Codigo
INNER JOIN Assuntoon Assunto = Sigla 22
Linguagem de Manipulação de Dados (DML)
Select Titulo, DescricaoFrom Livro, AssuntoWhere Assunto = Siglaand Preco > 100
Select Nome, IdadeFrom PessoaINNER JOIN GenteUSING (CPF)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Junção Externa à Esquerda:– Select *
From Livro li LEFT OUTER JOIN Assuntoaon li.cod_assunto = a.cod_assunto
23
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Junção Externa à Direita:– Select *
From Livro li RIGHT OUTER JOINAssunto aon li.cod_assunto = a.cod_assunto
24
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Junção Externa Completa:– Select *
From Livro li FULL OUTER JOIN Assunto aon li.cod_assunto = a.cod_assunto
25
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Junção Cruzada (Produto Cartesiano):– Select Cod_Pac, Nome_Pac, Cod_Med, Nome_Med
From Paciente CROSS JOIN Medico
26
Linguagem de Manipulação de Dados (DML)
PACIENTE
MEDICO
PACIENTE X MEDICO
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Subconsultas não-correlacionadas:– SELECT Nome
FROM EditoraWHERE Codigo IN (SELECT Editora
FROM LivroWHERE Lancamento IS NOT NULL)
– Nome das editoras que já lançaram livros.
27
Linguagem de Manipulação de Dados (DML)
EditoraLivro
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Subconsultas não-correlacionadas:– SELECT Descricao
FROM AssuntoWHERE Sigla NOT IN (SELECT Assunto
FROM LivroWHERE Lancamento IS NOT NULL)
– Assuntos que não foram lançados livros.
28
Linguagem de Manipulação de Dados (DML)
Livro Assunto
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Subconsultas correlacionadas:– SELECT Nome
FROM Editora EDWHERE EXISTS (SELECT Editora
FROM Livro LWHERE Lancamento IS NOT NULLAND ED.Codigo = L.Editora)
29
Linguagem de Manipulação de Dados (DML)
29
EditoraLivro
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Subconsultas correlacionadas:– SELECT Descricao
FROM Assunto AWHERE NOT EXISTS (SELECT Assunto
FROM Livro LWHERE Lancamento IS NOT NULLAND A.Sigla = L.Assunto)
30
Linguagem de Manipulação de Dados (DML)
Livro Assunto
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• União:– SELECT Titulo
FROM LivroWHERE Assunto = ‘B’
Union [ALL] (com linhas repetidas)SELECT TituloFROM LivroWHERE Assunto = ‘P’
31
Linguagem de Manipulação de Dados (DML)
Livro
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• União:– SELECT *
FROM LivroWHERE Assunto = ‘B’
UNION CORRESPONDING BY (Nome, Autor, Data_Lancamento)SELECT *FROM ObraWHERE Area_Concentracao = ‘P’;
32
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Interseção:– SELECT Titulo
FROM LivroWHERE Assunto IN (‘B’, ‘R’)
INTERSECTSELECT TituloFROM LivroWHERE Assunto IN (‘B’, ‘P’)
33
Linguagem de Manipulação de Dados (DML)
Livro
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Diferença:– SELECT Titulo
FROM LivroWHERE Assunto IN (‘B’, ‘R’)
EXCEPTSELECT TituloFROM LivroWHERE Assunto IN (‘B’, ‘P’)
34
Linguagem de Manipulação de Dados (DML)
Livro
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
• Comando MERGE (UPSERT):MERGE INTO Cliente CUSING AUTOR AON (A.CPF = C.CPF)WHEN MATCHED THEN
UPDATE SET C.NOME = A.NOMEC.ENDERECO = A.ENDERECOC.DATA_NASCIMENTO = A. DATA_NASCIMENTO
WHEN NOT MATCHED THENINSERT (CODIGO, NOME, CPF, ENDERECO, DATA_NASCIMENTO)VALUES (A.MATRICULA, A.NOME, A.CPF, A.ENDERECO,
A.DATA_NASC)
• Atualização da tabela Cliente a partir da tabela Autor35
Linguagem de Manipulação de Dados (DML)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
36
Índice sobre campo chaveCREATE INDEX ind-nome ON EMPREGADO (CPF);
DROP INDEX ind-nome ON tabela-nome;
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
37
Controle de Segurança em SQLGRANT CREATE TAB ON DATABASE TO usuario;
GRANT INSERT, DELETE ON EMPREGADO, PROJETO TO usuario;
GRANT SELECT ON EMPREGADO TO usuario;
GRANT CONTROL ON INDEX ind-dep TO usuario1, usuario2;
GRANT ALL PRIVILEGES ON EMPREGADO TO usuario1;
CREATE ROLE role1;
GRANT role1 TO usuario1;
REVOKE role1 FROM usuario1;
REVOKE CONTROL ON INDEX ind-dep FROM usuario2;
REVOKE DELETE ON EMPREGADO FROM usuario2;
REVOKE ALL PRIVILEGES ON EMPREGADO FROM usuario1;
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
top related