Вы находитесь на странице: 1из 10

PEDIDOS

I) PREPARAO DO BANCO DE DADOS E SUA ESTRUTURA INICIAL

1) Criar um banco de dados chamado tg1

SOLUO:

create database tg1;

2)criar a tabela cliente= [cod int, nome varchar(60), idade int, cpf varchar(11), sexo
char(1) ]

SOLUO:
create table cliente(
cod int,
nome varchar(60),
idade int,
cpf varchar(11),
sexo char(1)
);

3)criar a tabela pedido= [num int, data date, atendido boolean ]

SOLUO:
create table pedido(
num int,
data date,
atendido boolean
);

4)Criar a tabela produto= [cod int, nome varchar(30), valunit numeric(8,2)]

SOLUO:
create table produto(
cod int,
nome varchar(30),
valunit numeric(8,2)
);
5)Criar a tabela itempedido= [cod int, quant int, total numeric(8,2)]

SOLUO:
create table itempedido(
cod int,
quant int,
total numeric(8,2)
);

II) PEDIDOS ESPECFICOS:

6) Alterar a tabela cliente de forma a incluir a constraint cliente _pk na


tabela como chave primria para o campo cod. Informe se a operao foi
executada com sucesso, do contrrio informe o motivo do erro.

SOLUO:
Comando(s) SQL:
alter table cliente add constraint cliente_pk primary key(cod);

Query returned successfully with no result in 205 msec.

7) inserir os registros abaixo na tabela cliente. Informe se as operaes


foram executadas com sucesso, do contrrio informe os motivos dos
erros.

cod nome Idade cpf sexo


1 carlos 37 11100022233 1
2 ana 22 99999999999 2
3 Paulo 21 1

SOLUO:
Comando(s) SQL:
LInnha 1 e 2:
insert into cliente(cod,nome,idade,cpf,sexo)
values
(1,'carlos',37,'11100022233','1'),
(2,'ana',22,'99999999999','2');
Query returned successfully: 2 rows affected, 62 msec execution time.
Linha 3:
insert into cliente(cod,nome,idade,sexo)
values(3,'Paulo',21,'1');
Query returned successfully: one row affected, 15 msec execution time.
Motivo do erro (se for o caso):
insert into cliente(cod,nome,idade,cpf,sexo)
values
(1,'carlos',37,'11100022233','1'),
(2,'ana',22,'99999999999','2'),
(3,'Paulo',21,'1');

ERROR: VALUES lists must all be the same length


LINE 5: (3,'Paulo',21,'1');

8) Alterar a tabela cliente incluindo a restrio no nula para o campo cpf.


Informe se a operao foi executada com sucesso, do contrrio informe o
motivo do erro.

SOLUO:
Comando(s) SQL:
delete from cliente where cod ='3';
Query returned successfully: one row affected, 31 msec
execution time.

alter table cliente alter column cpf set not null;


Query returned successfully with no result in 51 msec.

Motivo do erro (se for o caso):


alter table cliente alter column cpf set not null;

ERROR: column "cpf" contains null values

8) Se a operao do item 7 anterior apresentou erro:


a) O que voc faria (Qual(is) comando(s) SQL) para possibilitar sua
execuo sem mudar a estrutura da tabela e sem excluir nenhum
registro?
b) Execute novamente o solicitado no pedido 7.

SOLUO:

Comando(s) SQL:
9) Excluir o campo sexo da tabela cliente. Informe se a operao foi
executada com sucesso, do contrrio informe o motivo do erro.

SOLUO:

Comando(s) SQL:
alter table cliente drop column sexo;

Query returned successfully with no result in 62 msec.

Motivo do erro (se for o caso):

10) Incluir o campo sexo char(1) da tabela cliente com as seguintes


restries: Valor padro = '1' e valores vlidos apenas 1 e 0. Informe se a
operao foi executada com sucesso, do contrrio informe o motivo do
erro.

SOLUO:

Comando(s) SQL:
alter table cliente add column sexo char(1) default '1'
check(sexo in ('1','0'));

Query returned successfully with no result in 640 msec.

Motivo do erro (se for o caso):

11) Incluir o campo obs do tipo varchar(200) na tabela cliente com valor
padro igual a 'no informado'. Informe se a operao foi executada com
sucesso, do contrrio informe o motivo do erro.

SOLUO:

Comando(s) SQL:
alter table cliente add column obs varchar(200)
default'no informado';

Query returned successfully with no result in 172 msec.

Motivo do erro (se for o caso):


12) Incluir os registros abaixo na tabela pedido. Informe se as operaes
foram executadas com sucesso, do contrrio informe os motivos dos
erros.
num Data atendido
1 '01/01/2010' true
2 '02/01/2010' true
1 '01/02/2010' false
3 '11/17/2011' true
4 '09/30/2012' true
2 '04/22/2012' false
5 '04/30/2012' false
1 '01/01/2011' false

SOLUO:

Comando(s) SQL:
insert into pedido(num,data,atendido)
values
(1,'2010-01-01',true),
(2,'2010-01-02',true),
(1,'2010-02-01',false),
(3,'2011-11-17',true),
(4,'2012-09-30',true),
(2,'2012-04-22',false),
(5,'2012-04-30',false),
(1,'2011-01-01',false);

Query returned successfully: 8 rows affected, 50 msec


execution time.

Motivo do erro (se for o caso):


13) Criar uma constraint chamada pedido_pk para a chave primria da
tabela pedido em seu campo num. Informe se a operao foi executada
com sucesso, do contrrio informe o motivo do erro.

SOLUO:

Comando(s) SQL:
alter table pedido add constraint pedido_pk primary key(num);

Motivo do erro (se for o caso):


ERROR: could not create unique index "pedido_pk"
DETAIL: Key (num)=(1) is duplicated.

14) O que deve ser feito Comando(s) SQL com a tabela pedido para
que seja possvel incluir a constraint pedido_pk, SEM EXCLUIR TODOS
OS SEUS
REGISTROS?
Aps sanado este problema, executar novamente o pedido 9 anterior,
para criar a citada constraint.

SOLUO:

Comando(s) SQL:

Motivo do erro (se for o caso):

15) Criar uma constraint chamada produto_pk para a chave primria da


tabela produto em seu campo cod. Informe se a operao foi executada
com sucesso, do contrrio informe o motivo do erro.

SOLUO:

Comando(s) SQL:
alter table produto add constraint produto_pk primary key(cod);

Query returned successfully with no result in 141 msec.

Motivo do erro (se for o caso):


16) Criar um campo no nulo chamado codprod e a constraint chamada
de produto_fk para a chave estrangeira na tabela itempedido neste campo
em referncia a tabela produto. Informe se a operao foi executada com
sucesso, do contrrio informe o motivo do erro.

SOLUO:

Comando(s) SQL:

Motivo do erro (se for o caso):

17) Caso o pedido 16 anterior tenha ocorrido algum erro.


CORRIJA-O conforme havia indicado o motivo do erro e execute
novamente o pedido 17.

SOLUO:

Correo sugerida:

Motivo do erro (se for o caso):

18) Criar um campo no nulo chamado codped e a constraint


chamada de pedido_fk para a chave estrangeira na tabela
itempedido neste campo em referncia a tabela pedido. Informe
se a operao foi executada com sucesso, do contrrio informe
o motivo do erro.

SOLUO:
Comando(s) SQL:

19) Caso o pedido 18 anterior tenha ocorrido algum erro.


CORRIJA-O conforme havia indicado o motivo do erro e execute
novamente o pedido 18.

SOLUO:
Correo sugerida:

Motivo do erro (se for o caso):

20) O que acontece se for tentado inserir na tabela itempedido


os seguintes registros:
a) deve-se informar os comandos SQL para realizar essas inseres
b) deve-se informar quais os resultados (diagnstico) aps
executado cada comando.
cod quant total codprod
1 10 30 5
2 null 2 null
3 1 null 1
4 2 3 5

21) Caso tenha ocorrido erros na insero dos 4 registros para a tabela
itempedido, o que voc faria (comando(s) SQL para que fosse possvel
incluir esses 4 registros com os valores informados?

SOLUO:
Comando(s) SQL:

22) Inserir os seguintes registros na tabela produto usando o cdigo SQL


abaixo indicado:
Insert into produto (cod, nome, valunit) values (2,'po comum',0.35),(3,'biscoito
de nata',4.70),(4,'manteiga sem sal',6.30),(6,'margarina comum',3.99),(7,'po
integral',0.49),(8,'biscoito de manteiga',9.39),(9,'po doce',0.49),(10,'iogurte de
morango',4.15),(11,'po de iogurte',1.05),(12,'feijo verde',7.50),(13,'torta de
morango',13.40),(14,'coxinha de frango',2.50),(15,'coxinha de frango com
catupiri', 3.50),(16,'goiabada casco',11.49),(17,'doce de leite',8.30),(18,'po de
leite',0.80), (19,'torta de frango',8.99),(20,'pudim de leite',5.50),(21,'iogurte de
uva',4.55), (22,'po padre',3.70),(23,'pudim de po',4.30),(24,'torta salgada',4.25),
(25,'biscoito de doce de leite',4.90),(26,'iogurte de canela',2.15),(27,'mel de
abelha',4.30), (28,'biscoite gua e salgado',1.35), (29,'gua com gs',1.99),
(30,'gua sem gs',1.20),(31,'po sovado',0.65),(32,'po caseiro',1.70),(33,'picol
kibon',2.55),34,'picol nestl',2.45),(35,'torta de morango',3.50),(36,'torta de
goiaba',3.25), (37,'suco de morango',2.50),(38,'torta de ma', 4.20),(39,'suco de
ma', 2.90), (40,'torta de presunto e queijo',3.30), (41,'doce de
marmelada',6.40), (42,'suco de uva',3.10),(43,'suco de espinafre',2.35),
(44,'empadinha de frango',2.05),(45,'empadinha frango com catupiri', 2.70),
(46,'empadinha de carne',2.50),(47,'empado de frango',4.75),(48,'suco de
manga',2.20),(49,'suco de caj',2.85),(50,'po milagre',1.35),(51,'po ave-
maria',1.70),(52,'vitamina de banana',2.70),(53,'fatia de pizza calabreza',1.50),
(54,'fatia de pizza de presunto',1.45),(55,'fatia de pizza de banana',1.40),(56,'fatia
de pizza espinagre',1.30), (57,'torta de espinafre', 3.10),(58,'vitamina de
morango',3.10), (59,'vitamina mista',3.65),(60,'po Deus-me-livre',2.90),
(61,'po d gua',0.33), (62,'massa de pastel 500 gramas',3.40), (63,'pastel de
carne',2.10),(64,'pastel de queixo',2.00),(65,'pastel de queixo catupiri',2.20),
(66,'po centria',1.15),(67,'pastel de carne apimentada',2.55), (68,'suco de
framboesa',2.90),(69,'iogurte de abacaxi',3.45),(70,'massa de pizza',4.00),
(71,'leite desnatado 1 litro',2.30), (72,'biscoite de leite',3.99),(73,'fatia de pizza
quatro queijos',1.45),(74,'pizza pequena',6.10),(75,'pizza mdia',7.20),
(76,'pizza grande',8.40),(77,'frango congelado',4.90),(78,'peixe robalo',44.70),
(79,'pizza com gorgonzola',8.70),80,'coca-cola 1 litro',5.35),(81,'torrada 1
kg',4.25),(82,'feijo preto',7.20),(83,'biscoito cream-cracker',3.95),(84,'xcara
de caf',2.10), (85,'copo de leite',2.40),(86,'quitutes diversos 500
gramas',3.70),(87,'po manteiga',0.90), (88,'torta do rei',13.45),(89,'farinha de
trigo',4.60),(90,'chocolate',1.70),(91,'caf com leite',2.20),
(92,'presento',12.30),(93,'apresuntado',11.05),(94,'fiambre',18.45);

III) PEDIDOS ESPECFICOS-2:

Fazer a consulta SQL para atender as seguintes questes, usando o


banco de dados tg1.
Aps executar no computador, os alunos devero informar o
comando SQL utilizado e os resultados obtidos aps sua execuo.

23) Se um certo cliente comprasse uma unidade de todos os produtos


existentes, quanto ele pagaria?

SOLUO:
Comando(s) SQL:

RESULTADO:

24) Outro cliente resolveu comprar 3 unidades de todos os tipos de pes


existente no estabelecimento. Quanto ele pagar por essa compra?

SOLUO:
Comando(s) SQL:

RESULTADO:

25) Informe o nome e valor unitrios dos produtos mais caro e mais
barato do estabelecimento?
SOLUO:
Comando(s) SQL:

RESULTADO:

26) Quais os nomes e valores unitrios dos produtos cujos valores


unitrios esto entre R$ 0,00 e R$ 1,00?
Ordenar em ordem crescente dos valores.

SOLUO:
Comando(s) SQL:

RESULTADO:

27) Qual o nome preo do po mais caro existente no estabelecimento?

SOLUO:
Comando(s) SQL:

RESULTADO:

28) O dono do estabelecimento resolveu alterar o preo de alguns


produtos da seguinte forma:
a) Todos os produtos que tm preos de centavos iguais a ,99
devem ter seus preos acrecidos em UM CENTAVO.

b) Em seguida, aumentar em 0,5% o preo de todos os produtos que


possuem valores de centavos iguais a ,00. Indique nome e novos
preos dos produtos que tiveram alterao de preos.

EXPLIQUE DETALHADAMENTE TODOS OS PASSOS E COMENDOS


QUE
UTILIZAR PARA ISSO.

SOLUO:

Comandos SQL: