You are currently browsing Paulino Michelazzo's articles.
A função COUNT pode ser usada de várias formas diferentes as quais retornam diferentes resultados de uma contagem. A mais comum é quando precisa-se saber quantas linhas existem em uma tabela, podendo ser executada com a declaração:
SELECT COUNT(*) FROM tabela
A diferença mais significativa está na contagem de registros não nulos dentro de uma tabela, que pode ser executada da seguinte forma:
SELECT COUNT(campo) FROM tabela
O resultado da última declaração é diferente da primeira pois o resultado somente apresenta a soma dos registros não nulos e não o número de linhas existentes.
Muitas vezes é necessário fazer um insert de dados em uma tabela trazendo resultados de outra na mesma base ou em bases diferentes. Como fazer? Simples:
INSERT INTO banco.tabela-destino (campo1, campo2, campo3...) SELECT campo1,campo2,campo3... FROM banco.tabela-origem;
Atente-se para que os campos estejam na mesma seqüência tanto na instrução INSERT quanto na instrução SELECT pois é seguida a seqüência de campos em ambas as instruções. Também não se esqueça do ponto e vírgula no final da última instrução. Imprescindível.
Uma forma de obter velocidade na execução de tabelas, principalmente as temporárias, é criá-las em memória. Como estas tabelas são usadas e depois descartadas, é possível obter um ganho de performance muito grande com este truque.
Para criar uma tabela temporária em memória, faça:
CREATE TEMPORARY TABLE <nome_da_tabela> (<campos>) ENGINE=MEMORY;
Observe a necessidade obrigatória de informar o tipo de engine usado. Neste caso, a memória do servidor.
Esta dica também é válida para a criação de tabelas comuns (não-temporárias), bastando remover o argumento TEMPORARY. Mas cuidado, se o servidor cair, os dados são perdidos e não é possível recuperá-los.
A função CURDATE não funciona corretamente para a adição de dias que extrapolam o calendário. Como exemplo, a instrução a seguir retornar uma data inexistente:
// acrescentando 120 dias a data atual > SELECT CURDATE()+120; > 20071325
Para resolver isso é usada uma outra função chamada DATE_ADD, responsável pela soma correta de dias em uma determinada data:
// acrescentando 120 dias a data atual > SELECT DATE_ADD(CURDATE(), INTERVAL 120 DAY); > 2008-04-03
O mesmo pode ser feito para subtrair dias de uma data com a função DATE_SUB.







Comentários Recentes