SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Treinamento básico 
José Simão de Paula Pinto 
1 
SQL 
Linguagem de Consulta Estruturada 
Revisão 
José Simão de Paula Pinto 
2 
Servidores de arquivos 
x 
Gerenciadores de Bancos de Dados
José Simão de Paula Pinto 
3 
uVisão Geral 
n Sistemas de Arquivos x Banco de Dados Relacional 
n Conceitos Básicos de Bancos de Dados Relacional 
José Simão de Paula Pinto 
4 
uAcesso a Dados 
n Sistemas de Arquivos 
l Os dados são obtidos após percorrer-se um ou mais 
arquivos, por meio de linguagens de programação, 
sendo em geral necessária a construção de um novo 
programa para cada nova consulta 
n Banco de Dados Relacional 
l O gerenciador de banco de dados obtém as 
informações que foram solicitadas por meio de uma 
linguagem de consulta padrão, e entrega-as em forma 
de lista (ou relatório)
Informação de 
um cliente; 
informação de 
um pedido 
Colunas 
ou Tabelas 
Pedidos de 
um cliente 
José Simão de Paula Pinto 
5 
uO Modelo de Entidades e Relacionamentos 
EExxiissttee ccoommoo 
EExxeemmppllooss 
EEnnttiiddaaddeess RReellaacciioonnaammeennttooss AAttrriibbuuttooss 
TTaabbeellaass 
Informação de 
um cliente; 
informação de 
um pedido 
Colunas 
ou Tabelas 
Pedidos de 
um cliente 
Colunas 
(ou Campos) 
numa Tabela 
Colunas 
(ou Campos) 
numa Tabela 
Nome, 
Endereço, 
Telefone do 
cliente 
Nome, 
Endereço, 
Telefone do 
cliente 
uTabelas (Entidades) e Colunas (Atributos) 
n Tabelas tem nomes únicos 
n São compostas por linhas e colunas 
n Linhas e colunas podem estar em qualquer ordem 
n Tem um identificador único: chave primária (Primary 
Key) 
José Simão de Paula Pinto 
6 
identificador nome endereço telefone … … ... 
1001 
João 
… … . 
5554444 
~~~ 
1002 
Alberto 
… … . 
4687999 
~~~ 
1003 
Franciso 
… … .. 
NULL 
~~~ 
1004 
Maria 
… … .. 
5678900 
1005 
Sônia 
… … ... 
0988855 
~~~ 
1006 
Roberto 
… … … . 
NULL 
~~~ 
clientes 
n Colunas: atributos
José Simão de Paula Pinto 
7 
uRelacionamentos 
identificador nome … … … . … … … .. … … . … … … … .. 
1001 
1002 
1008 
João 
Alberto. 
Wilson 
S… .. 
S… .. 
… … . 
… . 
… . 
… . 
98022 
98022 
98026 
NULL 
206-555-1212 
NULL 
05 Jun 1992 
07 Ago 1992 
03 Mar 1993 
clientes 
PK NN NN NN NN 
numero cliente produto 
112 
1002 
1001 
1001 
Pedidos 
PK PK,FK, NN NN 
567 
566 
122 
José Simão de Paula Pinto 
8 
uSQL - “Structured Query Language” 
n SQL - linguagem estruturada criada para a manipulação 
dos elementos do banco de dados 
n Características importantes: 
l Padronizada para os bancos de dados relacionais. 
l Cada comando é uma descrição do que se deseja 
obter. 
l Quem executa o comando é o gerenciador do banco de 
dados.
Definição de dados - DDL 
José Simão de Paula Pinto 
9 
Comandos 
da 
Linguagem de Consulta Estruturada 
José Simão de Paula Pinto 
10 
uCriar uma tabela - CREATE TABLE 
n Permite a criação de uma tabela e a especificação de 
como será seu conteúdo (nomes e tipos de dados das 
colunas) 
n Palavras chave: 
l CREATE TABLE - especifica o nome da tabela. 
l CHAR, VARCHAR - tipos de dados para caracteres. 
l INT - tipo de dados para números.
CREATE TABLE clientes 
( 
nome VARCHAR(40), 
telefone VARCHAR(10) 
) 
José Simão de Paula Pinto 
11 
uExemplo de criação de tabela - CREATE TABLE 
ANTES 
DEPOIS 
nome telefone 
CREATE TABLE clientes 
( 
nome VARCHAR(40), 
telefone VARCHAR(10) 
) 
José Simão de Paula Pinto 
12 
uApagar (destruir) uma tabela - DROP TABLE 
n Permite apagar uma tabela (não somente o conteúdo, 
mas a tabela em si) de um banco de dados. 
n Palavras chave: 
l DROP TABLE - apaga a tabela indicada 
n ATENÇÃO: este comando apagará a tabela e todo o seu 
conteúdo do banco de dados especificado ou em uso. 
Não existe volta ! Use com cuidado !
José Simão de Paula Pinto 
13 
uExemplo de deleção de tabela - DROP TABLE 
ANTES 
telefone 
João 
Alberto 
Maria 
Francisco 
445-0988 
465-98-87 
789-9877 
null 
nome 
DEPOIS 
DDRROOPP TTAABBLLEE cclliieenntteess 
Manipulação de dados - DML 
José Simão de Paula Pinto 
14 
Comandos 
da 
Linguagem de Consulta Estruturada
José Simão de Paula Pinto 
15 
uObtendo informações - SELECT 
n Seleciona linhas e colunas de uma tabela 
n Palavras chave: 
l SELECT - determina quais as colunas a serem 
retornadas ( o asterisco “ * ” seleciona todas). 
l FROM - determina de quais tabelas serão selecionados 
os dados. 
l WHERE - determina quais as linhas deverão ser 
retornadas. A cláusula where também é conhecida por 
critério. 
uExemplo do comando SELECT 
SELECT nome,telefone 
FROM clientes 
José Simão de Paula Pinto 
16 
SELECT nome,telefone 
FROM clientes 
nome telefone 
João 
Alberto 
Maria 
Francisco 
445-0988 
465-98-87 
789-9877 
null
uExemplo do comando SELECT condicional 
SELECT nome,telefone 
FROM clientes 
WHERE nome = ‘João’ 
José Simão de Paula Pinto 
17 
SELECT nome,telefone 
FROM clientes 
WHERE nome = ‘João’ 
nome telefone 
João 445-0988 
José Simão de Paula Pinto 
18 
uAdicionando linhas - INSERT 
n Insere linhas em uma tabela 
n Palavras chave: 
l INSERT - indica a tabela e os nomes das colunas nas 
quais será realizada a inclusão dos dados. 
l VALUES - informa quais são os valores a serem 
incluídos nas respectivas colunas.
uExemplo do comando INSERT 
INSERT clientes (nome,telefone) 
VALUES (Sônia, null) 
José Simão de Paula Pinto 
19 
INSERT clientes (nome,telefone) 
VALUES (Sônia, null) 
telefone 
João 
Alberto 
Maria 
Francisco 
Sônia 
445-0988 
465-98-87 
789-9877 
null 
null 
nome 
ANTES 
telefone 
João 
Alberto 
Maria 
Francisco 
445-0988 
465-98-87 
789-9877 
null 
nome 
DEPOIS 
José Simão de Paula Pinto 
20 
uAlterando informações - UPDATE 
n Altera o conteúdo de determinadas colunas em uma ou 
mais linhas de uma tabela. 
n Palavras chave: 
l UPDATE - determina qual é a tabela que será alterada. 
l SET - determina quais são as alterações a serem 
realizadas, em em quais colunas elas ocorrerão. 
l WHERE - determina quais são as linhas a serem 
alteradas.
uExemplo do comando UPDATE 
UPDATE clientes 
SET telefone = ”882-3344” 
WHERE nome = ”Sônia” 
ANTES DEPOIS 
José Simão de Paula Pinto 
21 
UPDATE clientes 
SET telefone = ”882-3344” 
WHERE nome = ”Sônia” 
telefone 
João 
Alberto 
Maria 
Francisco 
Sônia 
445-0988 
465-98-87 
789-9877 
null 
882-3344 
nome 
telefone 
João 
Alberto 
Maria 
Francisco 
Sônia 
445-0988 
465-98-87 
789-9877 
null 
null 
nome 
José Simão de Paula Pinto 
22 
uApagando informações - DELETE 
n Apaga uma ou mais linhas de uma tabela. 
n Palavras chave: 
l DELETE - determina qual a tabela que terá linhas 
apagadas. 
l WHERE - determina quais são as linhas a serem 
apagadas. 
n Atenção: este comando não apaga a tabela, somente as 
suas linhas (seu conteúdo) !
uExemplo do comando DELETE condicional 
DELETE clientes 
WHERE nome = ”Sônia” 
José Simão de Paula Pinto 
23 
telefone 
João 
Alberto 
Maria 
Francisco 
Sônia 
445-0988 
465-98-87 
789-9877 
null 
882-3344 
nome 
ANTES 
telefone 
João 
Alberto 
Maria 
Francisco 
445-0988 
465-98-87 
789-9877 
null 
nome 
DEPOIS 
DELETE clientes 
WHERE nome = ”Sônia” 
José Simão de Paula Pinto 
24 
uExemplo de comando DELETE sem condição ! 
telefone 
João 
Alberto 
Maria 
Francisco 
Sônia 
445-0988 
465-98-87 
789-9877 
null 
882-3344 
nome 
ANTES 
DEPOIS 
nome telefone 
DDEELLEETTEE cclliieenntteess
José Simão de Paula Pinto 
25 
uResumo dos comandos de manipulação vistos 
n SELECT colunas 
FROM tabela 
WHERE condição 
n INSERT tabela 
VALUES ( conteúdo a armazenar ) 
n UPDATE tabela 
SET coluna = novo conteúdo 
WHERE condição 
n DELETE tabela 
WHERE condição 
Exercícios de fixação 
José Simão de Paula Pinto 
26 
Prática 
da 
Linguagem de Consulta Estruturada
José Simão de Paula Pinto 
27 
uExercício - Criação de tabelas 
cod nome 
cod descricao 
cod valor 
comprador produto qtdade 
n cliente 
n produto 
n preco 
n venda 
José Simão de Paula Pinto 
28 
uRespostas - Criação de tabelas 
n CREATE TABLE cliente 
( 
cod INT, 
nome CHAR(20) 
) 
n CREATE TABLE produto 
( 
cod INT, 
descricao CHAR(20) 
)
José Simão de Paula Pinto 
29 
uRespostas - Criação de tabelas 
n CREATE TABLE preco 
( 
cod INT, 
valor MONEY 
) 
n CREATE TABLE venda 
( 
comprador INT, 
produto INT, 
qtdade INT 
) 
cod nome 
José Simão de Paula Pinto 
30 
uExercício - Inserção de valores 
cod descricao 
Barco 
Sabonete 
Abacaxi 
123 
Ana 
Pedro 
Tânia 
Maria 
João 
12345
José Simão de Paula Pinto 
31 
uExercício - Inserção de valores 
cod valor 
500.80 
32.89 
2.00 
123 
comprador produto qtdade 
312142 
1851 
10 
1 
122331 
José Simão de Paula Pinto 
32 
uRespostas - Inserção de valores 
n INSERT cliente VALUES(1,'ANA') 
n INSERT cliente VALUES(2,'PEDRO') 
n INSERT cliente VALUES(3,'TÂNIA') 
n INSERT cliente VALUES(4,'MARIA') 
n INSERT cliente VALUES(5,'JOÃO') 
n INSERT produto VALUES(1,'BARCO') 
n INSERT produto VALUES(2,'SABONETE') 
n INSERT produto VALUES(3,'ABACAXI')
José Simão de Paula Pinto 
33 
uRespostas - Inserção de valores 
n INSERT preco VALUES(1, 500.80) 
n INSERT preco VALUES(2, 32.89) 
n INSERT preco VALUES(3, 2.00) 
n INSERT venda VALUES(3,1,1) 
n INSERT venda VALUES(1,2,8) 
n INSERT venda VALUES(2,2,5) 
n INSERT venda VALUES(1,3,1) 
n INSERT venda VALUES(4,3,10) 
n INSERT venda VALUES(2,1,1) 
José Simão de Paula Pinto 
34 
uExercício - Comandos de seleção 
n Selecionar todos os clientes 
n Selecionar todos os produtos 
n Selecionar todos os preços 
n Selecionar todos os registros das vendas efetuadas
José Simão de Paula Pinto 
35 
uResposta - Selecionar todos os clientes 
SSEELLEECCTT nnoommee FFRROOMM cclliieennttee 
nome 
Ana 
Pedro 
Tânia 
Maria 
João 
José Simão de Paula Pinto 
36 
uResposta - Selecionar todos os produtos 
SSEELLEECCTTddeessccrriiccaaooFFRROOMM pprroodduuttoo 
descricao 
Barco 
Sabonete 
Abacaxi
José Simão de Paula Pinto 
37 
uResposta - Selecionar todos os preços 
SSEELLEECCTT vvaalloorr FFRROOMMpprreeccoo 
valor 
500.80 
32.89 
2.00 
José Simão de Paula Pinto 
38 
uResposta - Selecionar todas as vendas efetuadas 
SSEELLEECCTT ** FFRROOMM vveennddaa 
??? 
comprador produto qtdade 
312142 
1851 
10 
1 
122331
Classificação, comparações, 
junção e operadores agregadores 
José Simão de Paula Pinto 
39 
Comandos 
da 
Linguagem de Consulta Estruturada 
José Simão de Paula Pinto 
40 
uOperador de classificação - ORDER BY 
n Destina-se à classificação (ordenação) dos dados, na 
apresentação (não afeta os dados originais na tabela). 
n Palavras chave: 
l ASC - ordenação ascendente (do menor para o maior). 
l DESC - ordenação descendente (do maior para o 
menor)
SELECT nome 
FROM cliente 
ORDER BY nome DESC 
SELECT nome 
FROM cliente 
ORDER BY nome DESC 
DESC 
José Simão de Paula Pinto 
41 
uExemplo do uso de ORDER BY 
SELECT nome 
FROM cliente 
ORDER BY nome 
SELECT nome 
FROM cliente 
ORDER BY nome 
ASC 
nome 
Ana 
João 
Maria 
Pedro 
Tânia 
nome 
Tânia 
Pedro 
Maria 
João 
Ana 
José Simão de Paula Pinto 
42 
uOperadores de comparação 
= Igual 
> Maior 
< Menor 
>= Maior ou igual 
<= Menor ou igual 
<> ou != Diferente ou não igual 
LIKE Parecido
SELECT nome 
FROM cliente 
WHERE cod = 4 
José Simão de Paula Pinto 
43 
uExemplo do uso do operador igual (=) 
SELECT nome 
FROM cliente 
WHERE cod = 4 
nome 
Maria 
SELECT nome 
FROM cliente 
WHERE cod <> 4 
SELECT nome 
FROM cliente 
WHERE cod <> 4 
José Simão de Paula Pinto 
44 
uExemplo do uso do operador diferente ( <> ou != ) 
nome 
Ana 
Pedro 
Tânia 
João
SELECT nome 
FROM cliente 
WHERE nome LIKE ‘%a’ 
SELECT nome 
FROM cliente 
WHERE nome LIKE ‘%a’ 
José Simão de Paula Pinto 
45 
uExemplo do uso do operador LIKE 
nome 
Ana 
Tânia 
Maria 
José Simão de Paula Pinto 
46 
uOperadores AND e OR 
n Operador AND 
E = somente retornará os dados quando as condições 
forem todas satisfeitas 
n Operador OR 
OU = retorna dados assim que qualquer das condições 
for satisfeita
SELECT nome 
FROM cliente 
WHERE cod > 40 
AND nome = ‘Maria’ 
SELECT nome 
FROM cliente 
WHERE cod > 40 
AND nome = ‘Maria’ 
José Simão de Paula Pinto 
47 
uExemplo de uso do operador AND 
nome 
SELECT nome 
FROM cliente 
WHERE cod > 40 
OR nome = ‘Maria’ 
SELECT nome 
FROM cliente 
WHERE cod > 40 
OR nome = ‘Maria’ 
José Simão de Paula Pinto 
48 
uExemplo do uso do operador OR 
nome 
Maria
SELECT nome 
FROM cliente 
WHERE cod < 3 
AND nome LIKE ‘%o’ 
OR nome = ‘Maria’ 
SELECT nome 
FROM cliente 
WHERE cod < 3 
AND nome LIKE ‘%o’ 
OR nome = ‘Maria’ 
José Simão de Paula Pinto 
49 
uExemplo do uso dos operadores AND e OR juntos 
nome 
Pedro 
Maria 
José Simão de Paula Pinto 
50 
uJunção de tabelas - JOIN 
n Utilizamos a junção (JOIN) de tabelas, e seus 
operadores, de maneira a expressar os relacionamentos 
que foram criados quando da montagem da base de 
dados, obtendo os conjuntos de valores originais, 
desnormalizados. 
n A junção é efetuada basicamente efetuando-se uma 
comparação entre dois campos de valores semelhantes 
em tabelas distintas, selecionando em ambas as tabelas 
as linhas que atendam estes valores e combinando-as. 
Estas operações serão efetuadas automaticamente pelo 
gerenciador de bancos de dados.
SELECT descricao, valor 
FROM produto, preco 
WHERE produto.cod = preco.cod 
SELECT descricao, valor 
FROM produto, preco 
WHERE produto.cod = preco.cod 
José Simão de Paula Pinto 
51 
uExemplo de junção - JOIN 
cod descricao 
Barco 
Sabonete 
Abacaxi 
123 
cod valor 
500.80 
32.89 
2.00 
123 
descricao valor 
500.80 
32.89 
2.00 
Barco 
Sabonete 
Abacaxi 
José Simão de Paula Pinto 
52 
uOperadores de agregação 
MIN Retorna o menor valor 
MAX Retorna o maior valor 
COUNT Retorna a quantidade 
de valores 
AVG Retorna a média dos 
valores 
SUM Retorna a soma dos 
valores
SELECT MAX( valor ) 
FROM preco 
--> Retorna o maior preço 
SELECT AVG( valor ) 
FROM preco 
--> Retorna a média de preços 
SELECT COUNT( * ) 
FROM cliente 
--> Retorna a quantidade de clientes 
José Simão de Paula Pinto 
53 
uExemplos de uso de operadores de agregação 
SELECT MAX( valor ) 
FROM preco 
--> Retorna o maior preço 
SELECT AVG( valor ) 
FROM preco 
--> Retorna a média de preços 
SELECT COUNT( * ) 
FROM cliente 
--> Retorna a quantidade de clientes 
José Simão de Paula Pinto 
54 
uAgrupamento / Subtotais - GROUP BY 
n Este comando permite que a apresentação dos dados 
retornados da consulta seja agrupada de acordo com 
uma determinada condição, digamos a soma dos 
valores vendidos para cada produto. É utilizado em 
conjunto com o comando SELECT. 
n Uso: 
SELECT colunas 
FROM tabela 
WHERE condição 
GROUP BY coluna ou agregado
SELECT descricao, unidades=sum(qtdade) 
FROM produto, venda 
WHERE produto.cod = venda.produto 
GROUP BY descricao 
José Simão de Paula Pinto 
55 
uExemplo de agrupamento - GROUP BY 
SELECT descricao, unidades=sum(qtdade) 
FROM produto, venda 
WHERE produto.cod = venda.produto 
GROUP BY descricao 
descricao unidades 
11 
2 
13 
Abacaxi 
Barco 
Sabonete 
José Simão de Paula Pinto 
56 
uOperador DISTINCT 
n O operador DISTINCT possibilita que uma consulta 
retorne valores únicos, sem repetições, para a coluna 
de dados.Este operador deve ser utilizado em conjunto 
com a declaração SELECT. 
n Uso: 
SELECT DISTINCT (coluna) 
FROM tabela 
WHERE condição
SELECT descricao 
FROM produto, venda 
WHEREproduto.cod = venda.produto 
SELECT descricao 
FROM produto, venda 
WHEREproduto.cod = venda.produto 
SELECT DISTINCT (descricao) 
FROM produto, venda 
WHEREproduto.cod = venda.produto 
SELECT DISTINCT (descricao) 
FROM produto, venda 
WHEREproduto.cod = venda.produto 
Usando DISTINCT 
descricao 
José Simão de Paula Pinto 
57 
uExemplo do uso do operador DISTINCT 
SEM usar DISTINCT 
descricao 
Barco 
Sabonete 
Sabonete 
Abacaxi 
Abacaxi 
Barco 
Abacaxi 
Barco 
Sabonete 
José Simão de Paula Pinto 
58 
uOperadores IN e BETWEEN 
n IN = para testar se um valor está dentro de um 
determinado conjunto de valores. Pode utilizar o 
operador IN em conjunto com o operador NOT 
(formando a expressão NOT IN). 
n BETWEEN = para testar se um valor está entre uma 
determinada faixa de valores.
SELECT descricao 
FROM produto 
WHERE descricao IN (‘Abacaxi, ‘Sabonete’) 
José Simão de Paula Pinto 
59 
uExemplo do uso do operador IN 
SELECT descricao 
FROM produto 
WHERE descricao IN (‘Abacaxi, ‘Sabonete’) 
descricao 
Sabonete 
Abacaxi 
SELECT nome 
FROM cliente 
WHERE cod BETWEEN 2 and 3 
José Simão de Paula Pinto 
60 
uExemplo do uso do operador BETWEEN 
SELECT nome 
FROM cliente 
WHERE cod BETWEEN 2 and 3 
descricao 
nome 
Pedro 
Barco 
Tânia 
Sabonete 
Abacaxi
José Simão de Paula Pinto 
61 
uOperador HAVING 
n O operador HAVING deverá ser utilizado em conjunto 
com a declaração SELECT e sua função será a de 
estabelecer um critério extra de agrupamento ou 
seleção de valores, quando utilizando-se a cláusula 
GROUP BY. Pode-se entender a declaração HAVING 
como sendo uma cláusula WHERE para a declaração 
GROUP BY. 
SELECT descricao, unidades=sum(qtdade) 
FROM produto, venda 
WHERE produto.cod = venda.produto 
GROUP BY descricao 
HAVING sum(qtdade) > 12 
José Simão de Paula Pinto 
62 
uExemplo de uso do operador HAVING 
SELECT descricao, unidades=sum(qtdade) 
FROM produto, venda 
WHERE produto.cod = venda.produto 
GROUP BY descricao 
HAVING sum(qtdade) > 12 
descricao unidades 
Sabonete 13
Exercícios de fixação 
José Simão de Paula Pinto 
63 
Prática 
da 
Linguagem de Consulta Estruturada 
José Simão de Paula Pinto 
64 
uExercícios - Comandos de seleção avançados 
n Quantas vendas foram registradas? 
n Qual dos clientes não comprou nada? 
n O que cada cliente comprou e por quanto? 
n Descritivo (descricao, preços unitários e total e 
quantidade) de cada venda, ordenado por produto 
n Quais os totais de compras por cliente? 
n Totais de vendas: quantas vendas e seu valor (geral)
Stored Procedures 
José Simão de Paula Pinto 
65 
Comandos 
da 
Linguagem de Consulta Estruturada 
José Simão de Paula Pinto 
66 
uSTORED PROCEDURES 
n Stored Procedures, ou procedimentos armazenados, 
são como que pequenos programas, escritos em 
linguagem SQL, e ficam armazenados no gerenciador 
de banco de dados. 
n O servidor de bancos de dados realiza uma pré-compilação 
dos procedimentos, e armazena-os em 
memória cache após a sua primeira execução, de 
maneira que tendem a ser / tornar-se mais rápidos que a 
execução de declarações com mesma finalidade a partir 
do cliente.
José Simão de Paula Pinto 
67 
uCriação de STORED PROCEDURES 
n A sintaxe para a criação de uma stored procedure é: 
l CREATE PROCEDURE nome do procedimento AS 
l Exemplo: 
l CREATE PROCEDURE TodosClientes AS 
SELECT * FROM cliente 
l Para sua execução, basta declarar o nome do 
procedimento, neste exemplo TodosClientes 
José Simão de Paula Pinto 
68 
uSTORED PROCEDURES com parâmetros 
n Podemos enviar parâmetros para uma stored 
procedured, desde que ela tenha sido declarada de 
maneira a recebê-lo. 
n Os parâmetros são declarados por meio do uso do 
símbolo @ seguido do nome da variável. Deve-se 
informar também o tipo de dados que será tratado: 
l @nome TipoDeDado 
n Os parâmetros (de entrada) são informados antes do 
uso da palavra reservada AS, na declaração da stored 
procedure.
CREATE PROCEDURE QualNome @codigo int AS 
SELECT cod, nome 
FROM cliente 
WHERE cod = @codigo 
José Simão de Paula Pinto 
69 
uExemplo de STORED PROCEDURE com parâmetro 
CREATE PROCEDURE QualNome @codigo int AS 
SELECT cod, nome 
FROM cliente 
WHERE cod = @codigo 
QQuuaallNNoommee55 
cod nome 
5 João 
José Simão de Paula Pinto 
70 
uVariáveis em STORED PROCEDURES 
n Podemos utilizar variáveis dentro de uma stored 
procedure, desde que elas sejam previamente 
declaradas. 
n A declaração ocorre dentro do corpo da stored 
procedure, utilizando-se a palavra reservada DECLARE 
e informando um nome de variável (precedido do 
símbolo @) e o tipo de dados que ela conterá. 
l DECLARE @nome TipoDeDado
CREATE PROCEDURE Total @codigo int, @quantos int AS 
DECLARE @saida money 
SELECT @saida = @quantos * (SELECT valor FROM preco 
José Simão de Paula Pinto 
71 
uExemplo de STORED PROCEDURE com variável 
CREATE PROCEDURE Total @codigo int, @quantos int AS 
DECLARE @saida money 
SELECT @saida = @quantos * (SELECT valor FROM preco 
WHERE cod = @codigo) 
SELECT ‘Preço total’ = @saida 
WHERE cod = @codigo) 
SELECT ‘Preço total’ = @saida 
TToottaall 33, , 1100 
Preço total 
20.00 
José Simão de Paula Pinto 
72 
uAlgumas STORED PROCEDURES do sistema 
n SP_WHO - mostra quem está usando o servidor. 
n SP_HELP - mostra objetos do banco de dados. 
n SP_HELP parâmetro - mostra características de 
“parâmetro”. 
l SP_HELP cliente - exibe as características da tabela 
“cliente”. 
n SP_HELPTEXT parâmetro - exibe o conteúdo da stored 
procedure passada em. 
l “parâmetro” SP_HELP TodosClientes - exibe o 
conteúdo da stored procedure “TodosClientes”.
Exercícios de fixação 
José Simão de Paula Pinto 
73 
Prática 
da 
Linguagem de Consulta Estruturada 
José Simão de Paula Pinto 
74 
uExercícios usando STORED PROCEDURES 
n Criar STORED PROCEDURES para: 
l Exibir todos os produtos. 
l Exibir todos os produtos, e seus preços. 
l Retornar o preço de um produto desde que passado 
seu código para o procedimento. 
l Retornar quantos itens já foram vendidos de um 
produto, e sua descrição, desde que passado seu 
código para o procedimento.

Mais conteúdo relacionado

Semelhante a Treinamento SQL Básico

Semelhante a Treinamento SQL Básico (16)

BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelas
 
Aula 12 banco de dados
Aula 12   banco de dadosAula 12   banco de dados
Aula 12 banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Tic-excel-02
Tic-excel-02Tic-excel-02
Tic-excel-02
 
Revisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.pptRevisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.ppt
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
Sql02
Sql02Sql02
Sql02
 
Banco dedados aula002
Banco dedados aula002Banco dedados aula002
Banco dedados aula002
 
ORM: Sendo produtivo com NHibernate
ORM: Sendo produtivo com NHibernateORM: Sendo produtivo com NHibernate
ORM: Sendo produtivo com NHibernate
 
DDL Resumo ddl
DDL Resumo ddlDDL Resumo ddl
DDL Resumo ddl
 
Inner Join
Inner JoinInner Join
Inner Join
 
Comandos DML
Comandos DMLComandos DML
Comandos DML
 
Apostila - Banco de Dados
Apostila - Banco de DadosApostila - Banco de Dados
Apostila - Banco de Dados
 
Banco de Dados II - Unimep/Pronatec - Aula 4
Banco de Dados II - Unimep/Pronatec - Aula 4Banco de Dados II - Unimep/Pronatec - Aula 4
Banco de Dados II - Unimep/Pronatec - Aula 4
 
Introducao Base Dados Iii
Introducao Base Dados IiiIntroducao Base Dados Iii
Introducao Base Dados Iii
 

Mais de Sandra Rocha

Inovacao tecnologica industrial_e_desenvolvimento_sustentado1
Inovacao tecnologica industrial_e_desenvolvimento_sustentado1Inovacao tecnologica industrial_e_desenvolvimento_sustentado1
Inovacao tecnologica industrial_e_desenvolvimento_sustentado1Sandra Rocha
 
apostila-desenvolvimento-asp-net
 apostila-desenvolvimento-asp-net apostila-desenvolvimento-asp-net
apostila-desenvolvimento-asp-netSandra Rocha
 
Requisitos oo-para-projetos-oo-transicao-facil
Requisitos oo-para-projetos-oo-transicao-facilRequisitos oo-para-projetos-oo-transicao-facil
Requisitos oo-para-projetos-oo-transicao-facilSandra Rocha
 
Evolução do processo administrativo
Evolução do processo administrativoEvolução do processo administrativo
Evolução do processo administrativoSandra Rocha
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugolSandra Rocha
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugolSandra Rocha
 
Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371Sandra Rocha
 
Circuito impresso
Circuito impresso Circuito impresso
Circuito impresso Sandra Rocha
 
Instalações elétricas residenciais parte 1
Instalações elétricas residenciais parte 1Instalações elétricas residenciais parte 1
Instalações elétricas residenciais parte 1Sandra Rocha
 

Mais de Sandra Rocha (12)

Inovacao tecnologica industrial_e_desenvolvimento_sustentado1
Inovacao tecnologica industrial_e_desenvolvimento_sustentado1Inovacao tecnologica industrial_e_desenvolvimento_sustentado1
Inovacao tecnologica industrial_e_desenvolvimento_sustentado1
 
apostila-desenvolvimento-asp-net
 apostila-desenvolvimento-asp-net apostila-desenvolvimento-asp-net
apostila-desenvolvimento-asp-net
 
Aula1 spring
Aula1 springAula1 spring
Aula1 spring
 
Mapeamento
Mapeamento Mapeamento
Mapeamento
 
Requisitos oo-para-projetos-oo-transicao-facil
Requisitos oo-para-projetos-oo-transicao-facilRequisitos oo-para-projetos-oo-transicao-facil
Requisitos oo-para-projetos-oo-transicao-facil
 
Evolução do processo administrativo
Evolução do processo administrativoEvolução do processo administrativo
Evolução do processo administrativo
 
0040 casos de uso
0040 casos de uso0040 casos de uso
0040 casos de uso
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugol
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugol
 
Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371
 
Circuito impresso
Circuito impresso Circuito impresso
Circuito impresso
 
Instalações elétricas residenciais parte 1
Instalações elétricas residenciais parte 1Instalações elétricas residenciais parte 1
Instalações elétricas residenciais parte 1
 

Último

Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxfabiolalopesmartins1
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 

Último (20)

Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptx
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 

Treinamento SQL Básico

  • 1. Treinamento básico José Simão de Paula Pinto 1 SQL Linguagem de Consulta Estruturada Revisão José Simão de Paula Pinto 2 Servidores de arquivos x Gerenciadores de Bancos de Dados
  • 2. José Simão de Paula Pinto 3 uVisão Geral n Sistemas de Arquivos x Banco de Dados Relacional n Conceitos Básicos de Bancos de Dados Relacional José Simão de Paula Pinto 4 uAcesso a Dados n Sistemas de Arquivos l Os dados são obtidos após percorrer-se um ou mais arquivos, por meio de linguagens de programação, sendo em geral necessária a construção de um novo programa para cada nova consulta n Banco de Dados Relacional l O gerenciador de banco de dados obtém as informações que foram solicitadas por meio de uma linguagem de consulta padrão, e entrega-as em forma de lista (ou relatório)
  • 3. Informação de um cliente; informação de um pedido Colunas ou Tabelas Pedidos de um cliente José Simão de Paula Pinto 5 uO Modelo de Entidades e Relacionamentos EExxiissttee ccoommoo EExxeemmppllooss EEnnttiiddaaddeess RReellaacciioonnaammeennttooss AAttrriibbuuttooss TTaabbeellaass Informação de um cliente; informação de um pedido Colunas ou Tabelas Pedidos de um cliente Colunas (ou Campos) numa Tabela Colunas (ou Campos) numa Tabela Nome, Endereço, Telefone do cliente Nome, Endereço, Telefone do cliente uTabelas (Entidades) e Colunas (Atributos) n Tabelas tem nomes únicos n São compostas por linhas e colunas n Linhas e colunas podem estar em qualquer ordem n Tem um identificador único: chave primária (Primary Key) José Simão de Paula Pinto 6 identificador nome endereço telefone … … ... 1001 João … … . 5554444 ~~~ 1002 Alberto … … . 4687999 ~~~ 1003 Franciso … … .. NULL ~~~ 1004 Maria … … .. 5678900 1005 Sônia … … ... 0988855 ~~~ 1006 Roberto … … … . NULL ~~~ clientes n Colunas: atributos
  • 4. José Simão de Paula Pinto 7 uRelacionamentos identificador nome … … … . … … … .. … … . … … … … .. 1001 1002 1008 João Alberto. Wilson S… .. S… .. … … . … . … . … . 98022 98022 98026 NULL 206-555-1212 NULL 05 Jun 1992 07 Ago 1992 03 Mar 1993 clientes PK NN NN NN NN numero cliente produto 112 1002 1001 1001 Pedidos PK PK,FK, NN NN 567 566 122 José Simão de Paula Pinto 8 uSQL - “Structured Query Language” n SQL - linguagem estruturada criada para a manipulação dos elementos do banco de dados n Características importantes: l Padronizada para os bancos de dados relacionais. l Cada comando é uma descrição do que se deseja obter. l Quem executa o comando é o gerenciador do banco de dados.
  • 5. Definição de dados - DDL José Simão de Paula Pinto 9 Comandos da Linguagem de Consulta Estruturada José Simão de Paula Pinto 10 uCriar uma tabela - CREATE TABLE n Permite a criação de uma tabela e a especificação de como será seu conteúdo (nomes e tipos de dados das colunas) n Palavras chave: l CREATE TABLE - especifica o nome da tabela. l CHAR, VARCHAR - tipos de dados para caracteres. l INT - tipo de dados para números.
  • 6. CREATE TABLE clientes ( nome VARCHAR(40), telefone VARCHAR(10) ) José Simão de Paula Pinto 11 uExemplo de criação de tabela - CREATE TABLE ANTES DEPOIS nome telefone CREATE TABLE clientes ( nome VARCHAR(40), telefone VARCHAR(10) ) José Simão de Paula Pinto 12 uApagar (destruir) uma tabela - DROP TABLE n Permite apagar uma tabela (não somente o conteúdo, mas a tabela em si) de um banco de dados. n Palavras chave: l DROP TABLE - apaga a tabela indicada n ATENÇÃO: este comando apagará a tabela e todo o seu conteúdo do banco de dados especificado ou em uso. Não existe volta ! Use com cuidado !
  • 7. José Simão de Paula Pinto 13 uExemplo de deleção de tabela - DROP TABLE ANTES telefone João Alberto Maria Francisco 445-0988 465-98-87 789-9877 null nome DEPOIS DDRROOPP TTAABBLLEE cclliieenntteess Manipulação de dados - DML José Simão de Paula Pinto 14 Comandos da Linguagem de Consulta Estruturada
  • 8. José Simão de Paula Pinto 15 uObtendo informações - SELECT n Seleciona linhas e colunas de uma tabela n Palavras chave: l SELECT - determina quais as colunas a serem retornadas ( o asterisco “ * ” seleciona todas). l FROM - determina de quais tabelas serão selecionados os dados. l WHERE - determina quais as linhas deverão ser retornadas. A cláusula where também é conhecida por critério. uExemplo do comando SELECT SELECT nome,telefone FROM clientes José Simão de Paula Pinto 16 SELECT nome,telefone FROM clientes nome telefone João Alberto Maria Francisco 445-0988 465-98-87 789-9877 null
  • 9. uExemplo do comando SELECT condicional SELECT nome,telefone FROM clientes WHERE nome = ‘João’ José Simão de Paula Pinto 17 SELECT nome,telefone FROM clientes WHERE nome = ‘João’ nome telefone João 445-0988 José Simão de Paula Pinto 18 uAdicionando linhas - INSERT n Insere linhas em uma tabela n Palavras chave: l INSERT - indica a tabela e os nomes das colunas nas quais será realizada a inclusão dos dados. l VALUES - informa quais são os valores a serem incluídos nas respectivas colunas.
  • 10. uExemplo do comando INSERT INSERT clientes (nome,telefone) VALUES (Sônia, null) José Simão de Paula Pinto 19 INSERT clientes (nome,telefone) VALUES (Sônia, null) telefone João Alberto Maria Francisco Sônia 445-0988 465-98-87 789-9877 null null nome ANTES telefone João Alberto Maria Francisco 445-0988 465-98-87 789-9877 null nome DEPOIS José Simão de Paula Pinto 20 uAlterando informações - UPDATE n Altera o conteúdo de determinadas colunas em uma ou mais linhas de uma tabela. n Palavras chave: l UPDATE - determina qual é a tabela que será alterada. l SET - determina quais são as alterações a serem realizadas, em em quais colunas elas ocorrerão. l WHERE - determina quais são as linhas a serem alteradas.
  • 11. uExemplo do comando UPDATE UPDATE clientes SET telefone = ”882-3344” WHERE nome = ”Sônia” ANTES DEPOIS José Simão de Paula Pinto 21 UPDATE clientes SET telefone = ”882-3344” WHERE nome = ”Sônia” telefone João Alberto Maria Francisco Sônia 445-0988 465-98-87 789-9877 null 882-3344 nome telefone João Alberto Maria Francisco Sônia 445-0988 465-98-87 789-9877 null null nome José Simão de Paula Pinto 22 uApagando informações - DELETE n Apaga uma ou mais linhas de uma tabela. n Palavras chave: l DELETE - determina qual a tabela que terá linhas apagadas. l WHERE - determina quais são as linhas a serem apagadas. n Atenção: este comando não apaga a tabela, somente as suas linhas (seu conteúdo) !
  • 12. uExemplo do comando DELETE condicional DELETE clientes WHERE nome = ”Sônia” José Simão de Paula Pinto 23 telefone João Alberto Maria Francisco Sônia 445-0988 465-98-87 789-9877 null 882-3344 nome ANTES telefone João Alberto Maria Francisco 445-0988 465-98-87 789-9877 null nome DEPOIS DELETE clientes WHERE nome = ”Sônia” José Simão de Paula Pinto 24 uExemplo de comando DELETE sem condição ! telefone João Alberto Maria Francisco Sônia 445-0988 465-98-87 789-9877 null 882-3344 nome ANTES DEPOIS nome telefone DDEELLEETTEE cclliieenntteess
  • 13. José Simão de Paula Pinto 25 uResumo dos comandos de manipulação vistos n SELECT colunas FROM tabela WHERE condição n INSERT tabela VALUES ( conteúdo a armazenar ) n UPDATE tabela SET coluna = novo conteúdo WHERE condição n DELETE tabela WHERE condição Exercícios de fixação José Simão de Paula Pinto 26 Prática da Linguagem de Consulta Estruturada
  • 14. José Simão de Paula Pinto 27 uExercício - Criação de tabelas cod nome cod descricao cod valor comprador produto qtdade n cliente n produto n preco n venda José Simão de Paula Pinto 28 uRespostas - Criação de tabelas n CREATE TABLE cliente ( cod INT, nome CHAR(20) ) n CREATE TABLE produto ( cod INT, descricao CHAR(20) )
  • 15. José Simão de Paula Pinto 29 uRespostas - Criação de tabelas n CREATE TABLE preco ( cod INT, valor MONEY ) n CREATE TABLE venda ( comprador INT, produto INT, qtdade INT ) cod nome José Simão de Paula Pinto 30 uExercício - Inserção de valores cod descricao Barco Sabonete Abacaxi 123 Ana Pedro Tânia Maria João 12345
  • 16. José Simão de Paula Pinto 31 uExercício - Inserção de valores cod valor 500.80 32.89 2.00 123 comprador produto qtdade 312142 1851 10 1 122331 José Simão de Paula Pinto 32 uRespostas - Inserção de valores n INSERT cliente VALUES(1,'ANA') n INSERT cliente VALUES(2,'PEDRO') n INSERT cliente VALUES(3,'TÂNIA') n INSERT cliente VALUES(4,'MARIA') n INSERT cliente VALUES(5,'JOÃO') n INSERT produto VALUES(1,'BARCO') n INSERT produto VALUES(2,'SABONETE') n INSERT produto VALUES(3,'ABACAXI')
  • 17. José Simão de Paula Pinto 33 uRespostas - Inserção de valores n INSERT preco VALUES(1, 500.80) n INSERT preco VALUES(2, 32.89) n INSERT preco VALUES(3, 2.00) n INSERT venda VALUES(3,1,1) n INSERT venda VALUES(1,2,8) n INSERT venda VALUES(2,2,5) n INSERT venda VALUES(1,3,1) n INSERT venda VALUES(4,3,10) n INSERT venda VALUES(2,1,1) José Simão de Paula Pinto 34 uExercício - Comandos de seleção n Selecionar todos os clientes n Selecionar todos os produtos n Selecionar todos os preços n Selecionar todos os registros das vendas efetuadas
  • 18. José Simão de Paula Pinto 35 uResposta - Selecionar todos os clientes SSEELLEECCTT nnoommee FFRROOMM cclliieennttee nome Ana Pedro Tânia Maria João José Simão de Paula Pinto 36 uResposta - Selecionar todos os produtos SSEELLEECCTTddeessccrriiccaaooFFRROOMM pprroodduuttoo descricao Barco Sabonete Abacaxi
  • 19. José Simão de Paula Pinto 37 uResposta - Selecionar todos os preços SSEELLEECCTT vvaalloorr FFRROOMMpprreeccoo valor 500.80 32.89 2.00 José Simão de Paula Pinto 38 uResposta - Selecionar todas as vendas efetuadas SSEELLEECCTT ** FFRROOMM vveennddaa ??? comprador produto qtdade 312142 1851 10 1 122331
  • 20. Classificação, comparações, junção e operadores agregadores José Simão de Paula Pinto 39 Comandos da Linguagem de Consulta Estruturada José Simão de Paula Pinto 40 uOperador de classificação - ORDER BY n Destina-se à classificação (ordenação) dos dados, na apresentação (não afeta os dados originais na tabela). n Palavras chave: l ASC - ordenação ascendente (do menor para o maior). l DESC - ordenação descendente (do maior para o menor)
  • 21. SELECT nome FROM cliente ORDER BY nome DESC SELECT nome FROM cliente ORDER BY nome DESC DESC José Simão de Paula Pinto 41 uExemplo do uso de ORDER BY SELECT nome FROM cliente ORDER BY nome SELECT nome FROM cliente ORDER BY nome ASC nome Ana João Maria Pedro Tânia nome Tânia Pedro Maria João Ana José Simão de Paula Pinto 42 uOperadores de comparação = Igual > Maior < Menor >= Maior ou igual <= Menor ou igual <> ou != Diferente ou não igual LIKE Parecido
  • 22. SELECT nome FROM cliente WHERE cod = 4 José Simão de Paula Pinto 43 uExemplo do uso do operador igual (=) SELECT nome FROM cliente WHERE cod = 4 nome Maria SELECT nome FROM cliente WHERE cod <> 4 SELECT nome FROM cliente WHERE cod <> 4 José Simão de Paula Pinto 44 uExemplo do uso do operador diferente ( <> ou != ) nome Ana Pedro Tânia João
  • 23. SELECT nome FROM cliente WHERE nome LIKE ‘%a’ SELECT nome FROM cliente WHERE nome LIKE ‘%a’ José Simão de Paula Pinto 45 uExemplo do uso do operador LIKE nome Ana Tânia Maria José Simão de Paula Pinto 46 uOperadores AND e OR n Operador AND E = somente retornará os dados quando as condições forem todas satisfeitas n Operador OR OU = retorna dados assim que qualquer das condições for satisfeita
  • 24. SELECT nome FROM cliente WHERE cod > 40 AND nome = ‘Maria’ SELECT nome FROM cliente WHERE cod > 40 AND nome = ‘Maria’ José Simão de Paula Pinto 47 uExemplo de uso do operador AND nome SELECT nome FROM cliente WHERE cod > 40 OR nome = ‘Maria’ SELECT nome FROM cliente WHERE cod > 40 OR nome = ‘Maria’ José Simão de Paula Pinto 48 uExemplo do uso do operador OR nome Maria
  • 25. SELECT nome FROM cliente WHERE cod < 3 AND nome LIKE ‘%o’ OR nome = ‘Maria’ SELECT nome FROM cliente WHERE cod < 3 AND nome LIKE ‘%o’ OR nome = ‘Maria’ José Simão de Paula Pinto 49 uExemplo do uso dos operadores AND e OR juntos nome Pedro Maria José Simão de Paula Pinto 50 uJunção de tabelas - JOIN n Utilizamos a junção (JOIN) de tabelas, e seus operadores, de maneira a expressar os relacionamentos que foram criados quando da montagem da base de dados, obtendo os conjuntos de valores originais, desnormalizados. n A junção é efetuada basicamente efetuando-se uma comparação entre dois campos de valores semelhantes em tabelas distintas, selecionando em ambas as tabelas as linhas que atendam estes valores e combinando-as. Estas operações serão efetuadas automaticamente pelo gerenciador de bancos de dados.
  • 26. SELECT descricao, valor FROM produto, preco WHERE produto.cod = preco.cod SELECT descricao, valor FROM produto, preco WHERE produto.cod = preco.cod José Simão de Paula Pinto 51 uExemplo de junção - JOIN cod descricao Barco Sabonete Abacaxi 123 cod valor 500.80 32.89 2.00 123 descricao valor 500.80 32.89 2.00 Barco Sabonete Abacaxi José Simão de Paula Pinto 52 uOperadores de agregação MIN Retorna o menor valor MAX Retorna o maior valor COUNT Retorna a quantidade de valores AVG Retorna a média dos valores SUM Retorna a soma dos valores
  • 27. SELECT MAX( valor ) FROM preco --> Retorna o maior preço SELECT AVG( valor ) FROM preco --> Retorna a média de preços SELECT COUNT( * ) FROM cliente --> Retorna a quantidade de clientes José Simão de Paula Pinto 53 uExemplos de uso de operadores de agregação SELECT MAX( valor ) FROM preco --> Retorna o maior preço SELECT AVG( valor ) FROM preco --> Retorna a média de preços SELECT COUNT( * ) FROM cliente --> Retorna a quantidade de clientes José Simão de Paula Pinto 54 uAgrupamento / Subtotais - GROUP BY n Este comando permite que a apresentação dos dados retornados da consulta seja agrupada de acordo com uma determinada condição, digamos a soma dos valores vendidos para cada produto. É utilizado em conjunto com o comando SELECT. n Uso: SELECT colunas FROM tabela WHERE condição GROUP BY coluna ou agregado
  • 28. SELECT descricao, unidades=sum(qtdade) FROM produto, venda WHERE produto.cod = venda.produto GROUP BY descricao José Simão de Paula Pinto 55 uExemplo de agrupamento - GROUP BY SELECT descricao, unidades=sum(qtdade) FROM produto, venda WHERE produto.cod = venda.produto GROUP BY descricao descricao unidades 11 2 13 Abacaxi Barco Sabonete José Simão de Paula Pinto 56 uOperador DISTINCT n O operador DISTINCT possibilita que uma consulta retorne valores únicos, sem repetições, para a coluna de dados.Este operador deve ser utilizado em conjunto com a declaração SELECT. n Uso: SELECT DISTINCT (coluna) FROM tabela WHERE condição
  • 29. SELECT descricao FROM produto, venda WHEREproduto.cod = venda.produto SELECT descricao FROM produto, venda WHEREproduto.cod = venda.produto SELECT DISTINCT (descricao) FROM produto, venda WHEREproduto.cod = venda.produto SELECT DISTINCT (descricao) FROM produto, venda WHEREproduto.cod = venda.produto Usando DISTINCT descricao José Simão de Paula Pinto 57 uExemplo do uso do operador DISTINCT SEM usar DISTINCT descricao Barco Sabonete Sabonete Abacaxi Abacaxi Barco Abacaxi Barco Sabonete José Simão de Paula Pinto 58 uOperadores IN e BETWEEN n IN = para testar se um valor está dentro de um determinado conjunto de valores. Pode utilizar o operador IN em conjunto com o operador NOT (formando a expressão NOT IN). n BETWEEN = para testar se um valor está entre uma determinada faixa de valores.
  • 30. SELECT descricao FROM produto WHERE descricao IN (‘Abacaxi, ‘Sabonete’) José Simão de Paula Pinto 59 uExemplo do uso do operador IN SELECT descricao FROM produto WHERE descricao IN (‘Abacaxi, ‘Sabonete’) descricao Sabonete Abacaxi SELECT nome FROM cliente WHERE cod BETWEEN 2 and 3 José Simão de Paula Pinto 60 uExemplo do uso do operador BETWEEN SELECT nome FROM cliente WHERE cod BETWEEN 2 and 3 descricao nome Pedro Barco Tânia Sabonete Abacaxi
  • 31. José Simão de Paula Pinto 61 uOperador HAVING n O operador HAVING deverá ser utilizado em conjunto com a declaração SELECT e sua função será a de estabelecer um critério extra de agrupamento ou seleção de valores, quando utilizando-se a cláusula GROUP BY. Pode-se entender a declaração HAVING como sendo uma cláusula WHERE para a declaração GROUP BY. SELECT descricao, unidades=sum(qtdade) FROM produto, venda WHERE produto.cod = venda.produto GROUP BY descricao HAVING sum(qtdade) > 12 José Simão de Paula Pinto 62 uExemplo de uso do operador HAVING SELECT descricao, unidades=sum(qtdade) FROM produto, venda WHERE produto.cod = venda.produto GROUP BY descricao HAVING sum(qtdade) > 12 descricao unidades Sabonete 13
  • 32. Exercícios de fixação José Simão de Paula Pinto 63 Prática da Linguagem de Consulta Estruturada José Simão de Paula Pinto 64 uExercícios - Comandos de seleção avançados n Quantas vendas foram registradas? n Qual dos clientes não comprou nada? n O que cada cliente comprou e por quanto? n Descritivo (descricao, preços unitários e total e quantidade) de cada venda, ordenado por produto n Quais os totais de compras por cliente? n Totais de vendas: quantas vendas e seu valor (geral)
  • 33. Stored Procedures José Simão de Paula Pinto 65 Comandos da Linguagem de Consulta Estruturada José Simão de Paula Pinto 66 uSTORED PROCEDURES n Stored Procedures, ou procedimentos armazenados, são como que pequenos programas, escritos em linguagem SQL, e ficam armazenados no gerenciador de banco de dados. n O servidor de bancos de dados realiza uma pré-compilação dos procedimentos, e armazena-os em memória cache após a sua primeira execução, de maneira que tendem a ser / tornar-se mais rápidos que a execução de declarações com mesma finalidade a partir do cliente.
  • 34. José Simão de Paula Pinto 67 uCriação de STORED PROCEDURES n A sintaxe para a criação de uma stored procedure é: l CREATE PROCEDURE nome do procedimento AS l Exemplo: l CREATE PROCEDURE TodosClientes AS SELECT * FROM cliente l Para sua execução, basta declarar o nome do procedimento, neste exemplo TodosClientes José Simão de Paula Pinto 68 uSTORED PROCEDURES com parâmetros n Podemos enviar parâmetros para uma stored procedured, desde que ela tenha sido declarada de maneira a recebê-lo. n Os parâmetros são declarados por meio do uso do símbolo @ seguido do nome da variável. Deve-se informar também o tipo de dados que será tratado: l @nome TipoDeDado n Os parâmetros (de entrada) são informados antes do uso da palavra reservada AS, na declaração da stored procedure.
  • 35. CREATE PROCEDURE QualNome @codigo int AS SELECT cod, nome FROM cliente WHERE cod = @codigo José Simão de Paula Pinto 69 uExemplo de STORED PROCEDURE com parâmetro CREATE PROCEDURE QualNome @codigo int AS SELECT cod, nome FROM cliente WHERE cod = @codigo QQuuaallNNoommee55 cod nome 5 João José Simão de Paula Pinto 70 uVariáveis em STORED PROCEDURES n Podemos utilizar variáveis dentro de uma stored procedure, desde que elas sejam previamente declaradas. n A declaração ocorre dentro do corpo da stored procedure, utilizando-se a palavra reservada DECLARE e informando um nome de variável (precedido do símbolo @) e o tipo de dados que ela conterá. l DECLARE @nome TipoDeDado
  • 36. CREATE PROCEDURE Total @codigo int, @quantos int AS DECLARE @saida money SELECT @saida = @quantos * (SELECT valor FROM preco José Simão de Paula Pinto 71 uExemplo de STORED PROCEDURE com variável CREATE PROCEDURE Total @codigo int, @quantos int AS DECLARE @saida money SELECT @saida = @quantos * (SELECT valor FROM preco WHERE cod = @codigo) SELECT ‘Preço total’ = @saida WHERE cod = @codigo) SELECT ‘Preço total’ = @saida TToottaall 33, , 1100 Preço total 20.00 José Simão de Paula Pinto 72 uAlgumas STORED PROCEDURES do sistema n SP_WHO - mostra quem está usando o servidor. n SP_HELP - mostra objetos do banco de dados. n SP_HELP parâmetro - mostra características de “parâmetro”. l SP_HELP cliente - exibe as características da tabela “cliente”. n SP_HELPTEXT parâmetro - exibe o conteúdo da stored procedure passada em. l “parâmetro” SP_HELP TodosClientes - exibe o conteúdo da stored procedure “TodosClientes”.
  • 37. Exercícios de fixação José Simão de Paula Pinto 73 Prática da Linguagem de Consulta Estruturada José Simão de Paula Pinto 74 uExercícios usando STORED PROCEDURES n Criar STORED PROCEDURES para: l Exibir todos os produtos. l Exibir todos os produtos, e seus preços. l Retornar o preço de um produto desde que passado seu código para o procedimento. l Retornar quantos itens já foram vendidos de um produto, e sua descrição, desde que passado seu código para o procedimento.