Olá! Saturday, 07 de December de 2024.



Dicas CódigoFonte.net
Friday, 31 de December de 2010

6 queries úteis no MySQL

Nós sabemos que no MySQL, podemos montar praticamente qualquer tipo de retorno de informação a partir de seus dados armazenados em suas tabelas, em forma de registros (ou tuplas). <br>

Podemos fazer consultas SELECT com JOIN, WHERE, HAVING para mudar o escopo do resultado de linhas específicas, usar GROUP BY para combinar resultados, UNION para combinar múltiplas queries. 

Mas também existem casos em que precisamos retornar alguma informação mais comum, utilizada mais frequentemente em nossos sistemas. Vamos descrever a partir de agora 6 consultas no MySQL úteis para o dia a dia de nossos softwares. 

1 - Idade em anos

Você tem uma data de aniversário e precisa calcular quantos anos o usuário tem. Assume que @dateofbirth é a data: 

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0; 
2 - Diferença entre duas datas

Encontre a diferença entre dois valores de datas em segundos, minutos, horas e dias. Se dt1 e dt2 são valores do tipo datetime na forma "yyyy-mm-dd hh:mm:ss', o numero de segundos entre dt1 e dt2 é

UNIX_TIMESTAMP( dt2 ) - UNIX_TIMESTAMP( dt1 )

Para pegar o número de minutos, divida o resultado por 60, para o número de horas, divida por 3600 e para pegar a quantidade de dias, divida por 3600 * 24. 

3 - Exiba valores que ocorrem X vezes em uma coluna

SELECT id FROM tbl GROUP BY id HAVING COUNT(*) = N;

4 - Quantidade de dias úteis entre duas datas

SELECT COUNT(*) FROM calendar WHERE d BETWEEN Start AND Stop AND DAYOFWEEK(d) NOT IN(1,7) AND holiday=0;
  

5 - Encontre a chave primária da tabela


SELECT k.column_name FROM information_schema.table_constraints t JOIN information_schema.key_column_usage k USING (constraint_name,table_schema,table_name) WHERE t.constraint_type='PRIMARY KEY' AND t.table_schema='db' AND t.table_name='tbl'

6 - Veja o tamanho de seu banco de dados

SELECT table_schema AS 'Db Name', Round( Sum( data_length + index_length ) / 1024 / 1024, 3 ) AS 'Db Size (MB)', Round( Sum( data_free ) / 1024 / 1024, 3 ) AS 'Free Space (MB)' FROM information_schema.tables GROUP BY table_schema ;

Pronto pessoal. Espero que tenham gostado do artigo. 

Até a próxima. 

Artigo traduzido de CodeForest

Comentários do artigo [Novo comentário]

Nenhum comentário, seja o primeiro a comentar.
Para adicionar um comentário você deve efetuar o login


Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:


CodigoFonte.net » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010