0% acharam este documento útil (0 voto)
17 visualizações

SQL Tutorial

O documento apresenta conceitos básicos sobre bancos de dados relacionais e a linguagem SQL. Aborda tópicos como tabelas, colunas, relacionamentos, comandos DDL para criação e remoção de tabelas e comandos DML para inserção, consulta e atualização de dados.

Enviado por

SRN TECNOLOGIA
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
17 visualizações

SQL Tutorial

O documento apresenta conceitos básicos sobre bancos de dados relacionais e a linguagem SQL. Aborda tópicos como tabelas, colunas, relacionamentos, comandos DDL para criação e remoção de tabelas e comandos DML para inserção, consulta e atualização de dados.

Enviado por

SRN TECNOLOGIA
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 37

Treinamento básico

SQL
Linguagem de Consulta Estruturada

José Simão de Paula Pinto


1

Revisão

Servidores de arquivos
x
Gerenciadores de Bancos de Dados

José Simão de Paula Pinto


2
u Visã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


3

u Acesso 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)

José Simão de Paula Pinto


4
u O Modelo de Entidades e Relacionamentos

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

Informação
Informação dede Nome,
Nome,
um
um cliente;
cliente; Pedidos
Pedidos dede Endereço,
Endereço,
Exemplos
Exemplos informação
informação dede um cliente
um cliente Telefone
Telefone dodo
um pedido
um pedido cliente
cliente

José Simão de Paula Pinto


5

u Tabelas (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)
clientes
n Colunas: atributos 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 ~~~

José Simão de Paula Pinto


6
u Relacionamentos

clientes
identificador nome ………. …… … .. ……. … … … … ..
PK NN NN NN NN
1001 João 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

José Simão de Paula Pinto


7

u SQL - “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.

José Simão de Paula Pinto


8
Definição de dados - DDL

Comandos
da
Linguagem de Consulta Estruturada

José Simão de Paula Pinto


9

u Criar 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.

José Simão de Paula Pinto


10
u Exemplo de criação de tabela - CREATE TABLE
CREATE
CREATE TABLE
TABLE clientes
clientes
((
nome
nome VARCHAR(40),
VARCHAR(40),
telefone
telefone VARCHAR(10)
VARCHAR(10)
))

ANTES DEPOIS

nome telefone

José Simão de Paula Pinto


11

u Apagar (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


12
u Exemplo de deleção de tabela - DROP TABLE

DROP
DROP TABLE
TABLE clientes
clientes

ANTES DEPOIS

nome telefone

João 445-0988
Alberto 465-98-87
Maria 789-9877
Francisco null

José Simão de Paula Pinto


13

Manipulação de dados - DML

Comandos
da
Linguagem de Consulta Estruturada

José Simão de Paula Pinto


14
u Obtendo 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.

José Simão de Paula Pinto


15

u Exemplo do comando SELECT

SELECT
SELECT nome,telefone
nome,telefone
FROM clientes
FROM clientes

nome telefone

João 445-0988
Alberto 465-98-87
Maria 789-9877
Francisco null

José Simão de Paula Pinto


16
u Exemplo do comando SELECT condicional

SELECT
SELECT nome,telefone
nome,telefone
FROM clientes
FROM clientes
WHERE
WHERE nome
nome == ‘João’
‘João’

nome telefone

João 445-0988

José Simão de Paula Pinto


17

u Adicionando 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.

José Simão de Paula Pinto


18
u Exemplo do comando INSERT

INSERT
INSERT clientes
clientes (nome,telefone)
(nome,telefone)
VALUES
VALUES (Sônia,
(Sônia, null)
null)

ANTES DEPOIS

nome telefone nome telefone

João 445-0988 João 445-0988


Alberto 465-98-87 Alberto 465-98-87
Maria 789-9877 Maria 789-9877
Francisco null Francisco null
Sônia null

José Simão de Paula Pinto


19

u Alterando 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.

José Simão de Paula Pinto


20
u Exemplo do comando UPDATE

UPDATE
UPDATE clientes
clientes
SET telefone == ”882-3344”
SET telefone ”882-3344”
WHERE nome = ”Sônia”
WHERE nome = ”Sônia”

ANTES DEPOIS

nome telefone nome telefone

João 445-0988 João 445-0988


Alberto 465-98-87 Alberto 465-98-87
Maria 789-9877 Maria 789-9877
Francisco null Francisco null
Sônia null Sônia 882-3344

José Simão de Paula Pinto


21

u Apagando 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) !

José Simão de Paula Pinto


22
u Exemplo do comando DELETE condicional

DELETE
DELETE clientes
clientes
WHERE nome == ”Sônia”
WHERE nome ”Sônia”

ANTES DEPOIS

nome telefone nome telefone

João 445-0988 João 445-0988


Alberto 465-98-87 Alberto 465-98-87
Maria 789-9877 Maria 789-9877
Francisco null Francisco null
Sônia 882-3344

José Simão de Paula Pinto


23

u Exemplo de comando DELETE sem condição !

DELETE
DELETE clientes
clientes

ANTES DEPOIS

nome telefone nome telefone

João 445-0988
Alberto 465-98-87
Maria 789-9877
Francisco null
Sônia 882-3344

José Simão de Paula Pinto


24
u Resumo 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
José Simão de Paula Pinto
25

Exercícios de fixação

Prática
da
Linguagem de Consulta Estruturada

José Simão de Paula Pinto


26
u Exercício - Criação de tabelas
cod nome
n cliente

n produto cod descricao

n preco cod valor

n venda comprador produto qtdade

José Simão de Paula Pinto


27

u Respostas - 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


28
u Respostas - Criação de tabelas

n CREATE TABLE preco


(
cod INT,
valor MONEY
)
n CREATE TABLE venda
(
comprador INT,
produto INT,
qtdade INT
)

José Simão de Paula Pinto


29

u Exercício - Inserção de valores

cod nome

1 Ana
2 Pedro
3 Tânia
4 Maria
5 João

cod descricao

1 Barco
2 Sabonete
3 Abacaxi

José Simão de Paula Pinto


30
u Exercício - Inserção de valores

cod valor

1 500.80
2 32.89
3 2.00

comprador produto qtdade

3 1 1
1 2 8
2 2 5
1 3 1
4 3 10
2 1 1

José Simão de Paula Pinto


31

u Respostas - 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
32
u Respostas - 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
33

u Exercí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


34
u Resposta - Selecionar todos os clientes

SELECT
SELECT nome
nome FROM
FROM cliente
cliente

nome

Ana
Pedro
Tânia
Maria
João

José Simão de Paula Pinto


35

u Resposta - Selecionar todos os produtos

SELECT
SELECTdescricao
descricaoFROM
FROMproduto
produto

descricao

Barco
Sabonete
Abacaxi

José Simão de Paula Pinto


36
u Resposta - Selecionar todos os preços

SELECT
SELECTvalor
valorFROM
FROMpreco
preco

valor

500.80
32.89
2.00

José Simão de Paula Pinto


37

u Resposta - Selecionar todas as vendas efetuadas

SELECT
SELECT**FROM
FROMvenda
venda

comprador produto qtdade

3 1 1
1 2 8
2
1
4
2
3
3
5
1
10
???
2 1 1

José Simão de Paula Pinto


38
Classificação, comparações,
junção e operadores agregadores

Comandos
da
Linguagem de Consulta Estruturada

José Simão de Paula Pinto


39

u Operador 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)

José Simão de Paula Pinto


40
u Exemplo do uso de ORDER BY

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 Tânia
João Pedro
Maria Maria
Pedro João
Tânia Ana

José Simão de Paula Pinto


41

u Operadores de comparação

= Igual

> Maior

< Menor

>= Maior ou igual

<= Menor ou igual

<> ou != Diferente ou não igual

LIKE Parecido

José Simão de Paula Pinto


42
u Exemplo do uso do operador igual (=)

SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE cod
cod==44

nome

Maria

José Simão de Paula Pinto


43

u Exemplo do uso do operador diferente ( <> ou != )

SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE cod
cod<><>44

nome

Ana
Pedro
Tânia
João

José Simão de Paula Pinto


44
u Exemplo do uso do operador LIKE

SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE nome
nome LIKE
LIKE ‘‘%a’
%a’

nome

Ana
Tânia
Maria

José Simão de Paula Pinto


45

u Operadores 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

José Simão de Paula Pinto


46
u Exemplo de uso do operador AND

SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE cod
cod>>4040
AND
AND nome
nome == ‘‘Maria’
Maria’

nome

José Simão de Paula Pinto


47

u Exemplo do uso do operador OR

SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE cod
cod>>4040
OR
OR nome
nome == ‘‘Maria’
Maria’

nome

Maria

José Simão de Paula Pinto


48
u Exemplo do uso dos operadores AND e OR juntos

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

José Simão de Paula Pinto


49

u Junçã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.

José Simão de Paula Pinto


50
u Exemplo do uso do operador IN

SELECT
SELECT descricao
descricao
FROM
FROM produto
produto
WHERE
WHERE descricao
descricaoIN
IN(‘
(‘Abacaxi,
Abacaxi,‘‘Sabonete’
Sabonete’))

descricao

Sabonete
Abacaxi

José Simão de Paula Pinto


59

u Exemplo do uso do operador BETWEEN

SELECT
SELECT nome
nome
FROM
FROM cliente
cliente
WHERE
WHERE cod
codBETWEEN
BETWEEN22and
and33

descricao
nome

Pedro
Barco
Sabonete
Tânia
Abacaxi

José Simão de Paula Pinto


60
u Operador 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.

José Simão de Paula Pinto


61

u Exemplo de uso do operador HAVING

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

José Simão de Paula Pinto


62
Exercícios de fixação

Prática
da
Linguagem de Consulta Estruturada

José Simão de Paula Pinto


63

u Exercí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)

José Simão de Paula Pinto


64
Stored Procedures

Comandos
da
Linguagem de Consulta Estruturada

José Simão de Paula Pinto


65

u STORED 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


66
u Criaçã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


67

u STORED 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.

José Simão de Paula Pinto


68
u Exemplo de STORED PROCEDURE com parâmetro

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 João

José Simão de Paula Pinto


69

u Variá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

José Simão de Paula Pinto


70
u Exemplo de STORED PROCEDURE com variável

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
SELECT‘‘Preço
Preçototal’
total’==@saida
@saida

Total
Total3,
3,10
10

Preço total

20.00

José Simão de Paula Pinto


71

u Algumas 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”.

José Simão de Paula Pinto


72
Exercícios de fixação

Prática
da
Linguagem de Consulta Estruturada

José Simão de Paula Pinto


73

u Exercí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.

José Simão de Paula Pinto


74

Você também pode gostar