Buscar

Banco de Dados - Estudo de Caso Lan House do Pereira

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA
FACULDADE DE TECNOLOGIA DE MAUÁ
GABRYEL SILVA
QUESTIONÁRIO 1 – BANCO DE DADOS
MAUÁ-SP
2018
SUMÁRIO
(1) QUESTIONÁRIO 1 – BANCO DE DADOS......................................
(2) ESTUDO DE CASO 1 – LAN HOUSE DO PEREIRA........................
(2.1) TABELAS....................................................................................
(2.2) ATRIBUTOS................................................................................
(2.3) TABELAS E ATRIBUTOS.........................................................
QUESTIONÁRIO 1 – BANCO DE DADOS
(1) Explique: 
a) Modelo Conceitual 
R: Visão inicial das regras sem limitações tecnológicas ou de implementação.
b) Modelo Lógico 
R: Abstrai as possíveis técnicas de Banco de Dados a serem usadas. Ex: Banco de dados hierárquico ou relacional.
c) Modelo Físico 
R: É a modelagem que leva em consideração as limitações físicas do SGBD e dos programas que acessam o mesmo.
(2) O que é uma entidade?
É a representação de um objetivo do mundo real ou abstrato em Banco de Dados. 
(3) O que são atributos? 
São as características que compõem a entidade Ex: Nome, Cidade, Cor, Sexo;
(4) O que são registros? 
É um conjunto de atributos que contém informações comuns a um determinado elemento.
(5) O que são arquivos? 
É um conjunto de registros.
(6) O que é uma chave? 
É um atributo principal que identifica um registro.
(7) Quais os tipos de chave que podemos ter?
Simples, Composta e Virtual. 
(8) Quais as características que uma chave deve apresentar? 
Ela deve ser única, obrigatória e imutável.
(9) O que é dependência funcional? 
É a característica de um atributo depender de outro para existir ou representar uma informação.
(10) Explique o que é Normalização de dados. 
Normalização de dados é uma técnica que consiste em fazer uma limpeza nos dados eliminando inconsistências, duplicidades, e garante uma integridade e confiabilidade dos dados.
(11) Explique de forma breve o que acontece na 1FN, 2FN e 3FN.
1FN: Criação de uma estrutura BIDIMENSIONAL e identificação de uma chave
2FN: Separa do arquivo informações que não tem dependência funcional com a chave do arquivo
3FN: Elimina atributos multivalorados e atributos calculado.
(12) Até onde devemos normalizar um arquivo? 
Até a terceira norma.
(13) Quais são as regras práticas para a normalização? 
Usar o bom senso na hora de normatizar tendo cuidado com a fragmentação dos dados e desempenho do SGBD na recuperação dos dados.
ESTUDO DE CASO – LAN HOUSE DO PEREIRA
(14) Considere o estudo de caso abaixo: 
A Lan House disponibiliza acesso a internet durante 24h por dia, 7 dias por semana. Seus donos desejam implementar um sistema para registro de usuários, controle de reservas, e registrar as utilizações de equipamentos além de extrair relatórios gerenciais. Entre os requisitos que devem ser atendidos pelo sistema temos:
> Emitir uma listagem de usuários com código, nome, idade, sexo, endereço, telefone, email ordenado por endereço.
> Emitir uma listagem de equipamentos disponíveis na lan house com código, CPU, memória, disco, acessórios (Joystick, mouse ótico, fone de ouvido, etc.)
> Criar e manter uma agenda de reservas com usuário (código), nome, telefone, data de reserva, hora da reserva, em ordem decrescente de data da reserva.
> Emitir um histórico de utilização com data, equipamento, usuário (código e nome), hora de inicio, hora final, tempo utilizado, valor cobrado ordenado por data e nome de usuário.
> Emitir um extrato de utilização com data, equipamento, hora de início, hora final, tempo utilizado, valor cobrado ordenado por data
> Emitir um histórico de utilização por período (manhã, tarde, noite) com total de usuários por período e média de tempo utilizado.
> Listar os maiores usuários (em relação ao tempo total utilizado) por ano com: usuário
(código), nome, idade, telefone, email, quantidade de utilizações, tempo total.
> Gerar estatísticas de usuários no ano, mostrando o total de usuários para cada mês e o percentual do mês em relação ao total do ano.
> Criar um modelo normalizado até a 3FN, identificado as tabelas e atributos de cada tabela, definir qual ou quais são atributos chaves e quais os seus tipos (Número, texto, data).
(2.1) TABELAS
(1) Usuário
(2) Equipamento
(3) Reserva
(4) Utilização
(2.2) ATRIBUTOS
Usuário: (CHAVE) CODIGO_USUARIO, NOME, IDADE, SEXO, RUA/ AVENIDA, NUMERO, BAIRRO, COMPLEMENTO,CIDADE,EMAIL
Equipamento: (CHAVE) CODIGO_EQUIPAMENTO, CPU, MEMORIA, DISCO, JOYSTICK, MOUSE, FONE_DE_OUVIDO
Reserva: (CHAVE) CODIGO_RESERVA, (CHAVE) CODIGO_USUARIO, DATA_RESERVA
Utilização: (CHAVE) CODIGO_UTILIZAÇÃO, (CHAVE) CODIGO_USUARIO, (CHAVE) EQUIPAMENTO, HORARIO_INICIO, HORARIO_FINAL. 
(2.3) TABELAS E ATRIBUTOS
(1) USUARIO
(2) EQUIPAMENTO
 (3) RESERVA
(4) UTILIZAÇÃO
Exercício – SQL
Exercicio 01 – Aula 04.
a) Criar a seguinte tabela:
Placa 		Char(7)
Modelo	varchar(20)
Fabricante	varchar(20)
Ano		int
Cor		varchar(20)
Combustível	varchar(20)
Preço		numeric(10,2)
Chave primária: placa
Inserir 10 registros
Selecionar todos os veículos com modelo iniciado pela letra ‘F’
Selecionar todos os veículos de ano entre 2000 e 2008
Selecionar todos de combustível FLEX
Selecionar todos do fabricante GM com ano superior a 2001;
Qual a média de preço dos veículos;
Qual o valor do veículo mais caro;
Qual o valor do veículo mais barato;
Acrescentar um aumento de 10% para todos os veículos do fabricante FIAT;
Quantos veículos prata temos no cadastro?
Qual o somatório dos preços?
Excluir do cadastro todos os veículos com ano inferior a 1985;
Selecionar todos dos fabricantes: GM, FORD e TOYOTA;
Listar todos os fabricantes, sem duplicidade.
CREATE TABLE CARRO
 
 --A)
(PLACA CHAR(7),
 MODELO	VARCHAR(20),
 FABRICANTE	VARCHAR(20), 
 ANO INT,
 COR	VARCHAR(20),
 COMBUSTÍVEL	VARCHAR(20),
 PREÇO	NUMERIC(10 ,2),
 
 CONSTRAINT PK_PLACA PRIMARY KEY(PLACA));
 
 -- LISTAR A ESTRUTURA TABELA 
 
 SELECT *FROM CARRO;
 
 --INSERIR REGISTRO
 
 
 INSERT INTO CARRO VALUES
 ('EFR6796','FOX','VOLKSWAGEN',2013,'PRETO', 'FLEX',30000.00);
 
 --B)
 INSERT INTO CARRO VALUES
 ('ABC0012','CORSA','GM',2000,'PRATA','GASOLINA',10000.00),
 ('BCD1234','CLS', 'MERCEDES', 2017,'VERMELHO', 'FLEX', 75000.00),
 ('EFG5678', 'GOL','VOLKSWAGEN', 2009, 'AZUL','FLEX', 15000.00),
 ('SDF4566', 'UNO' ,'FIAT',2008,'ROSA´','GASOLINA', 12000.00),
 ('AFR4496','FUSCA','VOLKSWAGEN',1973,'PRETO', 'GASOLINA',6000.00),
 ('CBC0012','CLIO','RENAULT',2001,'VERDE','GASOLINA',8000.00),
 ('JLD1254','VECTRA', 'GM', 2012,'AMARELO', 'FLEX', 25000.00),
 ('MJG5678', 'MERIVA','GM', 2007, 'BRANCO','GASIOLINA', 7000.00),
 ('GAI4576', 'KA' ,'FORD',2015,'VERMELHO´','FLEX', 18000.00);
 
 
 --DELETAR REGISTROS
 
 DELETE FROM CARRO;
 
 --C) SELECIONAR VEICULOS INICIADO COM A LETRA F
 SELECT * FROM CARRO WHERE modelo LIKE 'F%'
 
 --D)SELECIONAR TODOS ODS VEICULOS DE ANO 2000 E 2008
 SELECT * FROM CARRO WHERE ANO BETWEEN 2000 AND 2008;
 
 --E)SELECIONAR TODOS OS COMBUSTIVEL FLEX
 SELECT * FROM CARRO WHERE COMBUSTÍVEL IN ('FLEX');
 
 --F) SELECIONAR TODOS OS FABRICANTES GM COM O ANO SUPERIOR A 2001
 SELECT * FROM CARRO WHERE FABRICANTE = 'GM' AND ANO > 2001;
 
 
 
 -- EXCLUIR DO CADASTRO TODOS OS VEICULOS COM ANO INFERIOR A 1985;
DELETE FROM CARRO WHERE ano < 1985;
-- SELECIONAR TODOS OS FABRICANTES :GM,FORD E TOYOTA
SELECT * FROM CARRO WHERE FABRICANTE IN ('GM','FORD','TOYOTA'); 
 
 -- LISTAR TODOS OS FABRICANTES SEM DUPLICIDADE
 SELECT DISTINCT FABRICANTE FROM CARRO;
 
-- G) QUAL É A MEDIA DE PREÇO DOS VEÍCULOS
SELECT AVG (PREÇO) AS 'MÉDIA'FROM CARRO;
--H) QUAL VALOR DO VEÍCULO MAIS CARO
SELECT MAX (PREÇO) AS 'MAIS CARO' FROM CARRO;
--I) QUAL VALOR DO VEÍCULO MAIS BARATO
SELECT MIN (PREÇO) AS 'MAIS BARATO' FROM CARRO;
--J) ACRESCENTAR UM AUMENTO DE 10% PARA TODOS OS VEÍCULOS
DO FABRICANTE FIAT
UPDATE CARRO SET PREÇO =PREÇO *1.10 WHERE FABRICANTE= 'FIAT';
 
 --K) QUANTOS VEICULOS PRATA TEMOS NO CADASTRO
 SELECT COUNT(*) AS 'PRATA' FROM CARRO WHERE COR = 'PRATA';
 
 
Exercicio 02 – Aula 04.
Produtos
*Codprod	int
Descrição	varchar(20)
Preco		numeric(9,2)
Qtde		int
Cor		char(20)
Chave primária: codprod
Criar a tabela;
Inserir 10 registros;
Quantos produtos temos no cadastro?
Selecionar os produtos com preço entre 10 e 50 reais.
Qual o valor do produto mais caro?
Qual o valor do produto mais barato?
Qual a média de preços?
Quantos produtos vermelhos temos no cadastro?
Atualizar o preço dos produtos com preço abaixo de 10.00 acrescentando 15%;
Atualizar o preço dos produtos com preço acima de 500.00 com um desconto de 5%
Excluir todos os produtos com qtde abaixo de 5;
Listar as cores sem duplicidade
Selecionar todos os produtos de cor Azul, vermelho, branco e preto.
Qual o somatório das quantidades?
Listar todos os produtos que tem descrição iniciado em ‘A’.
CREATE TABLE PROD
 (CODPROD INT,
 DESCRIÇÃO VARCHAR(20),
 PREÇO NUMERIC(9,2),
 QTDE INT,
 COR CHAR(20),
 CONSTRAINT PK_CODPROD PRIMARY KEY(CODPROD));
 
 -- LISTAR A ESTRUTURA TABELA 
 
 SELECT * FROM PROD;
 
 --INSERIR REGISTRO
 
 INSERT INTO PROD VALUES
 (1, 'CAMISETA', 40.00, 12,'AMARELA'),
 (2, 'CALÇA ', 99.00, 5, 'JEANS'),
 (3,' VESTIDO', 150.00,6, 'ESTAMPADOS'),
 (4,'SAIA', 60.00,10,'AZUIS'),
 (5,' JAQUETAS', 200.00, 15, 'PRETA'),
 (6,' JAQUETAS', 200.00, 10, 'BRANCA'),
 (7, 'CAMISETA', 40.00, 8,'ROSA'),
 (8, 'CALÇA ', 99.00, 2, 'VERMELHA'),
 (9,' VESTIDO', 150.00,6, 'VERDE'),
 (10,'MEIAS',5.00,25,'MARROM');
 
 DELETE FROM PROD;
 
 --EXCLUIR TABELA E REGISTROS
DROP TABLE PROD;
 
 --SELECIONAR OS PRODUTOS COM PREÇO ENTRE 10,00 E 50,00
 SELECT *FROM PROD WHERE PREÇO BETWEEN 10.00 AND 50.00;
 
 -- EXCLUIR TODOS OS PRRODUTOS ABAIXO DE 6,00
 SELECT * FROM PROD WHERE PREÇO < 6.00;
 
 -- LISTAR AS CORES SEM DUPLICIDADE
SELECT DISTINCT COR FROM PROD;
-- SELECIONAR TODOS OS PRODUTOS DE COR AZUL, VERMELHO,BRANCO,E PRETO;
 SELECT * FROM PROD WHERE COR IN ('AZUIS', 'VERMELHA', 'BRANCA','PRETA');
 
 -- LISTAR TODOS OS PRODUTOS QUE TEM DESCRIÇÃO INICIADO COM A LETRA A
 SELECT * FROM PROD WHERE DESCRIÇÃO LIKE 'C%';
 
 --QUANTOS PRODUTOS TEM NO CADASTRO
 SELECT COUNT(*) AS QTDE FROM PROD;
 
 --QUAL O VALOR DO PRODUTO MAIS CARO
 SELECT MAX (PREÇO )AS ' MAIS CARO'FROM PROD;
 
 --QUAL O VALOR DO PRODUTO MAIS BARATO
 SELECT MIN(PREÇO)AS 'MAIS BARATO'FROM PROD;
 
 -- QUAL A MÉDIA DOS PREÇOS
 SELECT AVG (PREÇO) AS ' MEDIA PREÇO' FROM PROD;
 
 --QUANTOS PRODUTOS VERMELHOS TEMOS NO CADASTRO 
 SELECT COUNT(*) AS 'VERMELHA' FROM PROD WHERE COR = 'VERMELHA';
 
 --ATUALIZAR OS PREÇOS DOS PRODUTOS COM PREÇO ABAIXO DE 10 REAIS ACRESCENTANDO 15%
 UPDATE PROD SET PREÇO=PREÇO * 1.15 
 WHERE PREÇO<10; 
 
 UPDATE PROD SET PREÇO=PREÇO *0.95
 WHERE PREÇO >500;
 
 
Exercicio 03 – Aula 05.
Inserir 5 registros
Selecionar código do pedido, nome do produto e qtde.
Selecionar todos os produtos com preço entre 10 e 70.
Qual a média de idade dos clientes
Qual a média de preços dos produtos
Quantos pedidos temos no cadastro?
Selecionar todos os pedidos do cliente 2, informando código do pedido, data e nome do cliente;
Selecionar todos os itens do pedido 1, mostrar código do produto, nome do produto e qtde.
Selecionar todos os clientes que moram em Santo André, SBC, SCS ou Mauá.
--A)
CREATE TABLE CLIENTES2 
(CODCLI INT,
NOME VARCHAR(30),
ENDER VARCHAR(40),
BAIRRO VARCHAR(20),
CIDADE VARCHAR(20),
IDADE INT,
CONSTRAINT PK_CLI2 PRIMARY KEY (CODCLI));
CREATE TABLE PRODUTOS2
(CODPROD INT,
DESCRICAO VARCHAR(20),
PRECO NUMERIC(9,2),
CONSTRAINT PK_PROD PRIMARY KEY (CODPROD));
CREATE TABLE PEDIDOS2
(CODPED INT,
CODCLI INT,
DATA DATETIME,
CONSTRAINT PK_PED PRIMARY KEY (CODPED));
CREATE TABLE ITENSPEDIDOS
(CODPED INT,
CODPROD INT,
QTDE INT, 
CONSTRAINT PK_ITENS PRIMARY KEY (CODPED,CODPROD),
CONSTRAINT FK_ITENS FOREIGN KEY (CODPED)
 REFERENCES PEDIDOS2 (CODPED),
CONSTRAINT FK_ITENS FOREIGN KEY (CODPROD)
 REFERENCES PRODUTOS2 (CODPROD));
 
 --LISTAR AS TABELAS
 SELECT * FROM CLIENTES2;
 SELECT * FROM PRODUTOS2;
 SELECT * FROM PEDIDOS2; 
 SELECT * FROM ITENSPEDIDOS; 
--B)Inserir 5 registros
INSERT INTO CLIENTES2 VALUES
(1,'MARCOS','NEVADA,280','VILA AMERICA', 'RIBEIRAO',12),
(2,'MARIA','ALASCA,95','CENTREVILLE', 'SCS',61),
(3,'ALE','EUA,170','SAO JORGE', 'SBC',19),
(4,'MICHELLE','ARAPONGA,52','ZAIRA', 'MAUA',32),
(5,'FLAVIO','PIRELLI,1463','VILA HOMERO THON', 'SANTO ANDRE',25);
INSERT INTO PRODUTOS2 VALUES
(100,'COXINHA',3.99),
(200,'PASTEL',4.49),
(300,'KIBE',5.49),
(400,'REFRIGERANTE',6.00),
(500,'SUCOS',8.00);
INSERT INTO PEDIDOS2 VALUES
(12345,1,20180322),
(56842,3,20180707),
(38929,2,20121212),
(41002,4,21001118),
(69512,5,20010831);
INSERT INTO ITENSPEDIDOS VALUES
(69512,400,2),
(41002,300,6),
(12345,100,8),
(38929,200,20),
(56842,500,12);
--c)	Selecionar código do pedido, nome do produto e qtde.
SELECT CODPED FROM PEDIDOS2;
SELECT DESCRICAO FROM PRODUTOS2;
SELECT QTDE FROM ITENSPEDIDOS; 
--d) Selecionar todos os produtos com preço entre 10 e 70.
SELECT *FROM PRODUTOS2 WHERE PRECO BETWEEN 10 AND 70;
--e)Qual a média de idade dos clientes
SELECT AVG (IDADE) AS 'MEDIA IDADE' FROM CLIENTES2;
--f)	Qual a média de preços dos produtos
SELECT AVG (PRECO) AS 'PREÇOS' FROM PRODUTOS2;
--g)	Quantos pedidos temos no cadastro?
SELECT COUNT (*) AS 'TOTAL DE PEDIDOS' FROM PEDIDOS2;
--j)	Selecionar todos os clientes que moram em Santo André, SBC, SCS ou Mauá.
SELECT * FROM CLIENTES2 WHERE CIDADE IN ('SANTO ANDRE','MAUA','SBC', 'SCS');
--------------CONFERIR TABELAS DE PEDIDOS E ITENS DE PEDIDOS....
Exercício 04 – Aula 06
Inserir 5 registros.
Selecionar todos os produtos com preço acima da média.
Selecionar todos os produtos com preço igual ao produto mais caro.
Selecionar todos os registros da Agenda que contenham mais de 2 serviços agendados;
Selecionar todos os serviços com preço inferior à média de preços.
Quantos funcionários trabalham no salão?
Quantos produtos temos cadastrados?
Quantos registros temos agendados para a data mais recente?
Mostrar Data Agendada, Serviço, cargo do funcionário e horário.
CREATE TABLE CLIENT
(CODCLI    INT,
NOME    VARCHAR(30),
ENDEREÇO    VARCHAR (40),
FONE    CHAR (09),
CONSTRAINT PK_CLI2 PRIMARY KEY (CODCLI));
--LISTAR ESTRUTURA DA TABELA
SELECT * FROM CLIENT;
--b)INSERIR CINCO REGISTROS
INSERT INTO CLIENT VALUES
(1, 'OBAMA', 'AV.BARÃO, 765', 43211000),
(2, 'MICHELLE', 'AV.BRASIL,425', 45774511),
(3, 'WALDIR', 'AV. RIO BRANCO, 12', 34211000),
(4, 'TAINA', 'RUA ALASCA, 170',29884808),
(5, 'EMERSON', 'RUA GIOVANNI, 14631',25122018);
CREATE TABLE PRODUTO
(CODPROD  INT,
DESCRIÇÃO    VARCHAR (20),
PREÇO NUMERIC(9,2),
QTDE_EST    INT,
CONSTRAINT PK_PROD PRIMARY KEY (CODPROD));
--LISTAR ESTRUTURA DA TABELA
SELECT * FROM PRODUTO;
--b)INSERIR CINCO REGISTROS
INSERT INTO PRODUTO VALUES
(100,'AMACIANTE', 5.00, 2),
(200, 'SABÃO LÍQUIDO', 7.75,30),
(300, 'PRETINHO PARA PNEUS', 25.00, 10),
(400, 'DETERGENTE', 1.15, 30),
(500, 'VANISH', 25.00,100);
--C)SELECIONAR TODOS OS PRODUTOS ACIMA DA MÉDIA
SELECT * FROM PRODUTO
WHERE PREÇO >(SELECT AVG (PREÇO) FROM PRODUTO);
--d) SELECIONAR TODOS OS PRODUTOS COM PREÇO IGUAL AO PRODUTO MAIS CARO
 SELECT * FROM PRODUTO
WHERE PREÇO =(SELECT MAX (PREÇO) FROM PRODUTO);
CREATE TABLE SERVIÇO
(CODSERV  INT,
DESCRIÇÃO    VARCHAR (20),
PREÇO NUMERIC(7,2),
CONSTRAINT PK_SERV PRIMARY KEY (CODSERV));
INSERT INTO SERVIÇO VALUES
(110,'LIMPEZA', 80.00),
(220,'SECAGEM', 30.00),
(330,'POLIMENTO', 200.00),
(440, 'CRISTALIZAÇÃO', 300.00),
(550, 'ALINHAMENTO', 1500.00);
SELECT * FROM SERVIÇO;
--f) SELECIONAR TODOS OS SERVIÇOS COM PREÇO INFERIOR A MÉDIA DOS PREÇOS
SELECT * FROM SERVIÇO 
WHERE PREÇO <(SELECT AVG (PREÇO) FROM SERVIÇO);
CREATE TABLE FUNCIONÁRIOS
(CODFUNC    INT,
CARGO    CHAR (20),
FONE    CHAR(9),
CONSTRAINT PK_FUNC PRIMARY KEY (CODFUNC));
INSERT INTO FUNCIONÁRIOS VALUES
(1201, 'PRESIDENTE', 32111000),
(2102, 'DIRETOR', 35774511),
(3001, 'SUPERVISOR', 934211000),
(4004, 'GERENTE', 920884808),
(5005, 'OPERADOR',915122018);
SELECT * FROM FUNCIONÁRIOS;
--g)QUANTOS FUNCIONÁRIOS TRABALHAM NO SALÃO
SELECT COUNT (*) AS 'QTDE FUNCIONÁRIOS' FROM FUNCIONÁRIOS
--H) QUANTOS PRODUTOS TEMOS NO CADASTRO
SELECT COUNT (*) AS 'PRODUTO' FROM PRODUTO
CREATE TABLE AGENDA1
(CODAGD    INT,
DATA    DATETIME,
CLIENTE    INT,
CONSTRAINT PK_AGD PRIMARY KEY (CODAGD),
CONSTRAINT FK_CLI FOREIGN KEY (CLIENTE)
 REFERENCES CLIENT (CODCLI));
 
 
INSERT INTO AGENDA1 VALUES
(707, '20180330', 1),
(808, '20190330', 2),
(909, '20341225', 3),
(1010,'20560101', 4),
(2020, '20350216',5);
SELECT * FROM AGENDA1;
--I) QUANTOS REGISTROS TEMOS AGENDADOS PARA A DATA MAIS RECENTE
SELECT * FROM AGENDA1 
WHERE DATA = (SELECT MIN (DATA) FROM AGENDA1);
DROP TABLE AGENDA1 
Exercício 05 – Aula 06
Criar as tabelas x relacionamentos
Inserir 5 registros em cada tabela;
Selecionar todos os usuários;
Selecionar todos os filmes locados pelo usuário 2;
Qual é o tempo de maior duração dos filmes?
Qual é o tempo de menor duração dos filmes?
Qual a média de duração dos filmes?
Quantos filmes temos com duração acima de 95 min?
Quantos filmes temos com duração acima da média?
Quantos gêneros temos no cadastro?
Listar todos os filmes que iniciam pela letra “A”.
Listar o código do gênero (Filmes_gen) sem duplicidade.
Selecionar todos os filmes com duração entre 95 e 120 min.
Quantos filmes temos do gênero 2?
CREATE TABLE USUARIO
 (CODUSE INT,
 NOME VARCHAR(40),
 EMAIL VARCHAR(35),
 DATANASC DATETIME,
 CONSTRAINT PK_CODUSE PRIMARY KEY (CODUSE));
 
 SELECT *FROM USUARIO
 
 INSERT INTO USUARIO VALUES
 (001,'MICHELLE','MICHELLE@FATEC.COM','20151212'),
 (002,'MARCOS','MARCOS@FATEC.COM','20001018'),
 (003,'MARCELO','MARCELO@FATEC.COM','20181105'),
 (004,'THAINA','THAINA@FATEC.COM','19721210'),
 (005,'ALE','ALE@FATEC.COM','19601231');
 
 --DELETE FROM USUARIO;
 --DROP TABLE USUARIO;
 
 
 
CREATE TABLE FILMES
 (CODFILME INT,
 NOME VARCHAR(40),
 DURAÇÃO INT,
 CONSTRAINT PK_CODFILME PRIMARY KEY (CODFILME));
 
 SELECT *FROM FILMES
 
 INSERT INTO FILMES VALUES
 (5001,'GHOST',140),
 (5002,'TODO_MUNDO_EM_PANICO',160),
 (5003,'AMATTEROFFAITH',240),
 (5004,'SENHOR_DOS_ANÉIS',210),
 (5005,'MADAGASCAR',190);
 
 
 CREATE TABLE GENERO
 (CODGEN INT,
 DESCRIÇÃO VARCHAR(20),
 CONSTRAINT PK_CODGENE PRIMARY KEY (CODGEN));
 
 SELECT *FROM GENERO
 
 INSERT INTO GENERO VALUES
 (31,'ANIMAÇÃO'),
 (32,'ROMANCE'),
 (33,'COMEDIA'),
 (34,'FANTASIA'),
 (35,'ESPIRITUALIDADE');
 
 
CREATE TABLE USUARIOFILME
 (USUARIO INT,
 CODFILME INT,
 CONSTRAINT FK_USU1 FOREIGN KEY (USUARIO)
 REFERENCES USUARIO (CODUSE),
 CONSTRAINT FK_FILM1 FOREIGN KEY (CODFILME)
 REFERENCES FILMES (CODFILME));
 
 SELECT * FROM USUARIOFILME
 
 
 
 CREATE TABLE FILMESGENERO
 (CODFILME INT,
 CODGEN INT,
 CONSTRAINT FK_FILM2 FOREIGN KEY (CODFILME)
 REFERENCES FILMES (CODFILME),
 CONSTRAINT FK_CODGENE2 FOREIGN KEY (CODGEN)
 REFERENCES GENERO (CODGEN));
 
 SELECT * FROM FILMESGENERO
 
 
 --C)SELECIONAR TODOS OS USUARIOS
 SELECT * FROM USUARIO; 
 
 --E)QUAL É O TEMPO DE MAIOR DURAÇÃO DOS FILMES
 SELECT MAX (DURAÇÃO) AS 'MAIOR DURAÇÃO' FROM FILMES;
 
 --F) QUAL É O TEMPO DE MENOR DURAÇÃO DOS FILMES
 SELECT MIN (DURAÇÃO) AS 'MENOR DURAÇÃO' FROM FILMES;
 
 
 
 --G)QUAL É A MÉDIA SW DURAÇÃO DOS FILMES
 SELECT AVG (DURAÇÃO) AS 'MEDIA DE DURAÇÃO' FROM FILMES;
 
 
 
 
 ------------------------------------------------------------- incompleto!!!!!!
 --H)QUANTOS FILMES TEMOS COM DURAÇÃO ACIMA DE 95 MINUTOS
 SELECT COUNT (*) AS 'QUANTIDADE FILMES ACIMA DE 95 MINUTOS' FROM FILMES;
 SELECT * FROM FILMES WHERE DURAÇÃO>95;
 
 --I) QUANTOS FILMES TEMOS COM DURAÇÃO ACIMA DA MEDIA
 SELECT * FROM FILMES WHERE DURAÇÃO> (SELECT AVG (DURAÇÃO) FROM FILMES));
 
 
Exercicio 06 – Aula 06 
 
Inserir 5 registros em cada tabela.
Selecionar todos os clientes com idade acima da média.
Selecionar todos os clientes com idade entre 20 e 50 anos.
Selecionar todos os clientes que moram em Santo André, Mauá ou SBC.
Quantos pedidos existem para o cliente 2?
Qual o número do Pedido mais recente?
Quantos Clientes residem em Mauá?
Quantos clientes estão cadastrados?
Qual a maior idade dos clientes?
Listar todas as cidades que temos clientes, sem duplicidade.
Atualizar o valor total dos pedidos com 10% de desconto, para todos da transportadora 01;
Selecionar todos os clientes com nome iniciado pela letra “E”;
Excluir todos os pedidos da transportadora 02.
-- a) CRIAR TABELAS E RELACIONAMENTOS:
 
-- CRIAR TABELA CLIENTES
CREATE TABLE CLIENTES (
CODCLI INT,
NOME VARCHAR(30),
ENDERECO VARCHAR(40),
CIDADE VARCHAR(30),
FONE CHAR(9),
IDADE INT,
CONSTRAINT PK_CLIENTES PRIMARY KEY(CODCLI));
 
-- CRIAR TABELA TRANSPORTADORA
CREATE TABLE TRANSPORTADORA (
CODIGO INT,
NOME VARCHAR(20),
CONSTRAINT PK_TRANSPORTADORA PRIMARY KEY(CODIGO));
 
-- CRIAR TABELA PEDIDOS
CREATE TABLE PEDIDOS (
NUMPED INT,
CLIENTE INT,
DATA_ENTREGA DATETIME,
TRANSPORTADORA INT,
VALOR_TOTAL NUMERIC(10,2),
CONSTRAINT PK_PEDIDOS PRIMARY KEY(NUMPED),
CONSTRAINT FK_CLIENTES FOREIGN KEY(CLIENTE)
REFERENCES CLIENTES(CODCLI),
CONSTRAINT FK_TRANSPORTADORA FOREIGN KEY(TRANSPORTADORA)
REFERENCES TRANSPORTADORA(CODIGO));
 
-- b) Inserir 5 registros em cada tabela.
INSERT INTO CLIENTES VALUES
(1,'Lucas Mendes','Rua Dr. João Carlos de Azevedo, 877','Mauá','987654321',24),
(2,'Leonardo Zaninete','Rua Vice Presidente Francisco, 429','Mauá','987654321',20),
(3,'Paulo','Rua Manoel Godoy, 30','SBC','987654321',32),
(4,'Hugo','Rua Joaquim Queiroz, 229','Santo André','987654321',21),
(5,'Jhon','Rua Castelo Branco, 1440','Ribeirão Pires','987654321',30);
 
INSERT INTO TRANSPORTADORA VALUES
(1,'Mega Transporte'),
(2,'ABC Transportes'),
(3,'Alpha Transportes'),
(4,'Ômega Transportes'),
(5,'TransAuto');
 
INSERT INTO PEDIDOS VALUES
(1,1,'20180406',1,'100.00'),
(2,2,'20180407',3,'200.00'),
(3,1,'20180407',2,'250.00'),
(4,3,'20180407',4,'150.00'),
(5,5,'20180407',5,'300.00');
 
--c) Selecionar todos os clientes com idade acima da média.
SELECT * FROM CLIENTES WHERE IDADE > (SELECT AVG(IDADE) FROM CLIENTES);
 
--d) Selecionar todos os clientes com idade entre 20 e 50 anos.
SELECT * FROM CLIENTES WHERE IDADE BETWEEN 20 AND 50;
 
--e) Selecionar todos os clientes que moram em Santo André, Mauá ou SBC.
SELECT * FROM CLIENTES WHERE CIDADE IN ('Santo André','Mauá','SBC');
 
--f) Quantos pedidos existem para o cliente 2?
Select COUNT(*) AS QTD_PEDIDOS from PEDIDOS where CLIENTE = 2;
 
--g) Qual o número do Pedido mais recente?
SELECT * FROM PEDIDOS WHERE DATA_ENTREGA = (SELECT MIN(DATA_ENTREGA) FROM PEDIDOS);
 
--h) Quantos Clientes residem em Mauá?
SELECT COUNT(*) AS 'RESIDENTES DE MAUÁ' FROM CLIENTES WHERE CIDADE='MAUÁ';
 
--i) Quantos clientes estão cadastrados?
SELECT COUNT(*) AS QTD_CADASTROS FROM CLIENTES;
 
--j) Qual a maior idade dos clientes?
SELECT MAX(IDADE) AS MAIOR_IDADE FROM CLIENTES;
 
--k) Listar todas as cidades que temos clientes, sem duplicidade.
SELECT DISTINCT(CIDADE) FROM CLIENTES;
 
--l) Atualizar o valor total dos pedidos com 10% de desconto, para todos da transportadora
01;
UPDATE PEDIDOS SET VALOR_TOTAL = VALOR_TOTAL - (VALOR_TOTAL* 0.1) WHERE TRANSPORTADORA = 1;
 
--m) Selecionar todos os clientes com nome iniciado pela letra “E”;
SELECT * FROM CLIENTES WHERE NOME LIKE 'E%';
 
--n) Excluir todos os pedidos da transportadora 02.
DELETE FROM PEDIDOS WHERE TRANSPORTADORA=2;

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando