Você está na página 1de 38

Structured Query Language (SQL)

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Incluso 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

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML) Consulta simples:


SELECT COL1, COL2,...,COLN FROM NOME_TABELA WHERE (expresso lgica) GROUP BY (atributos de agrupamento) HAVING (condio de agrupamento) ORDER BY (lista de atributos)

Where: filtra antes do agrupamento. Having: filtra depois do agrupamento.


3 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Exemplo:
Select * From PESSOA; Select CPF, NOME, SEXO, IDADE From PESSOA Where sexo = M or sexo = F; ou Where sexo in (M, F); Select CPF, NOME, SEXO, IDADE From PESSOA Where IDADE > ANY (10,20,30); ou Where IDADE > ALL (10,20,30);

4 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)

5 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Exemplo:
SELECT * FROM DEPT WHERE DNAME LIKE '/_%' ESCAPE '/ Select CPF, NOME, SEXO From PESSOA Where nome like P%; ([CK]%) ([C-K]% intervalo) (not like) Select CPF, NOME, SEXO From PESSOA Where idade is null; (not null) Select CPF, NOME, SEXO From PESSOA Where idade >= 10 and idade <= 20; (between 10 and 20)
6

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML) Exemplo com Alias (apelidos):


Select CPF as Meu_CPF From PESSOA Select CPF, NOME, SEXO From PESSOA as P Where P.idade is null; Select NOME, IDADE + 5 AS NOVA_IDADE From PESSOA;
7 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML) Atualizao:


UPDATE NOME_TABELA SET COL1=VAL1, COL2=VAL2,...,COLN=VALN WHERE (expresso lgica)

Exemplo:
UPDATE PESSOA SET idade = 30 WHERE nome = Paulo;
8 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Deleo:
DELETE FROM NOME_TABELA WHERE (expresso lgica)

Exemplo:
DELETE FROM PESSOA WHERE 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 clusula WHERE, mas como no varre a tabela mais rpido. mais vantajoso para tabelas grandes. O comando TRUNCATE no pode ser utilizado dentro de um bloco de transao (delimitado por BEGIN/COMMIT), porque no existe a possibilidade de desfaz-lo.
9

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML) Funes 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 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML) 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)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com 11

Linguagem de Manipulao de Dados (DML)


Editora Assunto

Livro

12

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML) Funes Agregadas:


SELECT ASSUNTO, AVG(PRECO) FROM LIVRO GROUP BY ASSUNTO; Preo mdio dos livros por assunto SELECT ASSUNTO, COUNT(*) FROM LIVRO GROUP BY ASSUNTO; Quantidade de livros por assunto
13

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Funes Agregadas:
SELECT ASSUNTO, MAX(PRECO) FROM LIVRO GROUP BY ASSUNTO; Preo do livro mais caro de cada assunto. SELECT ASSUNTO FROM LIVRO GROUP BY ASSUNTO HAVING AVG(PRECO) > 50; Assuntos cuja mdia de preo dos livros seja maior que R$ 50,00.
14 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML) Funes Agregadas:


SELECT ASSUNTO, COUNT(*) FROM LIVRO GROUP BY ASSUNTO HAVING COUNT(*) > 2; Assuntos que possuem pelo menos trs livros.

15 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Eliminao de Repeties:
SELECT DISTINCT ASSUNTO AS ASSUNTO FROM LIVRO; Assuntos distintos. SELECT COUNT (ASSUNTO) AS Qtd_ASSUNTO FROM LIVRO; Quantidade de ocorrncia de assuntos. SELECT COUNT (DISTINCT ASSUNTO) AS Dif_ASSUNTO FROM LIVRO; Quantidade de assuntos distintos.
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

16

Linguagem de Manipulao de Dados (DML)


Ordenao de Resultados:
SELECT ASSUNTO, TITULO, PRECO FROM LIVRO ORDER BY ASSUNTO ASC, PRECO DESC; SELECT ASSUNTO, TITULO, PRECO FROM LIVRO ORDER BY ASSUNTO, PRECO DESC; SELECT ASSUNTO, TITULO, PRECO FROM LIVRO ORDER BY 2, PRECO DESC;
17 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML) Funes para cadeias de caracteres:


- LOWER(col) = apresenta o resultado em minsculas. - UPPER (col)= apresenta o resultado em maisculas. - INITCAP (col)= apresenta o resultado com a primeira letra maiscula de cada palavra. - REPLACE (col, cadeia1, cadeia2)= Substitui um caractere ou caracteres de uma cadeia com 0 ou mais caracteres. Ex: REPLACE(nome, be, da) Abel Adal

- SUBSTR (col, inicio, qtd)= Obtm parte de uma cadeia. Ex: SUBSTR(nome,2,2) Abel be

- CONCAT (col1, col2)= Devolve col1" concatenada com col2".


18 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Funes 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 tenha uma certa longitude. Ex: LPAD(nome, 10, *) = ******Abel Ex: RPAD(nome, 10, *) = Abel******

- LTRIM (col, chars)= Suprime um conjunto de caracteres esquerda do resultado. - RTRIM (col, chars)= Suprime um conjunto de caracteres direita da cadeia. Ex: LTRIM(nome, a) = Abel - bel Ex: RTRIM(nome, el) = Abel - Ab
19 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML) Funes para nmeros:


ABS(n)= Devolve o valor absoluto de (n). CEIL(n)=Obtm 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 potncia de um nmero. 20 SQRT(n)= Devolve a raiz quadrada de "n".
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)

Funes para converso 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;
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

21

Linguagem de Manipulao de Dados (DML)


Juno Interna:
Select Titulo, Descricao From Livro INNER JOIN Assunto on Assunto = Sigla Where Preco > 100 Select Nome, Titulo From Livro INNER JOIN Editora E on Editora = E.Codigo INNER JOIN Assunto on Assunto = Sigla
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Select Titulo, Descricao From Livro, Assunto Where Assunto = Sigla and Preco > 100

Select Nome, Idade From Pessoa INNER JOIN Gente USING (CPF)

22

Linguagem de Manipulao de Dados (DML) Juno Externa Esquerda:


Select * From Livro li LEFT OUTER JOIN Assunto a on li.cod_assunto = a.cod_assunto

23

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML) Juno Externa Direita:


Select * From Livro li RIGHT OUTER JOIN Assunto a on li.cod_assunto = a.cod_assunto

24

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Juno Externa Completa:
Select * From Livro li FULL OUTER JOIN Assunto a on li.cod_assunto = a.cod_assunto

25

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Juno Cruzada (Produto Cartesiano):
Select Cod_Pac, Nome_Pac, Cod_Med, Nome_Med From Paciente CROSS JOIN Medico

PACIENTE PACIENTE X MEDICO

MEDICO

26

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Subconsultas no-correlacionadas:
SELECT Nome FROM Editora WHERE Codigo IN (SELECT Editora FROM Livro WHERE Lancamento IS NOT NULL) Nome das editoras que j lanaram livros.
Livro Editora

27

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Subconsultas no-correlacionadas:
SELECT Descricao FROM Assunto WHERE Sigla NOT IN (SELECT Assunto FROM Livro WHERE Lancamento IS NOT NULL) Assuntos que no foram lanados livros.
Livro Assunto

28

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Subconsultas correlacionadas:
SELECT Nome FROM Editora ED WHERE EXISTS (SELECT Editora FROM Livro L WHERE Lancamento IS NOT NULL AND ED.Codigo = L.Editora)

Livro

Editora

29 29

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Subconsultas correlacionadas:
SELECT Descricao FROM Assunto A WHERE NOT EXISTS (SELECT Assunto FROM Livro L WHERE Lancamento IS NOT NULL AND A.Sigla = L.Assunto)

Livro

Assunto

30 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Unio:
SELECT Titulo FROM Livro WHERE Assunto = B Union [ALL] (com linhas repetidas) SELECT Titulo FROM Livro WHERE Assunto = P
Livro

31

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Unio:
SELECT * FROM Livro WHERE Assunto = B UNION CORRESPONDING BY (Nome, Autor, Data_Lancamento) SELECT * FROM Obra WHERE Area_Concentracao = P;

32 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Interseo:
SELECT Titulo FROM Livro WHERE Assunto IN (B, R) INTERSECT SELECT Titulo FROM Livro WHERE Assunto IN (B, P)
Livro

33 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Diferena:
SELECT Titulo FROM Livro WHERE Assunto IN (B, R) EXCEPT SELECT Titulo FROM Livro WHERE Assunto IN (B, P)
Livro

34

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Linguagem de Manipulao de Dados (DML)


Comando MERGE (UPSERT):
MERGE INTO Cliente C USING AUTOR A ON (A.CPF = C.CPF) WHEN MATCHED THEN UPDATE SET C.NOME = A.NOME C.ENDERECO = A.ENDERECO C.DATA_NASCIMENTO = A. DATA_NASCIMENTO WHEN NOT MATCHED THEN INSERT (CODIGO, NOME, CPF, ENDERECO, DATA_NASCIMENTO) VALUES (A.MATRICULA, A.NOME, A.CPF, A.ENDERECO, A.DATA_NASC)

Atualizao da tabela Cliente a partir da tabela Autor


35 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

ndice sobre campo chave


CREATE INDEX ind-nome ON EMPREGADO (CPF); DROP INDEX ind-nome ON tabela-nome;

36

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Controle de Segurana em SQL


GRANT 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;
37

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Você também pode gostar