# Exercícios Backend | Aula 3 | 11/07 ###### tags: `backend` `exercícios` `fullstackprogram` #### Parte 1: Sublinguagens do SQL: Linguagem de Definição de Dados ##### // Sistema de Aluguel de Imóveis ##### Schema ```sql CREATE TABLE imoveis ( codigo INTEGER, tipo_imovel TEXT, tamanho REAL, valor REAL, qtd_quartos INTEGER, qtd_banheiros INTEGER, vagas_garagem INTEGER, varanda BOOLEAN ); INSERT INTO imoveis (codigo, tipo_imovel, tamanho, valor, qtd_quartos, qtd_banheiros, vagas_garagem, varanda) VALUES (200201,'kitnet', 45, 800, 1, 1, 0, FALSE); INSERT INTO imoveis (codigo, tipo_imovel, tamanho, valor, qtd_quartos, qtd_banheiros, vagas_garagem, varanda) VALUES (200202, 'apartamento', 80, 2000, 3, 2, 2, TRUE); INSERT INTO imoveis (codigo, tipo_imovel, tamanho, valor, qtd_quartos, qtd_banheiros, vagas_garagem, varanda) VALUES (200203, 'casa', 150, 2500, 4, 2, 2, FALSE); INSERT INTO imoveis (codigo, tipo_imovel, tamanho, valor, qtd_quartos, qtd_banheiros, vagas_garagem, varanda) VALUES (200204, 'apartamento', 60, 1300, 2, 2, 1, FALSE); INSERT INTO imoveis (codigo, tipo_imovel, tamanho, valor, qtd_quartos, qtd_banheiros, vagas_garagem, varanda) VALUES (200205, 'apartamento', 75, 2200, 2, 3, 1, TRUE); INSERT INTO imoveis (codigo, tipo_imovel, tamanho, valor, qtd_quartos, qtd_banheiros, vagas_garagem, varanda) VALUES (200206, 'duplex', 70, 3, 2800, 2, 1, TRUE); CREATE TABLE proprietario ( nome_sobrenome VARCHAR(40), email VARCHAR (40), telefone TEXT ); INSERT INTO proprietario (nome_sobrenome, email, telefone) VALUES ('Clarice Lispector', 'clarice@planetaterra.com.br', '889724954'); INSERT INTO proprietario (nome_sobrenome, email, telefone) VALUES ('Machado de Assis', 'machado@planetaterra.com.br', '986543278'); INSERT INTO proprietario (nome_sobrenome, email, telefone) VALUES ('Hugo Mae', 'hugo@planetaterra.com.br', '888267598'); INSERT INTO proprietario (nome_sobrenome, email, telefone) VALUES ('Cora Coralina', 'cora@planetaterra.com.br', '896752184'); INSERT INTO proprietario (nome_sobrenome, email, telefone) VALUES ('Hilda Hilst', 'hilda@planetaterra.com.br', '892145276'); ``` ###### `link to work`: http://sqlfiddle.com/#!17/c6844/1 --- ### Parte 2: Sublinguagens do SQL - Linguagem de Manipulação de Dados (DML) ##### // Cardápio Digital ###### Schema ```sql CREATE TABLE cardapio ( nome TEXT, preco REAL, porcao TEXT, ingredientes TEXT, tempo_preparo TIME ); CREATE TABLE combos ( nome TEXT, preco REAL, porcao TEXT, tempo_preparo TIME ); INSERT INTO cardapio (nome, preco, porcao, ingredientes, tempo_preparo) VALUES ('falafel', 15, 'seis bolinhos', 'grao de bico e especiarias', '00:20:00'); INSERT INTO cardapio (nome, preco, porcao, ingredientes, tempo_preparo) VALUES ('mini wraps de couve', 26, 'cinco mini wraps', 'couve, abobrinha, brocolis, cenoura e especiarias', '00:20:00'); INSERT INTO cardapio (nome, preco, porcao, ingredientes, tempo_preparo) VALUES ('hummus', 18, '200 ml', 'grao de bico, tahine e especiarias', '00:20:00'); INSERT INTO cardapio (nome, preco, porcao, ingredientes, tempo_preparo) VALUES ('tabule', 35, 'bowl individual', 'trigo, tomate, pepino, cebola e especiarias', '00:20:00'); INSERT INTO combos (nome, preco, porcao, tempo_preparo) VALUES ('combo mini wraps', 40, 'mini wraps, suco natural, salada do dia', '00:20:00'); INSERT INTO combos (nome, preco, porcao, tempo_preparo) VALUES ('combo falafel', 40, 'bolinhos de falafel, suco natural, salada de tabule', '00:20:00'); INSERT INTO combos (nome, preco, porcao, tempo_preparo) VALUES ('combo completo', 50, 'mini wraps, tabule, hummus, porçao falafel, suco natural', '00:20:00'); ``` ###### `link to work`: http://sqlfiddle.com/#!17/47d28 #### Atualização ``` UPDATE cardapio SET preco = 32 WHERE nome = 'tabule'; SELECT * FROM cardapio ``` ###### `link to work`: http://sqlfiddle.com/#!17/47d28/15 #### Deleção ``` DELETE FROM cardapio WHERE nome = 'hummus'; SELECT * FROM cardapio ``` ###### `link to work`: http://sqlfiddle.com/#!17/47d28/21 ### Parte 3: Sublinguagens do SQL - Linguagem de Consulta de Dados ##### // Exercício 1 - Cardápio Virtual ```sql SELECT * FROM cardapio WHERE preco <= 10 AND tempo_preparo <= '00:10:00' ``` ###### `link to work`: http://sqlfiddle.com/#!17/47d28/23 ##### // Exercício 2 - Lista de imóveis ```sql SELECT * FROM imoveis WHERE tipo_imovel = 'casa' AND qtd_quartos >= 2 AND vagas_garagem >= 1 AND qtd_banheiros >=2; ``` ###### `link to work`: http://sqlfiddle.com/#!9/c6844b/9 ##### // Exercício 3 - Estudantes ```sql SELECT * FROM estudantes WHERE materia_favorita = 'Backend' AND idade > 25 AND idade < 45 OR nome <> 'Bruce Wayne'; ``` ###### `link to work`: http://sqlfiddle.com/#!9/b90689/1 ##### // Exercício 4 - Estudantes 2 ```sql SELECT * FROM estudantes WHERE idade >= 18 OR materia_favorita <> 'Frontend'; ``` ###### `link to work`: http://sqlfiddle.com/#!9/b90689/16 * nao consegui completar todos os requisitos desse último exercício. Eu nao soube como selecionar as três variáveis: nome, cidade e profissão de pessoas entre 18 e 98 anos, excluindo as que têm entre 21 e 24 anos.! * [Uploading file..._qtw16k6np]()