Postagens

Mostrando postagens de janeiro, 2013

MySQL - Função LOAD INFILE não funciona? Uma dica rápida

Dependendo das configurações de instalação do MySQL podemos ter problemas na hora de carregar arquivos com dados (.csv por exemplo) para dentro de uma tabela. Exemplo: LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table; Caso ocorram erros ao efetuar este tipo de operação, abra o terminal do DOS ou Linux e tente acessar o banco de dados através do comando abaixo: DOS: c:\caminho_para_o_mysql\mysql -uusuario -psenha --local-infile Linux: $ mysql -uusuario -psenha --local-infile onde 'usuario' é o seu usuário e 'senha' sua senha. Após acessar o banco por meio desta operação tente efetuar novamente o procedimento de LOAD INFILE.

MySQL - Trabalhando com IFs e CASEs

Não, não é só nas linguagens de programação que temos IF's e CASE's, no SQL também os temos e este artigo é justamente para falarmos um pouco sobre eles e algumas utilizações. Vamos iniciar exibindo a nossa tabela teste id nome idade estado 1 Pedro 50 SP 2 Antonio 30 RJ 3 Amélia 20 SP 4 Marta 15 SP 5 Maria 80 SP 6 NULL NULL RJ Trabalhando com IF A sintaxe básica é a que segue abaixo SELECT *,IF(estado = 'SP', 'São Paulo','Rio de Janeiro') AS nome_do_estado FROM teste id nome idade estado nome_do_estado 1 Pedro 50 SP São Paulo 2 Antonio 30 RJ Rio de Janeiro 3 Amélia 20 SP São Paulo 4 Marta 15 SP São Paulo 5 Maria 80 SP São Paulo 6  NULL NULL RJ Rio de Janeiro Ou seja, IF(campo = 'valor1', 'resposta 1','resposta 2') onde 'resposta 1' ocorre se o valor de um determinado regisro de "campo" for igual a ...

MySQL - Utilizando variáveis do MySQL com subqueries

Um assunto que acredito ser pouco discutido, ou que pelo menos eu vejo muito pouco, são as variáveis em SQL. Estas funcionam de maneira semelhante a variáveis das linguagens de programação, ou seja guardam um determinado valor, apenas a implementação delas é ligeiramente diferente. Uma utilização interessante das variáveis é o incremento de linha, ou seja, criar uma lista ordenada numerada 'artificialmente'. Talvez eu tenha sido pouco claro na explicação acima, mas os exemplos dirão por si próprios. Para começarmos vamos adotar a nossa tabela de teste id nome idade estado 1 Pedro 50 SP 2 Antonio 30 RJ 3 Amélia 20 SP 4 Marta 15 SP 5 Maria 80 SP Vamos ordenar a tabela por nome, por exemplo. SELECT * FROM teste ORDER BY nome Temos a tabela ordenada da seguinte forma id nome idade estado 3 Amélia 20 SP 2 Antonio 30 RJ 5 Maria 80 SP 4 Marta 15 SP 1 Pedro 50 SP O problema, se é que podemos dize...

MySQL - Listando e matando processos do banco de dados

A dica de hoje é rápida mas muito útil. Tem momentos em que aquela sua query fica empacada e você precisa ver o que está acontecendo e, caso necessário, 'matar' o processo. Para listar o processo de um banco basta acessar o mesmo e fazer a query abaixo. SHOW PROCESSLIST Será exibida a lista dos processos ativos. Para matar um processo basta verificar o ID do mesmo e digitar: KILL numero_do_processo É isso ai.

MySQL - Tabelas virtuais - Fazendo Subselects e agrupamentos com GROUP BY

Hoje vamos ver uma query bem simples mas extremamente útil. Ela envolve o princípio de subselects que nada mais é do que a possibilidade que o SQL nos dá de criar uma espécie de tabela virtual através de uma query e, posteriormente, utilizar esta mesta para fazer uma nova query. É como aplicar um "filtro" duas vezes para tornar mais "pura" uma mistura. Outro modo de fazer isto seria criando uma VIEW, porém, muitas vezes, é completamente desnecessário como no caso de um select simples. VIEWS geralmente guardamos para selects muito complexos. Bem, vamos começar com nossa tabela base de testes. id  nome  idade  estado 1  Pedro  50   SP 2  Antonio  30   RJ 3  Amélia  20   SP 4  Marta  15   SP 5  Maria  80   SP Vamos supor que desejamos agrupar as informações por estado. Isto é bem simples através das linhas abaixo: SELECT estado,count(*) AS quantidade FROM `teste` GROUP BY estado A sa...