SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
CREATE TABLE equipe ( equipe_id INT PRIMARY KEY AUTO_INCREMENT, equipe_nome VARCHAR(200) UNIQUE NOT NULL ); INSERT INTO equipe (equipe_id, equipe_nome) VALUES (default, "'América Mineiro'"); INSERT INTO equipe (equipe_id, equipe_nome) VALUES (default, "'Atlético Mineiro'"); INSERT INTO equipe (equipe_id, equipe_nome) VALUES (default, "'Cruzeiro'"); INSERT INTO equipe (equipe_id, equipe_nome) VALUES (default, "'Tombense'"); SELECT * FROM TABELA; CREATE TABLE copia ( copia_id INT PRIMARY KEY AUTO_INCREMENT, copia_partida_id INT NOT NULL, copia_partida_id_equipe_mandante INT NOT NULL, copia_partida_id_equipe_visitante INT NOT NULL, copia_partida_gols_equipe_mandante INT UNSIGNED, copia_partida_gols_equipe_visitante INT UNSIGNED, copia_partida_data_hora DATETIME NOT NULL ); CREATE TABLE partida ( partida_id INT PRIMARY KEY AUTO_INCREMENT, partida_id_equipe_mandante INT NOT NULL, partida_id_equipe_visitante INT NOT NULL, partida_gols_equipe_mandante INT UNSIGNED, partida_gols_equipe_visitante INT UNSIGNED, partida_data_hora DATETIME NOT NULL, UNIQUE(partida_id_equipe_mandante, partida_id_equipe_visitante), CHECK(partida_id_equipe_mandante <> partida_id_equipe_visitante), FOREIGN KEY (partida_id_equipe_mandante) REFERENCES equipe (equipe_id), FOREIGN KEY (partida_id_equipe_visitante) REFERENCES equipe (equipe_id) ); INSERT INTO partida ( partida_id, partida_id_equipe_mandante, partida_id_equipe_visitante, partida_gols_equipe_mandante, partida_gols_equipe_visitante, partida_data_hora ) VALUES (default, 1, 2, null, null, '2021-10-30 19:00:00'), (default, 3, 4, null, null, '2021-10-30 19:00:00'), (default, 2, 1, null, null, '2021-11-06 19:00:00'), (default, 4, 3, null, null, '2021-11-06 19:00:00'), (default, 1, 3, null, null, '2021-11-13 19:00:00'), (default, 2, 4, null, null, '2021-11-13 19:00:00'), (default, 3, 1, null, null, '2021-11-20 19:00:00'), (default, 4, 2, null, null, '2021-11-20 19:00:00'), (default, 1, 4, null, null, '2021-11-27 19:00:00'), (default, 2, 3, null, null, '2021-11-27 19:00:00'), (default, 4, 1, null, null, '2021-12-04 19:00:00'), (default, 3, 2, null, null, '2021-12-04 19:00:00'); -- Faça uma consulta que exiba a data/hora da partida e o nome dos times mandantes. -- Utilize JOINS ou SUBCONSULTAS vistos na semana 3 SELECT A.partida_data_hora, B.equipe_nome AS mandante FROM partida AS A INNER JOIN equipe AS B ON B.equipe_id = A.partida_id_equipe_mandante; -- Faça uma consulta que exiba a data/hora da partida e o nome dos times visitantes. -- Utilize JOINS ou SUBCONSULTAS vistos na semana 3 SELECT A.partida_data_hora, B.equipe_nome AS visitante FROM partida AS A INNER JOIN equipe AS B ON B.equipe_id = A.partida_id_equipe_visitante; -- Faça uma consulta que exiba a data/hora da partida e o nome dos times (mandante e visitante) envolvidos em cada partida. -- Utilize JOINS ou SUBCONSULTAS vistos na semana 3 SELECT A.partida_data_hora, B.equipe_nome AS mandante, C.equipe_nome AS visitante FROM partida AS A INNER JOIN equipe AS B ON B.equipe_id = A.partida_id_equipe_mandante INNER JOIN equipe AS C ON C.equipe_id = A.partida_id_equipe_visitante; -- Faça uma consulta para exibir a quantidade de jogos de cada equipe como mandante; SELECT B.equipe_nome, count(*) as qtde_jogos_mandante FROM partida AS A INNER JOIN equipe AS B ON B.equipe_id = A.partida_id_equipe_mandante GROUP BY B.equipe_nome; -- Faça uma consulta para exibir a quantidade de jogos de cada equipe como visitante; SELECT B.equipe_nome, count(*) as qtde_jogos_visitante FROM partida AS A INNER JOIN equipe AS B ON B.equipe_id = A.partida_id_equipe_visitante GROUP BY B.equipe_nome; -- Faça uma função chamada eh_vogal_sem_acento que receba uma letra CHAR(1) e retorne um BOOLEAN; -- Se a letra recebida for uma vogal sem acento ('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U') retorne true (ou 1); -- Se não, retorne false (ou 0); CREATE FUNCTION eh_vogal_sem_acento (letra CHAR(1)) RETURNS BOOLEAN DETERMINISTIC RETURN (letra IN ('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U')); select eh_vogal_sem_acento('a'); select eh_vogal_sem_acento('E'); select eh_vogal_sem_acento('1'); select eh_vogal_sem_acento('z'); -- Faça uma função chamada retorna_nome_equipe que receba o id da equipe e retorne o nome da equipe. DELIMITER $$ CREATE FUNCTION retorna_nome_equipe (id INT) RETURNS VARCHAR(200) DETERMINISTIC BEGIN DECLARE resultado VARCHAR(200); SELECT equipe_nome INTO resultado FROM equipe WHERE equipe_id = id; RETURN resultado; END DELIMITER ; SELECT retorna_nome_equipe(1); SELECT retorna_nome_equipe(2); SELECT retorna_nome_equipe(3); SELECT retorna_nome_equipe(4); -- Faça uma consulta que exiba a data/hora da partida e o nome dos times (mandante e visitante) envolvidos em cada partida. -- Use a função retorna_nome_equipe nas colunas corretas da partida. SELECT partida_data_hora, retorna_nome_equipe(partida_id_equipe_mandante), retorna_nome_equipe(partida_id_equipe_visitante) FROM partida; -- Crie uma procedure chamada atualiza_gols_partida. -- A procedure vai receber como entrada (IN): -- o id da equipe mandante, -- o id da equipe visitante, -- a quantidade de gols feita pela equipe mandante, -- a quantidade de gols feita pela equipe visitante, -- a procedure deve usar esses parâmetros informados para fazer uma atualização (update) na tabela "partida". -- Faça um gatilho para a tabela "partida", para que após (after) ocorrer atualização (update) em qualquer registro, seja inserido (insert) os valores do antigo registro (OLD) da "partida" na tabela "copia". -- Perceba que a tabela de copia tem uma coluna a mais que é a chave primária auto-incremento. -- Faça um gatilho para a tabela "partida", para que após (after) ocorrer exclusão (delete) em qualquer registro, seja inserido (insert) os valores do antigo registro (OLD) da "partida" na tabela "copia". -- Ponto extra (consulta complexa) -- Crie uma consulta que gere para cada time: -- a quantidade de vitórias -- a quantidade de derrotas -- a quantidade de empates -- a quantidade de gols feitos -- a quantidade de gols sofridos
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear