Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Aula - Consultas simples
- # Cria a base de dados
- CREATE DATABASE ProjetoFormula1;
- # Seleciona a base a ser utilizadas nos comando abaixo
- USE ProjetoFormula1;
- # Cria a tabela Pilotos
- CREATE TABLE Pilotos
- (
- codigo INT(11),
- nome VARCHAR(40) NOT NULL,
- pais VARCHAR(20),
- idade INT(6),
- equipe VARCHAR(20) NOT NULL,
- motor VARCHAR(20),
- pontos INT(10),
- PRIMARY KEY (codigo)
- );
- # ---------- Inserindo dados ----------
- INSERT INTO Pilotos
- (codigo, nome, pais, idade, equipe, motor, pontos)
- VALUES
- (111, "Sebastian Vettel", "Alemanha", 25, "RedBull", "Renault", 256),
- (112, "Fernando Alonso", "Espanha", 28, "Ferrari", "Ferrari", 252),
- (113, "Mark Alan Webber", "Áustria", 26, "RedBull", "Renault", 242),
- (114, "Lewis Hamilton", "Inglaterra", 22, "McLaren", "Mercedes", 240),
- (115, "Jenson Button", "Inglaterra", 21, "McLaren", "Mercedes", 214),
- (116, "Felipe Massa", "Brasil", 27, "Ferrari", "Ferrari", 144),
- (117, "Nico Rosberg", "Alemanha", 24, "Mercedes", "Mercedes", 142),
- (118, "Robert Kubica", "Polônia", 21, "Renault", "Renault", 136),
- (119, "Michael Schumacher", "Alemanha", 23, "Mercedes", "Mercedes", 72),
- (120, "Rubens Barrichello", "Brasil", 29, "Williams", "Cosworth", 47),
- (121, "Adrian Sutil", "Alemanha", 24, "ForceIndia", "Mercedes", 47),
- (122, "Kamui Kobayashi", "Japão", 23, "Sauber", "Ferrari", 32),
- (123, "Vitaly Petrov", "Rússia", 22, "Renault", "Renault", 27),
- (124, "Nico Hulkenberg", "Alemanha", 20, "Williams", "Cosworth", 22),
- (125, "Vitantonio Liuzzi", "Itália", 25, "ForceIndia", "Mercedes", 21),
- (126, "Sebastian Buemi", "Suiça", 16, "ToroRosso", "Ferrari", 8),
- (127, "Pedro de la Rosa", "Espanha", 22, "Sauber", "Ferrari", 6),
- (128, "Nivk Heidfeld", "Alemanha", 22, "Sauber", "Ferrari", 6),
- (129, "Jaime Alguersuari", "Espanha", 27, "ToroRosso", "Ferrari", 5),
- (130, "Sakon Yamamoto", "Japão", 20, "Hispania", "Cosworth", 0),
- (131, "Lucas Tucci di Grassi", "Brasil", 25, "Virgin", "Cosworth", 0),
- (132, "Jarno Trulli", "Itália", 18, "Lotus", "Cosworth", 0),
- (133, "Heikki Kovalainen", "Finlândia", 19, "Lotus", "Cosworth", 0),
- (134, "Timo Glock", "Alemanha", 24, "Virgin", "Cosworth", 0),
- (135, "Christian Klien", "Austrália", 20, "Hispania", "Cosworth", 0),
- (136, "Bruno Senna", "Brasil", 21, "Hispania", "Cosworth", 0),
- (137, "Karun Chandhok", "Índia", 20, "Hispania", "Cosworth", 0);
- # ---------- Consultas ----------
- # CONSULTA 1
- # Listar todos os dados da tabela Pilotos
- SELECT * FROM Pilotos;
- # -----------
- # CONSULTA 2
- # Listar nome, país e idade de todos os pilotos de Fórmula 1
- SELECT
- nome, pais, idade
- FROM
- pilotos;
- # -----------
- # CONSULTA 3
- # Mostrar os pilotos e suas respectivas equipes
- SELECT
- codigo, nome, equipe
- FROM
- pilotos;
- # -----------
- # CONSULTA 4
- # Selecionar o nome dos pilotos, sua nação e a equipe a que pertencem. Mostrar no máximo dez pilotos.
- SELECT
- nome AS Piloto, pais AS Nação, equipe AS Equipe
- FROM
- pilotos
- LIMIT
- 10;
- # -----------
- # CONSULTA 5
- # Selecionar os países dos pilotos.
- SELECT DISTINCT
- pais AS Nação
- FROM
- pilotos;
- # -----------
- # CONSULTA 6
- # Selecionar nome, idade, país e equipe dos pilotos de Fórmula 1. Os nomes devem estar dispostos em ordem alfabética.
- SELECT
- nome AS Nome, idade AS Idade, pais AS Pais, equipe AS Equipe
- FROM
- pilotos
- ORDER BY
- nome;
- # -----------
- # CONSULTA 7
- # Selecionar nome, idade, país, equipe e pontuação de cada piloto de Fórmula 1. Esses dados devem estar dispostos de acordo com a idade em ordem decrescente.
- SELECT
- nome AS Nome, idade AS Idade, pais AS Pais, equipe AS Equipe, pontos AS Pontuacao
- FROM
- pilotos
- ORDER BY
- idade DESC;
- # -----------
- # CONSULTA 8
- # Mostrar os países a que pertencem os pilotos de Fórmula 1 em ordem alfabética.
- SELECT DISTINCT
- pais AS Pais
- FROM
- pilotos
- ORDER BY
- pais ASC;
- # -----------
- # CONSULTA 9
- # No relatório requisitado sobre os pilotos de Fórmula 1, é necessário conter o nome
- # dos pilotos, a equipe a que pertencem, os pontos e um cálculo desses com a seguinte
- # fórmula: ((pontos-3)*1.5). Os dados devem estar dispostos em ordem decrescente e
- # bastam apenas os dez primeiros classificados.
- SELECT
- nome AS Piloto, equipe AS Equipe, pontos AS PontosAtuais, ((pontos-3)*1.5) AS PontosAlterados
- FROM
- pilotos
- ORDER BY
- pontos DESC
- LIMIT 10;
- # -----------
- # CONSULTA 10
- # Selecionar o nome dos pilotos de Fórmula 1, a equipe a que pertencem, sua pontuação
- # correspondente e esta acrescida de 20 e dividida por 5. Desses dados, devem ser
- # mostrados somente os dez pilotos com menor pontuação.
- SELECT
- nome AS Piloto, equipe AS Equipe, pontos AS PontosAtuais, ((pontos+20)/5) AS PontosAlterados
- FROM
- pilotos
- ORDER BY
- PontosAlterados ASC
- LIMIT
- 10;
- # -----------
- # CONSULTA 11
- # Selecionar nome, equipe e pontuação dos pilotos de Fórmula 1 que são da Alemanha.
- # Os dados devem estar dispostos de acordo com a equipe, em ordem alfabética.
- SELECT
- nome AS Nome, equipe AS Equipe, pontos AS Pontuacao, pais AS Pais
- FROM
- pilotos
- WHERE
- pais = "Alemanha"
- ORDER BY
- equipe;
- # -----------
- # CONSULTA 12
- # Mostrar os pilotos de Fórmula 1 que possuem uma pontuação diferente de zero.
- # É necessário mostrar nome, equipe, país e pontuação. Esses dados devem estar
- # dispostos em ordem decrescente de pontuação.
- SELECT
- nome AS Nome, equipe AS Equipe, pais AS Nacao, pontos AS pontuacao
- FROM
- pilotos
- WHERE
- pontos <> 0
- ORDER BY
- pontos DESC;
- # -----------
- # CONSULTA 13
- # Selecionar nome, idade, equipe e país dos pilotos de Fórmula 1 que tenham idade
- # igual ou superior a 25 anos.
- SELECT
- nome AS Nome, idade AS Idade, equipe AS Equipe, pais AS Nacao, pontos AS pontuacao
- FROM
- pilotos
- WHERE
- idade >= 25
- ORDER BY
- idade;
- # -----------
- # CONSULTA 14
- # No relatório a ser emitido, devem constar apenas os pilotos que tenham menos que 50
- # anos. Os dados que precisam aparecer são: nome, equipe, país e pontuação dos pilotos
- # de Fórmula 1.
- SELECT
- nome AS Nome, equipe AS Equipe, pais AS Nacao, pontos AS pontuacao
- FROM
- pilotos
- WHERE
- pontos < 50;
- # -----------
- # CONSULTA 15
- # Selecionar todos os pilotos de Fórmula 1 que tenham uma pontuação superior a 100.
- # Para completar a informação, devem estar incluídos também nome, equipe, país e
- # pontuação dos pilotos.
- SELECT
- nome AS Nome, equipe AS Equipe, pais AS Nacao, pontos AS pontuacao
- FROM
- pilotos
- WHERE
- pontos > 100;
- # -----------
- # CONSULTA 16
- # Listar os pilotos de Fórmula 1 que tenham idade inferior ou igual a 20 anos.
- # Incluir nesta listagem nome, idade, equipe, país e a pontuação dos referidos pilotos.
- SELECT
- nome AS Nome, idade AS Idade, equipe AS Equipe, pais AS Nacao, pontos AS pontuacao
- FROM
- pilotos
- WHERE
- idade <= 20
- ORDER BY
- idade;
- # -----------
- # CONSULTA 17
- # Selecionar por equipe os pilotos de Fórmula 1 que utilizam os motores Ferrari;
- # é importante mencionar nome, país e pontuação dos pilotos.
- SELECT
- nome AS Nome, equipe AS Equipe, pais AS Nacao, pontos AS Pontos
- FROM
- pilotos
- WHERE
- motor LIKE "Ferrari"
- ORDER BY
- equipe;
- # -----------
- # CONSULTA 18
- # Selecionar os pilotos dos países que começam com a letra A. Mostrar nome, equipe,
- # pontuação e país dos pilotos de Fórmula 1. É importante que os países estejam em
- # ordem alfabética.
- SELECT
- nome AS Nome, equipe AS Equipe, pais AS Nacao, pontos AS Pontos
- FROM
- pilotos
- WHERE
- pais LIKE "A%"
- ORDER BY
- pais;
- # -----------
- # CONSULTA 19
- # Foi requisitada uma listagem dos pilotos de Fórmula 1 que pertençam a equipes que
- # terminem com ‘auber’. Essa lista deve ser por equipe e nela devem constar nome,
- # equipe, país e a pontuação dos pilotos.
- SELECT
- nome AS Nome, equipe AS Equipe, pais AS Nacao, pontos AS Pontos
- FROM
- pilotos
- WHERE
- equipe LIKE "_auber"
- ORDER BY
- equipe;
- # -----------
- # CONSULTA 20
- # Faça uma listagem dos pilotos de Fórmula 1 que representam países que não possuem
- # a sílaba “an” no meio de seu nome. Essa listagem deve ser ordenada por país e
- # constar de nome, equipe, país e pontuação dos pilotos.
- SELECT
- nome AS Nome, equipe AS Equipe, pais AS Nacao, pontos AS Pontos
- FROM
- pilotos
- WHERE
- pais NOT LIKE "%an%"
- ORDER BY
- pais;
- # -----------
- # CONSULTA 21
- # Selecionar os pilotos de Fórmula 1 maiores de 25 anos e os com 30 anos ou menos.
- # É necessário mostrar também os respectivos nome, idade, equi- pe, país e pontuação.
- SELECT
- nome AS Nome, idade AS Idade, equipe AS Equipe, pais AS Nacao, pontos AS Pontos
- FROM
- pilotos
- WHERE
- idade > 25 AND idade <=30;
- # -----------
- # CONSULTA 22
- # Selecionar os pilotos de Fórmula 1 que pertençam a equipes cujo nome comece com F
- # ou utilizem motores cujos nomes iniciem com R. É necessário para essas informações
- # constar nome, equipe e país dos pilotos de Fórmula 1.
- SELECT
- nome AS Nome, equipe AS Equipe, motor AS Motor, pais AS Nacao
- FROM
- pilotos
- WHERE
- equipe
- LIKE "F%" OR motor LIKE "R%";
- # -----------
- # CONSULTA 23
- # Listar nome, idade, equipe e motores utilizados pelos pilotos de Fórmula 1 que tenham
- # menos que 25 anos, mas também façam parte de equipes cujo nome inicie com a letra R
- # ou que utilizem motores com a letra M em seu nome.
- SELECT
- nome AS Nome, idade AS Idade, equipe AS Equipe, motor AS Motor
- FROM
- pilotos
- WHERE
- (equipe LIKE "R%" OR motor LIKE "%m%") AND idade < 25;
- # -----------
- # CONSULTA 24
- # Listar os pilotos de Fórmula 1 que alcançaram pontos de 136 até 252.
- # Nesta listagem, é importante colocar nome, idade, país e pontos dos pilotos.
- SELECT
- nome, idade, pais, equipe, pontos
- FROM
- pilotos
- WHERE
- pontos BETWEEN 136 AND 252;
- # -----------
- # CONSULTA 25
- # Mostrar os pilotos de Fórmula 1 que tenham uma pontuação maior que 136 e também
- # não estejam devendo nenhum ponto também. Inclua nesta lista nome, idade, país,
- # equipe e pontos desses pilotos.
- SELECT
- nome, idade, pais, equipe, pontos
- FROM
- pilotos
- WHERE
- pontos NOT BETWEEN 0 AND 136;
- # -----------
- # CONSULTA 26
- # Selecionar nome, idade, país e equipe dos pilotos de Fórmula 1 que tenham idade
- # igual a 22 ou 24 ou ainda 29. Ordenar esta informação por idade.
- SELECT
- nome, idade, pais, equipe
- FROM
- pilotos
- WHERE
- idade IN (22, 24, 29)
- ORDER BY
- idade;
- # -----------
- # CONSULTA 27
- # Listar nome, idade, país e equipe dos pilotos de Fórmula 1 que não sejam da
- # Alemanha ou da Inglaterra ou da Espanha.
- SELECT
- nome, idade, pais, equipe
- FROM
- pilotos
- WHERE
- pais NOT IN ("Alemanha", "Inglaterra", "Espanha")
- ORDER BY
- pais;
- # -----------
- # CONSULTA 28
- # Selecionar os pilotos de Fórmula 1 que não pontuaram ainda.
- SELECT
- *
- FROM
- pilotos
- WHERE
- pontos IS NULL;
- # -----------
- # CONSULTA 29
- # Mostrar dados dos pilotos de Fórmula 1 que possuem pontuação menor que 10.
- SELECT
- *
- FROM
- pilotos
- WHERE
- pontos IS NOT NULL AND pontos < 10;
- # -----------
- # CONSULTA 30
- # Informar o número de pilotos de Fórmula 1 existente nesse cadastro.
- SELECT
- COUNT(*)
- AS
- NumeroPilotos
- FROM
- pilotos;
- # -----------
- # CONSULTA 31
- # Indicar o número de pilotos de Fórmula 1 que tenham 21 anos ou mais.
- SELECT
- COUNT(*)
- AS
- NumeroPilotos
- FROM
- pilotos
- WHERE
- idade >= 21;
- # -----------
- # CONSULTA 32
- # Informar a média de idade dos pilotos da Alemanha ou da Inglaterra ou do Brasil.
- SELECT
- AVG(idade) AS MediaIdadePilotos
- FROM
- pilotos
- WHERE
- pais IN ("Alemanha", "Inglaterra", "Brasil");
- # -----------
- # CONSULTA 33
- # Informar a média dos pontos dos pilotos de Fórmula 1.
- SELECT
- AVG(pontos) AS MediaPontosPilotos
- FROM
- pilotos;
- # -----------
- # CONSULTA 34
- # Informar o piloto mais novo de Fórmula 1.
- SELECT
- MIN(idade) AS IdadeMinima
- FROM
- pilotos;
- # -----------
- # CONSULTA 35
- # Indicar pontuação máxima alcançada pelos pilotos de Fórmula 1.
- SELECT
- MAX(pontos) AS PontuacaoMaxima
- FROM
- pilotos;
- # -----------
- # CONSULTA 36
- # Mostrar o total dos pontos dos pilotos de Fórmula 1 da Inglaterra.
- SELECT
- SUM(pontos) AS SomaDosPontos
- FROM
- pilotos
- WHERE
- pais = "Inglaterra";
- # -----------
- # CONSULTA 37
- # Mostrar a pontuação total por país dos pilotos de Fórmula 1.
- SELECT
- SUM(pontos) AS SomaDosPontos, pais AS Pais
- FROM
- pilotos
- GROUP BY
- pais
- ORDER BY
- SomaDosPontos;
- # -----------
- # CONSULTA 38
- # Listar a média de idade dos pilotos de Fórmula 1 de cada país dessa tabela.
- # Devem ser elencados somente os países que apresentaram a média de idade dos
- # pilotos maior que 20 anos.
- # Para resolver essa consulta, vamos dividi-la em duas partes:
- # Parte 1: Listar a média de idade dos pilotos de Fórmula 1 de cada país desta tabela.
- SELECT
- AVG(idade) AS MediaDaIdade, pais AS Pais
- FROM
- pilotos
- GROUP BY
- pais
- ORDER BY
- pais;
- # Parte 2: Os registros destacados na tabela anterior não devem constar no resultado
- # final, e no código da consulta é necessário incluir a cláusula HAVING com a condição
- # para que seja feita a seleção como mostrado a seguir:
- SELECT
- AVG(idade) AS MediaDaIdade, pais AS Pais
- FROM
- pilotos
- GROUP BY
- pais
- HAVING
- AVG(idade) > 20
- ORDER BY
- pais;
- # -----------
- # CONSULTA 39
- # Mostrar a quantidade de pilotos de Fórmula 1 de cada país que consta nesse cadastro.
- # Listar os países em ordem alfabética.
- SELECT
- COUNT(*) AS NumeroDePilotos, pais AS Pais
- FROM
- pilotos
- GROUP BY
- pais
- ORDER BY
- pais;
Add Comment
Please, Sign In to add comment