MySQL Básico - O comando SELECT - Realizando consultas

20/04/2006 08:45:00

Autor: Rondinely S. de Almeida


Serviços para Webmasters

No último artigo, MySQL Básico - Inserindo dados, demostramos quais eram as maneiras básicas de se inserir dados em uma tabela MySQL, vimos também os principais erros de inserção que podem acontecer. Neste artigos vamos aprender a consultar os dados inseridos em uma tabela.

Primeiramente acesse o utilitário de linha de comando do MySQL, selecione a base de dados Locadora 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 tabela filmes.

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.

Năo deixe de ver também:

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 e ano 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 a 2006. 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 a King 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)

Artigos relacionados

MySQL Básico - O comando DELETE - Excluindo dados : 19/07/2006
Neste artigo demonstraremos como excluir registros em tabelas no banco...

MySQL Básico - O comando UPDATE - Atualizando dados : 15/05/2006
Neste artigo demonstraremos como atualizar dados em tabelas no banco de...

MySQL Básico - O comando INSERT - Inserindo dados : 19/04/2006
Neste artigo demonstraremos como inserir dados em uma tabela MySQL, veremos...

MySQL Básico - O comando CREATE TABLE - Criando tabelas : 29/03/2006
Estamos iniciando uma série de artigos sobre o básico que se deve saber...

>> Inicio <<
© Copyright hospedia.com.br - 2005
Todos os direitos reservados.
Seu Ponto de Partida na Internet
Receitas de Bolos
Lyrics
centro-top