Escolar Documentos
Profissional Documentos
Cultura Documentos
SQL Tutorial PDF
SQL Tutorial PDF
SQL
Linguagem de Consulta Estruturada
Reviso
Servidores de arquivos
x
Gerenciadores de Bancos de Dados
u Acesso a Dados
n Sistemas de Arquivos
l Os dados so obtidos aps percorrer-se um ou mais
arquivos, por meio de linguagens de programao,
sendo em geral necessria a construo de um novo
programa para cada nova consulta
n Banco de Dados Relacional
l O gerenciador de banco de dados obtm as
informaes que foram solicitadas por meio de uma
linguagem de consulta padro, e entrega-as em forma
de lista (ou relatrio)
Entidades
Entidades Relacionamentos
Relacionamentos Atributos
Atributos
Colunas
Colunas
Existe Colunas
Existe como
como Tabelas
Tabelas
Colunas
ou
(ou
(ou Campos)
Campos)
ou Tabelas
Tabelas numa
numa Tabela
Tabela
Informao
Informao dede Nome,
Nome,
um
um cliente;
cliente; Pedidos
Pedidos dede Endereo,
Endereo,
Exemplos
Exemplos informao
informao dede um cliente
um cliente Telefone
Telefone dodo
um pedido
um pedido cliente
cliente
clientes
identificador nome . .. . ..
PK NN NN NN NN
1001 Joo S .. . 98022 NULL 05 Jun 1992
1002 Alberto. S .. . 98022 206-555-1212 07 Ago 1992
1008 Wilson . . 98026 NULL 03 Mar 1993
Pedidos
numero cliente produto
PK PK,FK, NN NN
1 1002 567
1 1001 566
2 1001 122
Comandos
da
Linguagem de Consulta Estruturada
ANTES DEPOIS
nome telefone
DROP
DROP TABLE
TABLE clientes
clientes
ANTES DEPOIS
nome telefone
Joo 445-0988
Alberto 465-98-87
Maria 789-9877
Francisco null
Comandos
da
Linguagem de Consulta Estruturada
SELECT
SELECT nome,telefone
nome,telefone
FROM clientes
FROM clientes
nome telefone
Joo 445-0988
Alberto 465-98-87
Maria 789-9877
Francisco null
SELECT
SELECT nome,telefone
nome,telefone
FROM clientes
FROM clientes
WHERE
WHERE nome
nome == Joo
Joo
nome telefone
Joo 445-0988
INSERT
INSERT clientes
clientes (nome,telefone)
(nome,telefone)
VALUES
VALUES (Snia,
(Snia, null)
null)
ANTES DEPOIS
UPDATE
UPDATE clientes
clientes
SET telefone == 882-3344
SET telefone 882-3344
WHERE nome = Snia
WHERE nome = Snia
ANTES DEPOIS
DELETE
DELETE clientes
clientes
WHERE nome == Snia
WHERE nome Snia
ANTES DEPOIS
DELETE
DELETE clientes
clientes
ANTES DEPOIS
Joo 445-0988
Alberto 465-98-87
Maria 789-9877
Francisco null
Snia 882-3344
n SELECT colunas
FROM tabela
WHERE condio
n INSERT tabela
VALUES ( contedo a armazenar )
n UPDATE tabela
SET coluna = novo contedo
WHERE condio
n DELETE tabela
WHERE condio
Jos Simo de Paula Pinto
25
Exerccios de fixao
Prtica
da
Linguagem de Consulta Estruturada
cod nome
1 Ana
2 Pedro
3 Tnia
4 Maria
5 Joo
cod descricao
1 Barco
2 Sabonete
3 Abacaxi
cod valor
1 500.80
2 32.89
3 2.00
3 1 1
1 2 8
2 2 5
1 3 1
4 3 10
2 1 1
SELECT
SELECT nome
nome FROM
FROM cliente
cliente
nome
Ana
Pedro
Tnia
Maria
Joo
SELECT
SELECTdescricao
descricaoFROM
FROMproduto
produto
descricao
Barco
Sabonete
Abacaxi
SELECT
SELECTvalor
valorFROM
FROMpreco
preco
valor
500.80
32.89
2.00
SELECT
SELECT**FROM
FROMvenda
venda
3 1 1
1 2 8
2
1
4
2
3
3
5
1
10
???
2 1 1
Comandos
da
Linguagem de Consulta Estruturada
SELECT
SELECT nome
nome SELECT
SELECT nome
nome
FROM cliente
FROM cliente FROM
FROM cliente
cliente
ORDER
ORDER BY
BY nome
nome ORDER
ORDER BY
BY nome
nome DESC
DESC
ASC DESC
nome nome
Ana Tnia
Joo Pedro
Maria Maria
Pedro Joo
Tnia Ana
u Operadores de comparao
= Igual
> Maior
< Menor
LIKE Parecido
SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE cod
cod==44
nome
Maria
SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE cod
cod<><>44
nome
Ana
Pedro
Tnia
Joo
SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE nome
nome LIKE
LIKE %a
%a
nome
Ana
Tnia
Maria
u Operadores AND e OR
n Operador AND
n Operador OR
SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE cod
cod>>4040
AND
AND nome
nome == Maria
Maria
nome
SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE cod
cod>>4040
OR
OR nome
nome == Maria
Maria
nome
Maria
SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE cod
cod<<33
AND
AND nome
nome LIKE
LIKE %o
%o
OR
OR nome
nome == Maria
Maria
nome
Pedro
Maria
SELECT
SELECT descricao,
descricao,valor
valor
FROM
FROM produto,
produto,preco
preco
WHERE
WHERE produto.cod
produto.cod==preco.cod
preco.cod
cod descricao cod valor
1 Barco 1 500.80
2 Sabonete 2 32.89
3 Abacaxi 3 2.00
descricao valor
Barco 500.80
Sabonete 32.89
Abacaxi 2.00
u Operadores de agregao
SELECT
SELECT MAX(
MAX(valor
valor))
FROM
FROM preco
preco
-->
-->Retorna
Retornaoomaior
maiorpreo
preo
SELECT
SELECT AVG(
AVG(valor
valor))
FROM
FROM preco
preco
-->
-->Retorna
Retornaaamdia
mdiadedepreos
preos
SELECT
SELECT COUNT(
COUNT(**))
FROM
FROM cliente
cliente
-->
-->Retorna
Retornaaaquantidade
quantidadede
declientes
clientes
SELECT
SELECT descricao,
descricao,unidades=sum(qtdade)
unidades=sum(qtdade)
FROM
FROM produto,
produto,venda
venda
WHERE
WHERE produto.cod
produto.cod== venda.produto
venda.produto
GROUP
GROUPBYBY descricao
descricao
descricao unidades
Abacaxi 11
Barco 2
Sabonete 13
u Operador DISTINCT
SELECT
SELECTdescricao
descricao SELECT
SELECTDISTINCT
DISTINCT(descricao)
(descricao)
FROM
FROM produto,venda
produto, venda FROM produto, venda
FROM produto, venda
WHEREproduto.cod
WHEREproduto.cod==venda.produto
venda.produto WHEREproduto.cod
WHEREproduto.cod==venda.produto
venda.produto
descricao descricao
Barco Abacaxi
Sabonete Barco
Sabonete Sabonete
Abacaxi
Abacaxi
Barco
u Operadores IN e BETWEEN
SELECT
SELECT descricao
descricao
FROM
FROM produto
produto
WHERE
WHERE descricao
descricaoIN
IN(
(Abacaxi,
Abacaxi,Sabonete
Sabonete))
descricao
Sabonete
Abacaxi
SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE cod
codBETWEEN
BETWEEN22and
and33
descricao
nome
Pedro
Barco
Sabonete
Tnia
Abacaxi
SELECT
SELECT descricao,
descricao,unidades=sum(qtdade)
unidades=sum(qtdade)
FROM
FROM produto,
produto,venda
venda
WHERE
WHERE produto.cod
produto.cod== venda.produto
venda.produto
GROUP
GROUPBYBY descricao
descricao
HAVING
HAVING sum(qtdade)
sum(qtdade)>>1212
descricao unidades
Sabonete 13
Prtica
da
Linguagem de Consulta Estruturada
Comandos
da
Linguagem de Consulta Estruturada
u STORED PROCEDURES
CREATE
CREATEPROCEDURE
PROCEDUREQualNome
QualNome@codigo
@codigoint
intAS
AS
SELECT
SELECTcod,
cod, nome
nome
FROM
FROMcliente
cliente
WHERE
WHEREcodcod==@codigo
@codigo
QualNome
QualNome55
cod nome
5 Joo
CREATE
CREATEPROCEDURE
PROCEDURETotal Total@codigo
@codigoint,
int,@quantos
@quantosint
intAS
AS
DECLARE
DECLARE@saida
@saida money
money
SELECT
SELECT@saida
@saida==@quantos
@quantos**(SELECT
(SELECTvalor
valorFROM
FROMpreco
preco
WHERE
WHEREcodcod==@codigo)
@codigo)
SELECT
SELECTPreo
Preototal
total==@saida
@saida
Total
Total3,
3,10
10
Preo total
20.00
Prtica
da
Linguagem de Consulta Estruturada