Академический Документы
Профессиональный Документы
Культура Документы
2013/1
Aula 15
Pablo Ariel do Prado Lpez
28/05/2013
Agenda
Modelo Fsico
Comandos SQL (DML)
Exerccios
28/05/2013
Comandos SQL
SELECT
uma declarao SQL que retorna um conjunto de
resultados de registros de uma ou mais tabelas.
Recupera zero ou mais linhas de uma ou mais
tabelas-base, tabelas temporrias ou vises em um
banco de dados.
Por ser declarativa, consultas SELECT especificam um
conjunto de resultados, mas no especificam como
calcul-los ou obt-los.
28/05/2013
Comandos SQL
Sintaxe:
SELECT [ALL | DISTINCT]
[TOP (n)] lista [ INTO nova_tabela ]
[ FROM tabela(s) origem ]
[ WHERE condies ]
[ GROUP BY expresso para agrupamento]
[ HAVING condies ]
[ ORDER BY expresso para ordenao [ ASC |
DESC ] ]
Fundamentos de Banco de Dados
28/05/2013
Comandos SQL
A instruo SELECT INTO cria uma tabela
e a popula com o conjunto de
resultados da instruo SELECT.
Pode ser usado para combinar dados de
vrias tabelas ou exibies em uma nica
tabela.
A estrutura da nova tabela definida
pelos atributos das expresses na lista de
seleo.
Fundamentos de Banco de Dados
28/05/2013
Comandos SQL
A sua sintaxe representada por:
SELECT atributos INTO tabela_nova
FROM
tabela_origem
WHERE
condies_desejadas
28/05/2013
Exerccios
28/05/2013
Exerccios
28/05/2013
Comandos SQL
UPDATE
uma instruo da linguagem SQL que altera os dados de um
ou mais registros em uma tabela.
Sintaxe do comando:
UPDATE nome_tabela
SET nome_coluna = novo_valor [, nome_coluna = novo_valor ... ]
[ WHERE condio ]
28/05/2013
Comandos SQL
Para o comando UPDATE ser bem sucedido, o
usurio deve ter:
Privilgios de manipulao de dados na tabela ou
coluna
O valor atualizado no deve entrar em conflito
com todas as restries aplicveis
Chaves Primrias ,
ndices nicos,
Restries CHECK e
Restries NOT NULL.
Fundamentos de Banco de Dados
28/05/2013
Comandos SQL
Na tabela Aluno, atualize as seguintes
informaes:
1. Inclua a coluna datanasc, do tipo datetime.
2. Atualize a data de nascimento de cada um
dos alunos registrados
3. Altere o telefone do aluno Jair Pereira para
o nmero 3459-9034
4. Inclua a coluna status, do tipo caracter (1)
5. Atualize todos os alunos para o status A
Fundamentos de Banco de Dados
28/05/2013
Comandos SQL
DELETE
a instruo na linguagem que remove um ou mais registros
de uma tabela.
Um subconjunto pode ser definido para excluso usando uma
condio, caso contrrio, todos os registros so removidos.
Sintaxe
DELETE FROM nome_tabela
[WHERE (condio)]
28/05/2013
Comandos SQL
FROM: Especifica a tabela correspondente de onde
os dados sero removidos.
WHERE: Especifica as condies usadas para limitar o
nmero de linhas que so excludas. Se uma clusula
WHERE no for fornecida, DELETE remover todas as
linhas da tabela.
28/05/2013
Comandos SQL
Para excluir todas as linhas em uma tabela, mais indicado utilizar a
instruo TRUNCATE TABLE, por ser mais rpido que DELETE e
utilizar menos recursos do sistema e do log de transaes.
A instruo DELETE pode falhar se violar um gatilho ou tentar
remover uma linha referenciada por dados em outra tabela com
uma restrio FOREIGN KEY. Se DELETE remover vrias linhas e
qualquer uma das linhas removidas violar um gatilho ou uma
restrio, a instruo ser cancelada, um erro ser retornado e
nenhuma linha ser removida.
O mesmo ocorre quando encontra um erro aritmtico (estouro,
diviso por zero ou um erro de domnio). Todo o lote do comando
cancelado e uma mensagem de erro retornada.
Fundamentos de Banco de Dados
28/05/2013
Comandos SQL
Para a tabela aluno acima criada, execute os
seguintes comandos:
1.
2.
3.
4.
28/05/2013
Comandos SQL
TRUNCATE
Remove todas as linhas de uma tabela, sem excluir
fisicamente a tabela, o que feito pelo comando
DROP.
No
registra
as
excluses
de
linhas
individuais. TRUNCATE TABLE semelhante
instruo DELETE sem nenhuma clusula WHERE;
entretanto, TRUNCATE TABLE mais rpida e utiliza
menos recursos de sistema e log de transaes.
28/05/2013
Comandos SQL
Sintaxe
TRUNCATE TABLE [ { database_name .[ schema_name ] . |
schema_name . } ] table_name [ ; ]
database_name o nome do banco de dados.
schema_name o nome do esquema ao qual a tabela
pertence.
table_name o nome da tabela a ser truncada ou da qual
todas as linhas so removidas. table_name deve ser um
literal.
28/05/2013
Comandos SQL
Em comparao com a instruo DELETE, TRUNCATE
TABLE possui as seguintes vantagens:
O espao utilizado para log de transaes menor.
A instruo DELETE remove as linhas uma de cada
vez e registra uma entrada no log de transaes para
cada linha excluda.
TRUNCATE TABLE remove os dados desalocando as
pginas de dados usadas para armazenar os dados
da tabela e registra somente as desalocaes de
pgina no log de transaes.
Fundamentos de Banco de Dados
28/05/2013
Comandos SQL
Exclua todos os registros da tabela
Aluno utilizando a instruo TRUNCATE
e em seguida selecione a tabela atravs
da Instruo SELECT e verifique o
resultado.
28/05/2013
Exerccios
Considere o modelo conceitual abaixo:
28/05/2013
Exerccios
Crie um banco de dados chamado SisPedidos,
utilize parmetros opcionalmente, para
armazenar as estruturas a seguir.
Crie todas as estruturas, atentando aos tipos
de dados de cada uma (Restries de
Domnio).
Os campos cdigo ou nmero devem ser
considerados as chaves primrias das tabelas.
28/05/2013
Exerccios
Acrescente os dados, conforme descrito
abaixo, s tabelas criadas no banco de dados
(INSERT
INTO
(<campos>)
VALUES
(<valores>)). Crie os Scripts e execute no
banco de dados criado.
Tabela de Clientes (segue estrutura abaixo).
28/05/2013
Exerccios
Cd
Nome
Endereo
Cidade
CEP
UF
CNPJ
IE
720
Ana
Rua 17 n. 19
Niteri
24358310
RJ
12113231/0001-34
2134
870
Flvio
So Paulo
22763931
SP
22534126/9387-9
4631
110
Jorge
Rua Caiapo 13
Curitiba
30078500
PR
14512764/9834-9
222
Lcia
Belo
Horizonte
22124391
MG
28315213/9348-8
2985
830
Maurcio
So Paulo
3012683
SP
32816985/7465-6
9343
130
Edmar
Rua da Praia sn
Salvador
30079300
BA
23463284/234-9
7121
410
Rodolfo
Rio de Janeiro
30078900
RJ
12835128/2346-9
7431
20
Beth
Av. Climrio 45
So Paulo
25679300
SP
32485126/7326-8
9280
157
Paulo
Londrina
PR
32848223/324-2
1923
180
Lvio
Florianpolis
30077500
SC
12736571/2347-4
260
Susana
Niteri
30046500
RJ
21763571/232-9
2530
290
Renato
So Paulo
30225900
SP
13276571/1231-4
1820
390
Sebastio
Rua da Igreja 10
Uberaba
30438700
MG
3217654/213-3
9071
234
Jos
DF
21763576/1232-3 28/05/2013
2931
Exerccios
Tabela de Vendedores
Cdigo
Nome
Salrio
Faixa Comisso
209
Jos
1.800,00
111
Carlos
2.490,00
11
Joo
2.780,00
240
Antnio
9.500,00
720
Felipe
4.600,00
213
Jonas
2.300,00
101
Joo
2.650,00
310
Josias
870,00
250
Maurcio
2.930,00
28/05/2013
Exerccios
Tabela de Vendedores
Cdigo
Nome
Salrio
Faixa Comisso
209
Jos
1.800,00
111
Carlos
2.490,00
11
Joo
2.780,00
240
Antnio
9.500,00
720
Felipe
4.600,00
213
Jonas
2.300,00
101
Joo
2.650,00
310
Josias
870,00
250
Maurcio
2.930,00
28/05/2013
Exerccios
Tabela de Pedidos
Nmero
Prazo
CodCliente
CodVendedor
121
20
410
209
97
20
720
101
101
15
720
101
137
20
720
720
148
20
720
101
189
15
870
213
104
30
110
101
203
30
830
250
98
20
410
209
143
30
20
111
28/05/2013
Exerccios
Prazo
CodCliente
CodVendedor
105
15
180
240
111
20
260
240
103
20
260
11
91
20
260
11
138
20
260
11
108
15
290
310
119
30
390
250
127
10
410
11
28/05/2013
Exerccios
Tabela de Produtos
Cdigo
Unidade
Descrio
Valor Unitrio
25
Kg
Queijo
0,97
31
BAR
Chocolate
0,87
78
Vinho
2,00
22
Linho
0,11
30
SAC
Acar
0,30
53
Linha
1,80
13
Ouro
6,18
45
Madeira
0,25
87
Cano
1,97
77
Papel
1,05
28/05/2013
Exerccios
Cdigo Produto
Quantidade
121
25
10
121
31
35
97
77
20
101
31
101
78
18
101
13
98
77
148
45
148
31
148
77
148
25
10
148
78
30
28/05/2013
Exerccios
Cdigo Produto
Quantidade
104
53
32
203
31
189
78
45
143
31
20
143
78
10
105
78
10
111
25
10
111
78
70
103
53
37
91
77
40
138
22
10
138
77
35
28/05/2013
Exerccios
Tabela Item de Pedidos Continuao 2
Nmero Produto
Cdigo Produto
Quantidade
108
13
17
119
77
40
119
13
119
22
10
119
53
43
137
13
28/05/2013
Exerccios
Kg
0,97
Chocolate
BAR
0,87
Vinho
2,00
Linho
0,11
Acar
SAC
0,30
Linha
1,80
Ouro
6,18
Madeira
0,25
Cano
1,97
Papel
1,05
28/05/2013
Exerccios
Listar da tabela CLIENTE o CNPJ, o nome do cliente e seu endereo.
Listar todo o contedo de vendedor, obtendo o seguinte resultado (SELECT
sem a especificao de campos coringa *).
Problema: Listar o numero do pedido, o cdigo do produto e a quantidade
dos itens do pedido com a quantidade igual a 35 da tabela item de pedido,
obtendo o seguinte resultado atravs de um SELECT com WHERE0.
Quais so os clientes que moram em Niteri?
Listar os produtos que tenham unidade igual a M e valor unitrio igual a
R$ 1,05 da tabela Produtos.
Listar o cdigo e a descrio dos produtos que tenham o valor unitrio na
faixa de R$ 0,32 at R$ 2,00, obtendo o seguinte resultado (operador
between).
Listar todos os produtos que tenham o seu nome comeando por Q,
obtendo o resultado atravs do operador LIKE, com o coringa %.
Fundamentos de Banco de Dados
28/05/2013
Exerccios
28/05/2013
Obrigado!
Perguntas?
Dvidas?
28/05/2013