Beruflich Dokumente
Kultur Dokumente
SQL
SQL - Structured Query Language
Linguagem de acesso e manipulao de
sistemas de base de dados
computacionais que segue o padro ANSI
Existem
SQL
DML
DDL
base
ALTER TABLE Modifica uma tabela
DROP TABLE Remove uma tabela da base
CREATE INDEX Cria um novo ndice para a
tabela
DROP INDEX Remove um ndice da tabela
CREATE
Criao
CREATE
Criao
Criao
de tabelas
de ndices
CREATE TABLE
PRIMARY KEY
FOREIGN KEY
INDEX
CREATE TABLE
CHAR
NUMBER
DATE
CLOB
XMLTYPE
(n)
CREATE TABLE
EXEMPLO
CREATE TABLE CONTA
( cod_agen
VARCHAR2(5),
cod_cli
VARCHAR2(5),
num_conta
NUMBER PRIMARY KEY,
saldo
NUMBER NOT NULL,
CONSTRAINT foreign_agen FOREIGN KEY
(cod_agen) REFERENCES agencia (cod_agen)
);
ALTER TABLE
ALTER TABLE
EXEMPLO
ALTER TABLE conta ADD data_cont date DEFAULT
SYSDATE
Cod_agen
Cod_cli
Num_conta
Saldo
Data_cont
Ag1
C3
101
500
10/04/2008
Ag2
C2
202
730
10/04/2008
Ag3
C1
404
620
10/04/2008
Ag4
C4
303
280
10/04/2008
Ag3
C3
505
170
10/04/2008
DROP
DATABASE <nome_base>
DROP TABLE <nome_tabela>
DROP INDEX <nome_indice>
DROP INDEX
Exemplo
DROP INDEX index_agecli
CREATE VIEW
CREATE
VIEW <nome_view> AS
SELECT <colunas> FROM <tabela>
WHERE <coluna1> = <valor1>
CRATE VIEW
Exemplo
CREATE
VIEW v_conta AS
SELECT CO.cod_cli, CL.nome_cli,
CO.cod_agen, CO.num_conta, CO.saldo
FROM conta CO, cliente CL
WHERE CO.cod_cli = CL.cod_cli
CREATE VIEW
Exemplo
Tabela
Cod_cli
v_conta
Nome_cli
Cod_agen Num_conta
Saldo
C3
Maria
Ag1
101
500
C2
Roberto
Ag2
202
730
C1
Joo
Ag3
404
620
C4
Carlos
Ag4
303
280
C3
Maria
Ag3
505
170
Exerccios
Tabela Cliente
Cod_cli Nome_cli Rua
Cidade
Idade
C1
Joo
Rua X1
Botucatu
34
C2
Roberto
Rua N2
Pardinho
29
C3
Maria
Rua V5
Pardinho
42
C4
Carlos
Rua T8
Botucatu
45
C5
Ana
Rua X1
Botucatu
27
Tabela Agencia
Cod_agen
Nome_agen Gerente
Cidade
Ag1
Centro
Jair
Botucatu
Ag2
Principal
Raul
Pardinho
Ag3
Especial
Valeria
Pardinho
Ag4
Bairro
Valeria
Botucatu
Exerccios
Tabela Emprestimo
Cod_agen
Cod_cli
Num_emprest
Valor
Ag3
C1
E1
1500
Ag2
C2
E2
800
Ag2
C2
E3
300
Ag1
C3
E4
700
Ag3
C3
E5
500
Tabela Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
Exerccios
1.
2.
3.
4.
5.
6.
DML
base
UPDATE Altera alguma informao da
tabela
DELETE Deleta uma tupla de uma tabela
INSERT Insere uma nova tupla na tabela da
base
SELECT
FROM
SELECT
SELECT
Exemplos:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
SELECT
Resultados:
(1)
Cod_cli
(2)
Cod_cli
Cod_agen
C3
C3
Ag1
C2
C2
Ag2
C1
C1
Ag3
C4
C4
Ag4
C3
C3
Ag3
SELECT - DISTINCT
C2
C1
C4
WHERE
ao operador de seleo da
lgebra relacional
SELECT
WHERE
Operadores de condio:
=,
WHERE
Exemplo:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
WHERE
Resultado:
(1)
Cod_agen
Cod_cli
Num_conta
Saldo
Ag2
C2
202
730
Ag3
C1
404
620
LIKE
Uso do LIKE:
SELECT * FROM conta WHERE nome LIKE A%
Relacao Conta
Cod_cli
Nome
C1
Alberto
C2
Ricardo
C3
Ana
LIKE
Resultado
Cod_cli
Nome
C1
Alberto
C3
Ana
Renomeando
Exerccios
Tabela Cliente
Cod_cli Nome_cli Rua
Cidade
Idade
C1
Joo
Rua X1
Botucatu
34
C2
Roberto
Rua N2
Pardinho
29
C3
Maria
Rua V5
Pardinho
42
C4
Carlos
Rua T8
Botucatu
45
C5
Ana
Rua X1
Botucatu
27
Tabela Agencia
Cod_agen
Nome_agen Gerente
Cidade
Ag1
Centro
Jair
Botucatu
Ag2
Principal
Raul
Pardinho
Ag3
Especial
Valeria
Pardinho
Ag4
Bairro
Valeria
Botucatu
Exerccios
Tabela Emprestimo
Cod_agen
Cod_cli
Num_emprest
Valor
Ag3
C1
E1
1500
Ag2
C2
E2
800
Ag2
C2
E3
300
Ag1
C3
E4
700
Ag3
C3
E5
500
Tabela Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
Exerccios
1.
2.
3.
4.
5.
6.
INSERT
bsicas:
INSERT
Exemplo:
Inserir
Cod_agen
Ag1
Cod_cli
C4
Num_conta
606
Saldo
900
INSERT
Resultado:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
Ag1
C4
606
900
UPDATE
bsica:
UPDATE
Exemplo:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
UPDATE
Resultado:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
1000
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
1000
DELETE
bsica:
DELETE
Exemplo:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
DELETE
Resultado:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
1000
Ag2
C2
202
730
Ag3
C1
404
620
Ag3
C3
505
1000
Exerccios
Tabela Cliente
Cod_cli Nome_cli Rua
Cidade
Idade
C1
Joo
Rua X1
Botucatu
34
C2
Roberto
Rua N2
Pardinho
29
C3
Maria
Rua V5
Pardinho
42
C4
Carlos
Rua T8
Botucatu
45
C5
Ana
Rua X1
Botucatu
27
Tabela Agencia
Cod_agen
Nome_agen Gerente
Cidade
Ag1
Centro
Jair
Botucatu
Ag2
Principal
Raul
Pardinho
Ag3
Especial
Valeria
Pardinho
Ag4
Bairro
Valeria
Botucatu
Exerccios
Tabela Emprestimo
Cod_agen
Cod_cli
Num_emprest
Valor
Ag3
C1
E1
1500
Ag2
C2
E2
800
Ag2
C2
E3
300
Ag1
C3
E4
700
Ag3
C3
E5
500
Tabela Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
Exerccios
1.
2.
3.
4.
5.
6.
ORDER BY
bsica:
ORDER BY
Exemplo:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
ORDER BY
Resultado:
Tabela
Resultado
Cod_agen
Cod_cli
Num_conta
Saldo
Ag3
C3
505
170
Ag4
C4
303
280
Ag1
C3
101
500
Ag3
C1
404
620
Ag2
C2
202
730
ORDER BY
Crescente (ASC)
Decrescente (DESC)
AND e OR
SELECT <colunas> FROM <tabela> WHERE
<coluna1> = <valor1> AND <coluna2> = <valor2>
SELECT <colunas> FROM <tabela> WHERE
<coluna1> = <valor1> OR <coluna2> = <valor2>
IN
BETWEEN
NOT (modificador)
NOT IN
NOT BETWEEN
Exemplo
Tabela Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Tabela Cliente
Cod_cli
Nome_cli
Rua
Cidade
Idade
C1
Joo
Rua X1
Botucatu
34
C2
Roberto
Rua N2
Pardinho
29
C3
Maria
Rua V5
Pardinho
42
Exemplo
SELECT cod_agen, t1.cod_cli, nome_cli, num_conta, saldo
FROM conta AS t1, cliente AS t2
WHERE t1.cod_cli = t2.cod_cli
Cod_agen
Cod_cli
Nome_cli
Num_conta
Saldo
Ag1
C3
Maria
101
500
Ag2
C2
Roberto
202
730
UNION
UNION
Exemplo:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
UNION
(1) SELECT cod_cli FROM conta WHERE saldo >= 500
UNION
(2) SELECT cod_cli FROM conta WHERE saldo > 300
(1)
Cod_cli
(2)
Cod_cli
Resultado
C3
C4
C3
C2
C3
C2
C1
Cod_cli
C1
C4
UNION ALL
(1) SELECT cod_cli FROM conta WHERE saldo >= 500
UNION ALL
(2) SELECT cod_cli FROM conta WHERE saldo > 300
(1)
Cod_cli
(2)
Cod_cli
Resultado
C3
C4
C3
C2
C3
C2
C1
Cod_cli
C1
C4
C3
INTERSECT
INTERSECT
Exemplo:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
INTERSECT
(1) SELECT cod_cli FROM conta WHERE saldo >= 500
INTERSECT
(2) SELECT cod_cli FROM conta WHERE saldo < 400
(1)
Cod_cli
(2)
Cod_cli
Resultado
C3
C4
C3
C2
C3
C1
Cod_cli
MINUS
MINUS
Exemplo:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
MINUS
(1) SELECT cod_cli FROM conta WHERE saldo >= 500
MINUS
(2) SELECT cod_cli FROM conta WHERE saldo < 400
(1)
Cod_cli
(2)
Cod_cli
Resultado
C3
C4
C2
C2
C3
C1
C1
Cod_cli
FUNES
AVG (<coluna>) calcula a mdia
SUM (<coluna>) soma os valores
MIN (<coluna>) recupera o menor valor
MAX (<coluna>) recupera o maior valor
COUNT (<coluna>) quantidade de
colunas no nulas selecionadas
COUNT (*) informa a quantidade de
colunas selecionadas
FUNES
UPPER (<string>) transforma todas os
caracteres da string em maisculo
SYSDATE recupera a data corrente do
banco de dados
NVL (<exp1>,<exp2>) caso <exp1> seja
nula usa <exp2>, seno usa <exp1>
NVL2 (<exp1>,<exp2>,<exp3>) caso
<exp1> seja nula usa <exp2>, seno usa
<exp3>
GROUP BY
Forma bsica:
GROUP BY
Exemplo:
Tabela
Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
GROUP BY
Resultado:
Tabela
Resultado
Cod_cli
Saldo
C1
620
C2
730
C3
670
C4
280
Exerccios
Tabela Cliente
Cod_cli Nome_cli Rua
Cidade
Idade
C1
Joo
Rua X1
Botucatu
34
C2
Roberto
Rua N2
Pardinho
29
C3
Maria
Rua V5
Pardinho
42
C4
Carlos
Rua T8
Botucatu
45
C5
Ana
Rua X1
Botucatu
27
Tabela Agencia
Cod_agen
Nome_agen Gerente
Cidade
Ag1
Centro
Jair
Botucatu
Ag2
Principal
Raul
Pardinho
Ag3
Especial
Valeria
Pardinho
Ag4
Bairro
Valeria
Botucatu
Exerccios
Tabela Emprestimo
Cod_agen
Cod_cli
Num_emprest
Valor
Ag3
C1
E1
1500
Ag2
C2
E2
800
Ag2
C2
E3
300
Ag1
C3
E4
700
Ag3
C3
E5
500
Tabela Conta
Cod_agen
Cod_cli
Num_conta
Saldo
Ag1
C3
101
500
Ag2
C2
202
730
Ag3
C1
404
620
Ag4
C4
303
280
Ag3
C3
505
170
Exerccios
1.
2.
3.
4.
5.
6.
7.