FUNÇÕES e SUBQUERY
Professor Anderson Carvalho
FUNÇÕES
FUNÇÕES STRING TRIM(str) SELECT TRIM('
bar
'); -> 'bar'
LCASE(str), LOWER(str) SELECT LCASE('MYSQL'); -> 'mysql'
UCASE(str), UPPER(str) SELECT UCASE('Hej'); -> 'HEJ'
REPLACE(astr,da_str,para_str) SELECT REPLACE('www.mysql.com', 'w', 'Ww'); -> 'WwWwWw.mysql.com'
OUTRAS FUNÇÕES COUNT(expr) SELECT COUNT(*) FROM t1; SELECT COUNT(DISTINCT campo3) FROM t2;
AVG(expr) SELECT nome_estudante, AVG(nota_teste) FROM estudante GROUP BY nome_estudante;
SUM(expr) SELECT SUM(campo1) from t1;
CONCAT(val1, val2, val3) SELECT CONCAT(“R$”, salario) as “SALARIO TOTAL” from t1
SUBQUERIES
SUBQUERY SELECT com SELECT
SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);
• Exibe todos os dados de uma tabela se uma determinada coluna conter exatamente os mesmos registros de uma outra coluna de uma segunda tabela
SUBQUERY INSERT com SELECT
INSERT INTO
map_band_group (band_id, group_id)
(SELECT band_id, 103 FROM map_band_group WHERE group_id = 104)
• Insere em uma tabela os valores retornados de um SELECT
SUBQUERY DELETE com INSERT DELETE FROM t1 WHERE s11 > ANY (SELECT COUNT(*) /* no hint */ FROM t2 WHERE NOT EXISTS
(SELECT * FROM t3 WHERE ROW(5*t2.s1,77)= (SELECT 50,11*s1 FROM t4 UNION SELECT 50,77 FROM (SELECT * FROM t5) AS t5)));
• Exclui somente se atendidas as condições dos SELECTS
SUBQUERY UPDATE com INSERT
UPDATE people, (SELECT count(*) as votecount, person_id FROM votes GROUP BY person_id) as tally SET people.votecount = tally.votecount WHERE people.person_id = tally.person_id
• Atualiza os campos especificados somente se atendidas as condições do SELECT
PRATICANDO...
EXERCÍCIOS 1. Através do comando INSERT insira dois registros em cada tabela 2. Faça uma consulta na tabela tb_clientes que retorne todas as colunas do registro de id = 4 3. Faça a contagem de quantos departamentos distintos existem na tabela tb_cargos 4. Atualize o campo site de todos os registros da tabela tb_marca convertendo os valores do campo em caixa baixa 5. Faça uma consulta na tabela tb_funcionarios que exiba a escolaridade e a sua respectiva média de salário
EXERCÍCIOS 6. Faça uma consulta que exiba o total dos salários contidos na tabela tb_funcionarios 7. Faça uma consulta na tabela tb_funcionarios que exiba todos os campos dos funcionários que tenham salário maior que a média 8. Faça uma consulta nas tabelas tb_funcionarios e tb_cargos que apresente (todos os registros) o nome e o departamento do funcionário em questão 9. Faça uma consulta nas tabelas tb_funcionarios e tb_cargos que retorne os cargos cadastrados e a quantidade de funcionários cadastrados em cada cargo
EXERCÍCIOS 10. Faça uma consulta nas tabelas tb_marcas e tb_produtos que exiba a quantidade de produtos cadastrados para cada marca
Enviar para aulas@andersoncarvalho.pro.br • Queries dos exercícios • Resultados exportados em arquivo • Queries com erros para revisão.