BD I - Aula 13 B - Agrupando Dados - Parte 04 - Exercicios Enunciado
1. DISCIPLINA: BANCO DE DADOS I
TÍTULO DA AULA: COMANDO SELECT (DQL) – PARTE 2
Aula 13
Rev. 0
31.10.2019
Pág. 1 de 4
CENTRO UNIVERSITÁRIO PADRE ANCHIETA – PROF. RODRIGO SAITO - rodrigok@anchieta.br
Exercícios
1. Utilize o script abaixo para fazer os exercícios a seguir:
Figura 01 – Diagrama do script para exercícios
OBSERVAÇÃO: AO COPIAR E COLAR, AS LINHAS COM QUEBRAS DEVEM SER
UNIFICADAS;
use master;
go
create database SI_BDI_A12;
go
use SI_BDI_A12;
go
CREATE TABLE CATEGORIA (
CODIGO_CATEG int NOT NULL,
DESCRICAO_CATEG varchar(30) NULL
)
go
CREATE TABLE CLIENTE (
CODIGO_CLI integer NOT NULL,
RAZAO_SOCIAL varchar(50) NULL,
CNPJ_CLI char(18) NULL,
IE_CLI char(15) NULL,
ENDERECO_CLI varchar(50) NULL,
BAIRRO_CLI varchar(30) NULL,
CIDADE_CLI varchar(30) NULL,
UF_CLI char(02) NULL,
CEP_CLI char(11) NULL
2. DISCIPLINA: BANCO DE DADOS I
TÍTULO DA AULA: COMANDO SELECT (DQL) – PARTE 2
Aula 13
Rev. 0
31.10.2019
Pág. 2 de 4
CENTRO UNIVERSITÁRIO PADRE ANCHIETA – PROF. RODRIGO SAITO - rodrigok@anchieta.br
)
go
CREATE TABLE FUNCAO (
CODIGO_FUNCAO int NOT NULL,
DESCRICAO_FUNCAO varchar(30) NULL
)
go
CREATE TABLE FUNCIONARIO (
CODIGO_FUNC int NOT NULL,
NOME_FUNC varchar(50) NULL,
ENDERECO_FUNC varchar(50) NULL,
BAIRRO_FUNC varchar(30) NULL,
CIDADE_FUNC varchar(30) NULL,
UF_FUNC char(02) NULL,
CEP_FUNC char(11) NULL,
DATA_ADMISSAO_FUNC datetime NULL,
DATA_DEMISSAO_FUNC datetime NULL,
CODIGO_FUNCAO int NULL
)
go
CREATE TABLE ITENS_PEDIDO (
NUMERO_PED int NOT NULL,
ITEM_PED int NOT NULL,
CODIGO_PROD int NULL,
QUANTIDADE int NULL
)
go
CREATE TABLE PEDIDOS (
NUMERO_PED int NOT NULL,
DATA_PED datetime NULL,
CODIGO_FUNC int NULL,
CODIGO_CLI integer NULL
)
go
CREATE TABLE PRODUTO (
CODIGO_PROD int NOT NULL,
DESCRICAO_PROD varchar(30) NULL,
UNIDADE_PROD char(02) NULL,
VALOR_CUSTO numeric(10,2) NULL,
CODIGO_CATEG int NULL,
ESTOQUE_INI int NULL,
ESTOQUE_MIN int NULL,
ESTOQUE_MAX int NULL
)
go
INSERT INTO DBO.CATEGORIA (CODIGO_CATEG, DESCRICAO_CATEG) VALUES (1,'ALIMENTOS BASICOS');
INSERT INTO DBO.CATEGORIA (CODIGO_CATEG, DESCRICAO_CATEG) VALUES (2,'ALIMENTOS SECUNDARIOS');
INSERT INTO DBO.CATEGORIA (CODIGO_CATEG, DESCRICAO_CATEG) VALUES (3,'FRUTAS');
INSERT INTO DBO.CATEGORIA (CODIGO_CATEG, DESCRICAO_CATEG) VALUES (4,'LEGUMES');
INSERT INTO DBO.FUNCAO (CODIGO_FUNCAO, DESCRICAO_FUNCAO) VALUES (1,'GERENTE COMERCIAL');
INSERT INTO DBO.FUNCAO (CODIGO_FUNCAO, DESCRICAO_FUNCAO) VALUES (2,'VENDEDOR(A)');
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(001,'ARROZ', 'KG',3.20,1,025,050,500);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(002,'FEIJAO', 'KG',4.50,1,025,050,400);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(003,'MACARRAO', 'UN',3.70,1,050,100,800);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(004,'SARDINHA', 'UN',5.35,1,100,200,1000);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(005,'BOLACHA DE AGUA E SAL', 'UN',1.20,2,025,050,250);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(006,'MARGARINA', 'UN',3.40,2,100,100,200);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(007,'BOLO DE CAIXINHA', 'GR',5.60,2,050,100,300);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(008,'MACA', 'KG',5.60,3,200,500,1000);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(009,'BANANA', 'KG',3.25,3,250,500,1000);
3. DISCIPLINA: BANCO DE DADOS I
TÍTULO DA AULA: COMANDO SELECT (DQL) – PARTE 2
Aula 13
Rev. 0
31.10.2019
Pág. 3 de 4
CENTRO UNIVERSITÁRIO PADRE ANCHIETA – PROF. RODRIGO SAITO - rodrigok@anchieta.br
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(010,'PERA', 'KG',6.10,3,200,200,500);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(011,'KIWI', 'KG',8.30,3,300,300,750);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(012,'BATATA', 'KG',3.80,4,300,100,300);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(013,'CENOURA', 'KG',4.60,4,200,200,300);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(014,'ERVILHA', 'LT',6.25,4,050,100,300);
INSERT INTO DBO.PRODUTO (CODIGO_PROD, DESCRICAO_PROD, UNIDADE_PROD, VALOR_CUSTO, CODIGO_CATEG, ESTOQUE_INI, ESTOQUE_MIN, ESTOQUE_MAX) VALUES
(015,'TOMATE', 'KG',2.10,4,100,200,500);
INSERT INTO CLIENTE (CODIGO_CLI, RAZAO_SOCIAL, CNPJ_CLI, IE_CLI, ENDERECO_CLI, BAIRRO_CLI, CIDADE_CLI, UF_CLI, CEP_CLI) VALUES (01,'COMPRA TUDO
LTDA', '11.111.111/0001-11','111.111.111.111','RUA DO RECANDO BRANCO, 111', 'PARQUE SANTO ANTONIO','JUNDIAI', 'SP','13.258-999');
INSERT INTO CLIENTE (CODIGO_CLI, RAZAO_SOCIAL, CNPJ_CLI, IE_CLI, ENDERECO_CLI, BAIRRO_CLI, CIDADE_CLI, UF_CLI, CEP_CLI) VALUES (02,'VAREJAO DE
OFERTAS E CIA', '22.222.222/0002-22','222.222.222.222','AV. CINCO DE ABRIL, 222', 'CENTRO', 'JUNDIAI', 'SP','13.587-965');
INSERT INTO CLIENTE (CODIGO_CLI, RAZAO_SOCIAL, CNPJ_CLI, IE_CLI, ENDERECO_CLI, BAIRRO_CLI, CIDADE_CLI, UF_CLI, CEP_CLI) VALUES (03,'CONQUISTA
SUPERMECADOS', '33.333.333/0003-33','333.333.333.333','RUA CINCERO QUIRINO JR, 454','BAIRRO DO PONTO', 'SAO PAULO', 'SP','05.333-333');
INSERT INTO CLIENTE (CODIGO_CLI, RAZAO_SOCIAL, CNPJ_CLI, IE_CLI, ENDERECO_CLI, BAIRRO_CLI, CIDADE_CLI, UF_CLI, CEP_CLI) VALUES (04,'DEMIS
MERCEARIA', '44.444.444/0004-44','444.444.444.444','RUA QUINZE DE NOVEMBRO, 432','BAIRRO DOS CARAMUJOS','SAO PAULO', 'SP','05.444-444');
INSERT INTO CLIENTE (CODIGO_CLI, RAZAO_SOCIAL, CNPJ_CLI, IE_CLI, ENDERECO_CLI, BAIRRO_CLI, CIDADE_CLI, UF_CLI, CEP_CLI) VALUES (05,'NICOLAS & CIA
LTDA', '55.555.555/0005-55','555.555.555.555','RUA TAUNAI PAULO FRANCO, 32','BAIRRO DO RETIRO', 'SAO CAETANO', 'SP','13.666-666');
INSERT INTO CLIENTE (CODIGO_CLI, RAZAO_SOCIAL, CNPJ_CLI, IE_CLI, ENDERECO_CLI, BAIRRO_CLI, CIDADE_CLI, UF_CLI, CEP_CLI) VALUES (06,'OVERDOSE
ALIMENTOS', '66.666.666/0006-66','666.666.666.666','RUA FRANCISCO MORATO, 434', 'JARDIM PAULISTA', 'JUNDIAI', 'SP','13.667-777');
INSERT INTO FUNCIONARIO (CODIGO_FUNC, NOME_FUNC, ENDERECO_FUNC, BAIRRO_FUNC, CIDADE_FUNC, UF_FUNC, CEP_FUNC, DATA_ADMISSAO_FUNC, CODIGO_FUNCAO)
VALUES (01,'TATIANA SILVA', 'RUA CINCO DE FEVEREIRO, 212', 'CENTRO', 'JUNDIAI', 'SP', '13.587-878','01/03/2000',1);
INSERT INTO FUNCIONARIO (CODIGO_FUNC, NOME_FUNC, ENDERECO_FUNC, BAIRRO_FUNC, CIDADE_FUNC, UF_FUNC, CEP_FUNC, DATA_ADMISSAO_FUNC, CODIGO_FUNCAO)
VALUES (02,'RONALDO BARBOSA', 'RUA GAMOES SOUTO, 323', 'JARDIM AMERICA', 'JUNDIAI', 'SP', '13.587-585','01/06/2003',2);
INSERT INTO FUNCIONARIO (CODIGO_FUNC, NOME_FUNC, ENDERECO_FUNC, BAIRRO_FUNC, CIDADE_FUNC, UF_FUNC, CEP_FUNC, DATA_ADMISSAO_FUNC, CODIGO_FUNCAO)
VALUES (03,'VANESSA SIQUEIRA','RUA DA LIBERDADE, 343', 'LIBERDADE', 'SAO PAULO', 'SP', '05.322-222','01/03/2004',2);
INSERT INTO FUNCIONARIO (CODIGO_FUNC, NOME_FUNC, ENDERECO_FUNC, BAIRRO_FUNC, CIDADE_FUNC, UF_FUNC, CEP_FUNC, DATA_ADMISSAO_FUNC, CODIGO_FUNCAO)
VALUES (04,'MARIANA SILVA', 'RUA TORRES NEVES, 543', 'JARDIM DO PORTO', 'JUNDIAI', 'SP', '13.533-531','01/02/2005',2);
INSERT INTO FUNCIONARIO (CODIGO_FUNC, NOME_FUNC, ENDERECO_FUNC, BAIRRO_FUNC, CIDADE_FUNC, UF_FUNC, CEP_FUNC, DATA_ADMISSAO_FUNC, CODIGO_FUNCAO)
VALUES (05,'TALLES NARCISO', 'AV. FREDERICO OZANAN, 433', 'JARDIM TIRADENTES', 'JUNDIAI', 'SP', '13.534-365','01/04/2005',2);
INSERT INTO PEDIDOS (NUMERO_PED, DATA_PED, CODIGO_FUNC, CODIGO_CLI) VALUES (001,'01/05/2005',01,01);
INSERT INTO PEDIDOS (NUMERO_PED, DATA_PED, CODIGO_FUNC, CODIGO_CLI) VALUES (002,'01/16/2005',01,02);
INSERT INTO PEDIDOS (NUMERO_PED, DATA_PED, CODIGO_FUNC, CODIGO_CLI) VALUES (003,'01/18/2005',01,03);
INSERT INTO PEDIDOS (NUMERO_PED, DATA_PED, CODIGO_FUNC, CODIGO_CLI) VALUES (100,'01/06/2003',02,01);
INSERT INTO PEDIDOS (NUMERO_PED, DATA_PED, CODIGO_FUNC, CODIGO_CLI) VALUES (101,'02/06/2003',02,02);
INSERT INTO PEDIDOS (NUMERO_PED, DATA_PED, CODIGO_FUNC, CODIGO_CLI) VALUES (102,'03/06/2003',02,03);
INSERT INTO PEDIDOS (NUMERO_PED, DATA_PED, CODIGO_FUNC, CODIGO_CLI) VALUES (200,'01/06/2005',03,04);
INSERT INTO PEDIDOS (NUMERO_PED, DATA_PED, CODIGO_FUNC, CODIGO_CLI) VALUES (201,'08/10/2004',03,05);
INSERT INTO PEDIDOS (NUMERO_PED, DATA_PED, CODIGO_FUNC, CODIGO_CLI) VALUES (202,'03/05/2006',03,01);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (001,01,001,010);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (001,02,002,020);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (001,03,005,030);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (002,01,004,050);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (002,02,007,010);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (002,03,008,010);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (002,04,002,100);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (003,01,009,200);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (003,02,010,010);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (003,03,014,200);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (003,04,015,500);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (100,01,001,200);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (100,02,004,250);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (100,03,006,100);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (100,04,010,100);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (101,01,011,250);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (101,02,012,200);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (101,03,013,300);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (102,01,001,200);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (102,02,002,250);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (102,03,003,400);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (200,01,003,300);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (200,02,008,100);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (200,03,009,400);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (201,01,001,300);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (201,02,002,300);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (201,03,003,400);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (201,05,005,600);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (202,01,006,100);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (202,02,007,185);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (202,03,008,320);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (202,04,009,100);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (202,05,010,150);
INSERT INTO ITENS_PEDIDO (NUMERO_PED, ITEM_PED, CODIGO_PROD, QUANTIDADE) VALUES (202,06,011,190);
Script de criação do banco de dados, tabelas e dados
4. DISCIPLINA: BANCO DE DADOS I
TÍTULO DA AULA: COMANDO SELECT (DQL) – PARTE 2
Aula 13
Rev. 0
31.10.2019
Pág. 4 de 4
CENTRO UNIVERSITÁRIO PADRE ANCHIETA – PROF. RODRIGO SAITO - rodrigok@anchieta.br
2. Resolva as questões abaixo:
a. Faça uma SQL que mostre a descrição da categoria e quantidade de produtos que a mesma
possui;
b. Faça uma SQL que mostre a descrição da categoria e o valor total dos produtos que a
mesma possui; (OMENTE VALOR DA CATEGORIA E NÃO
CONSIDERAR VALOR DOS PEDIDOS FEITOS);
c. Faça uma SQL que mostre os produtos cuja a descrição da categoria seja "LIMPEZA";
d. Selecione o nome dos funcionários com sua devida quantidade de pedidos atendidos no
período do ano de 2003.
e. Selecione a cidade (nome) e a quantidade de pedidos feitos por cidade, ordenados pela
quantidade de pedidos.
f. Selecione os funcionários que possuem a quantidade de pedidos menores que 10, em ordem
da quantidade.
g. Selecione a descrição do produto e a quantidade de pedidos desses produtos, ordenados
pela quantidade;
h. Mostre os dados dos pedidos, com seus devidos totais do pedidos;
i. Selecione a razão social do cliente com seus devidos valores de pedidos;
j. Selecione o valor dos pedidos de funcionários demitidos;