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.
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
Postar um comentário
Obrigado por sua contribuição em forma de comentário!