Category Archives: mysql

Buscar os dados dos últimos 7 dias a partir da data atual

tux_mysql

Fala pessoal, essa dica vai para você que precisa coletar informações do seu asterisk ou qualquer informação do seu banco de dados para montar relatórios.

 

SELECT id FROM table ORDER BY date DESC

 

Onde:

  • id = dado à ser retornado;
  • table = tabela à ser consultada;
  • data = data do registro no banco de dados;
  • DESC = retornar de forma decrescente, do maior para o menor – usando a lógica de dias: traga 30 antes de 29, justamente o que você deseja.

Mysql parte 1

tux_mysql

Criando banco de dados.

Visualizando a base de dados criada.

Os nomes das tabelas são sensíveis à caixa (case sensitive). Ou seja, teste e TESTE são dois nomes totalmente diferentes pro MySQL.

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| GUSTAVOFRANCO |
| banco |
| my_wiki |
| mysql |
| performance_schema |
| testes |
+——————–+
7 rows in set (0.07 sec)

 

 

Recuperando senha MySQL

tux_mysql

Testado no Debian.

O primeiro passo, é pararmos o MySQL com o comando abaixo:

# /etc/init.d/mysql stop

Depois devemos iniciar o MySQL em modo de segurança, para que possamos ter acesso para alterar a senha:

# mysqld_safe –skip-grant-tables –skip-networking &

Explicando:

  • O parâmetro –skip-grant-tables, serve para o MySQL iniciar sem o responsável pela verificação das permissões dos usuários, dando permissão total a todos os usuários.
  • O segundo parâmetro –skip-networking, serve para que nenhuma conexão TCP/IP seja aceita, evitando que alguém se aproveite deste tempo para “destruir” seu banco de dados.

Uma vez o banco desprotegido, vamos conectar e alterar a senha do usuário que queremos recuperar. Neste exemplo, vou usar o próprio root:

# mysql -u root

mysql> update mysql.user set password=PASSWORD(‘nova_senha’) where user=’root’;
mysql> flush privileges;

A senha do root já está alterada. Agora devemos parar o MySQL e iniciá-lo novamente, para que o MySQL inicie sem os skips:

# /etc/init.d/mysql stop
# /etc/init.d/mysql start

Agora, para testarmos, vamos conectar ao banco usando a senha que colocamos:

# mysql -u root -p’nova_senha’

Mysql setup segurança básico

tux

#mysql_secure_installation

6

Obs.: Será solicitado a senha do usuário root

 

Troque a senha se for necessário e remova os usuários anônimos

7

 

Defina que o usuário root conecte apenas localmente (localhost)

8

 

Remova a database chamada test e por fim realize o reload dos privilégios.

9

 

 

Pronto!!! O MySQL esta instalado, funcional e com os ajustes básicos de Segurança.

Recuperando senha de root do mysql

mysql1

1 – /etc/init.d/mysql stop
2 – mysqld –skip-grant-tables &
3 – mysql -u root
4 – mysql> use mysql;
5 – mysql> update user set password=PASSWORD(“SENHA”) where User=’root’;
6 – mysql> quit
7 – /etc/init.d/mysql stop
8 – /etc/init.d/mysql start

Explicações:

1 – Parando o servidor do mysql;
2 – Iniciando o servidor e pulando carregamento de permissões de acesso aos bancos;
3 – Logando no mysql com o usuário “root”;
4 – Selecionando o banco “mysql”;
5 – Alterando a senha do usuário “root”;
6 – Sai da console do mysql;
7 – Para o servidor do mysql;
8 – Inicia o serviço

Para testar, execute o comando:

# mysql -u root -p

Fazendo consultas no mysql

mysql1

Fonte: http://mysqlparainiciantes.com.br/select-consultando-registros/

Diz para iniciantes mas achei algumas coisas bem interessantes neste site, vale a pena muito bem explicado.

SELECT <coluna> FROM <tabela> <condição>

1 –  Neste exemplo vamos utilizar o coringa que representa todas as colunas da tabela cliente

1

 

2 –  Para listarmos apenas o conteúdo de algumas colunas, ao invés de utilizar o *, informamos o nome das colunas, no exemplo abaixo vamos listar apenas a coluna id e nome, lembrando que as colunas precisam ser separadas por virgula.

02

 

3 –  Também podemos limitar a quantidade de linhas que devem ser exibidas, para isso utilizamos a função LIMIT seguido do valor que desejamos que seja exibido, no exemplo abaixo estamos exibindo apenas 5 linhas.

03

4 – Com a função ORDER BY, podemos ordenar por crescente ou decrescente qualquer coluna de nossa tabela, pode ser ordenado números e letras, também podemos ordenar mais de uma coluna na mesma query.

04

 

Obs.: Utilizamos o ASC para ordenar crescente e DESC para decrescente, a função DESC é a default e no caso de não informamos nada ela será utilizada.

5 –  SELECT ordenando a coluna nome como decrescente.

05

 

6 – WHERE – Utilizamos esta cláusula para filtrar conteúdos, onde podemos informar o valor especifico que queremos que seja exibido, no exemplo abaixo, estamos informando que deve ser exibido apenas o registro cujo seu ID seja igual a 2;

06

 

7 –  Também é possível utilizamos os sinais Maior que (>) e Menor que (<), no exemplo abaixo, estamos definindo que somente os registros maior ou igual a 6 devem ser exibidos

07

 

Obs.: Podemos utilizar:  Maior que (>), Menor que (<), Maior ou Igual (>=), Menor ou Igual (<=), Igual (=) e Diferente de (!=).

8 – LIKE – Também podemos utilizar operador LIKE para buscar valores aproximados com auxilio do coringa (%)

08

Obs.: Neste exemplo, estou buscando na coluna nome todos os registros que iniciam com a letra L.

9 –  Também podemos utilizar o coringa para informar que desejamos que a palavra contenha “eo” no nome, podendo começar com qualquer coisa e terminar com qualquer coisa.

09

 

10 – Podemos combinar as condições para aperfeiçoar a saída de nossa consulta, neste exemplo, estamos combinando a condição de filtragem WHERE, ordenando a coluna nome e limitando a quantidade de registros a serem exibidos em 2 linhas.

10

11 –  COUNT – Esta função conta os registros que estão sendo exibidos,  a sintaxe é simples, bastando apenas declarar a função antes do FROM e informar a coluna que deseja contar os registros, no exemplo abaixo estamos contando a quantidade de registros existentes na coluna id.

11

12 – Também podemos combinar outras condições para a função COUNT.

12

13 –  DISTINCT – Quando possuímos registros idênticos na mesma coluna e desejamos que seja exibido apenas 1 única vez aquele registro, utilizamos a função distinct, no caso da coluna email, todos os nossos 10 registros são idênticos, com a função distinct é exibido apenas 1 vez.

13

14 – ALIAS ou AS, podemos atribuir alias para o nome das colunas, o alias nada mais é que um apelido, conforme o exemplo abaixo, quando utilizamos o count ou distinct, o nome da coluna fica com o nome da função, no exemplo abaixo o nome da coluna ficou count(id), para deixamos melhor apresentável, podemos utilizar o AS e definir o nome que queremos que seja exibido:

14

15 –  AND, podemos utilizar o operador AND para adicionarmos mais de um critério de consulta, no exemplo abaixo, estamos exibindo nome, email e cadastro da tabela cliente, onde o id seja 5 ou menor E (AND) o nome se inicie com L.

15

Podemos adicionar o operador AND para diversas consultar, sempre visando melhorar a quantidade de registros que serão exibidos e que sejam mais exatos.

 

SELECT possui uma infinidade de funções, condições, operadores, passei hoje alguns dos básicos, aos poucos irei passando novas opções para incrementar ainda mais suas consultas.