Consultando dados no MySQL

Primeiramente acesse o utilitário de linha de comando do MySQL, selecione a base de dadosLocadora e verifique a existência da tabela filmes:


mysql> use locadora;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_locadora |
+--------------------+
| filmes             |
+--------------------+
1 row in set (0.05 sec)




O comando SQL que nos permite realizar consultas ao banco de dados é o comando SELECT.
Como dissemos, o comando SELECT serve para realizar consultas ao banco de dados (como um todo), e não somente a uma tabela. É por isto que a instrução abaixo funciona apesar de não estarmos consultando nenhuma tabela.

mysql> select 4/2;
+--------+
| 4/2    |
+--------+
| 2.0000 |
+--------+
1 row in set (0.05 sec)





Nesta instrução estamos consultando o banco de dados sobre a divisão dos valores 4 por 2, e ele retornou o valor 2.0000, que é o resultado da divisão.
Depois de esclarecido isto, vamos ver a sintaxe básica do comando SELECT.
SELECT (colunas) FROM nome_tabela WHERE definição_where
Vamos para um exemplo prático em nossa tabela filmes.




mysql> select * from filmes;
+----+---------------------------------+------+------------------+
| id | titulo                          | ano  | diretor          |
+----+---------------------------------+------+------------------+
|  1 | King Kong                       | 2006 | Peter Jackson    |
|  2 | Guerra dos Mundos               | 2005 | Steven Spielberg |
|  3 | Harry Potter e o Cálise de Fogo | 2006 | Mike Newell      |
+----+---------------------------------+------+------------------+
3 rows in set (0.11 sec)




A instrução SELECT * FROM nome_tabela já foi vista no artigo anterior, mas vamos esclarecer melhor como funciona esta instrução.
* (asterisco) substitui os nomes de todas colunas, e todas serão selecionadas para o resultado da consulta. A instrução FROM indica de qual tabela estamos buscando dados, no nosso exemplo a tabela filmes. Como a instrução WHERE (que funciona como um filtro) não foi declarada, não temos nenhuma restrição aos dados pesquisados, e a consulta retornará todo o conteúdo da tabelafilmes.
Caso não fosse de nosso desejo mostrar todas as colunas no resultado da consulta, bastaria nomear as colunas que deveriam aparecer no lugar do * (asterisco) e separadas por vírgula.

Vamos agora realizar a mesma consulta só que com um filtro, uma restrição aos dados que serão exibidos no resultado da consulta. Desta vez também selecionaremos apenas as colunas id, titulo eano para o resultado.

mysql> select id,titulo,ano from filmes where ano = 2006;
+----+---------------------------------+------+
| id | titulo                          | ano  |
+----+---------------------------------+------+
|  1 | King Kong                       | 2006 |
|  3 | Harry Potter e o Cálise de Fogo | 2006 |
+----+---------------------------------+------+
2 rows in set (0.03 sec)





A instrução SELECT id,titulo,ano FROM filmes WHERE ano = 2006 possui os principais pontos de uma consulta. Determinamos quais colunas (campos) deveriam aparecer no resultado da consulta, e filtramos o resultado para aparecerem apenas os registros cujo campo ano tenha o valor igual a2006. Note que apenas os filmes de 2006 estão presentes no resultado da consulta.
O filtros da cláusula WHERE podem ser mais complexos e determinarem mais de uma condição, como no exemplo a seguir.



mysql> select id,titulo,ano from filmes
    -> where ano = 2006 and titulo = 'King Kong';
+----+-----------+------+
| id | titulo    | ano  |
+----+-----------+------+
|  1 | King Kong | 2006 |
+----+-----------+------+
1 row in set (0.00 sec)

Neste caso selecionamos apenas os registros que possuem o ano igual a 2006 e o titulo igual aKing Kong. Neste caso a cláusula WHERE é auxiliada pelo AND que cria uma interseção no resultado da consulta entre os registro que possuem o ano 2006 e o titulo King Kong. Podemos também criar uma união entre os resultados com OR.

mysql> select id,titulo,ano from filmes
    -> where ano = 2005 or titulo = 'King Kong';
+----+-------------------+------+
| id | titulo            | ano  |
+----+-------------------+------+
|  1 | King Kong         | 2006 |
|  2 | Guerra dos Mundos | 2005 |
+----+-------------------+------+
2 rows in set (0.00 sec)

Aqui aparecem tanto o registro que possui o titulo King Kong como o registro do filme de 2005, ou seja, uma união.
OPERADORES DE COMPARAÇÃO
A Cláusula WHERE também aceita como operadores de comparação além do = (igual): < (menor), <=(menor ou igual), > (maior), >= (maior ou igual), <> (diferente). Também temos as comparações especiais IS NULL e IS NOT NULL.
Vamos a um exemplo com o comparador <> (diferente).

mysql> select * from filmes
    -> where ano <> 2006;
+----+-------------------+------+------------------+
| id | titulo            | ano  | diretor          |
+----+-------------------+------+------------------+
|  2 | Guerra dos Mundos | 2005 | Steven Spielberg |
+----+-------------------+------+------------------+
1 row in set (0.11 sec)



FONTE: http://www.hospedia.com.br/artigos/10/mysql/1/mysql_basico_-_o_comando_select_-_realizando_consultas.html - acesso em: 12/05/2012.




Comentários

Postagens mais visitadas deste blog

Alterando página inicial "localhost" no Xampp

Configurando o BIND9 e o Apache2 para vários domínios