| <<< Voltar | Avançar >>> |
11. Pesquisando no banco de dados
Sintaxe básica da pesquisa
A pesquisa no banco de dados é feita com a instrução select. Sua sintaxe básica é:
select CAMPOS from TABELA where CONDIÇÃO order by CAMPO;
Exemplo:
mysql> select nr,dataentrada,tipodoc,doc from docs order by tipodoc;
+----+-------------+---------+-----------------------------------------------+
| nr | dataentrada | tipodoc | doc |
+----+-------------+---------+-----------------------------------------------+
| 3 | 2005-10-21 | Msg FAX | TESTE - 71/E3 de 21 Out 05 da 14 Bda Inf Mtz |
| 1 | 2005-10-20 | Of | TESTE - 170/E1 de 15 Out 05 da 14 Bda Inf Mtz |
| 10 | 2005-10-31 | Of | TESTE testando inserção de dados |
| 11 | 2005-10-31 | Rádio | TESTE testando inserção de dados 2 |
| 2 | 2005-10-21 | Rd | TESTE - 35/Esc Log de 20 Out 05 da 5RM/5DE |
+----+-------------+---------+-----------------------------------------------+
5 rows in set (0.06 sec)
mysql> select nr,dataentrada,tipodoc,doc from docs where tipodoc like
("Of") order by tipodoc;
+----+-------------+---------+-----------------------------------------------+
| nr | dataentrada | tipodoc | doc |
+----+-------------+---------+-----------------------------------------------+
| 1 | 2005-10-20 | Of | TESTE - 170/E1 de 15 Out 05 da 14 Bda Inf Mtz |
| 10 | 2005-10-31 | Of | TESTE testando inserção de dados |
+----+-------------+---------+-----------------------------------------------+
2 rows in set (0.00 sec)
mysql>
O comando acima significa: selecione os campos nr,dataentrada,tipodoc,doc da tabela docs onde o campo tipodoc é igual a Of e ordene o resultado pelo campo tipodoc.
select CAMPOS from TABELA é de fácil entendimento e significa "selecione os CAMPOS da TABELA".
Especificando condições para a pesquisa: where
A cláusula where especifica a condição da pesquisa. Abaixo segue uma tabela com os operadores mais usados com where.
| OPERADOR | EXEMPLO | DESCRIÇÃO |
| = | nrcliente = 154 | Testa se dois valores são iguais |
| > | quantidade > 100 | Testa se um valor é maior que outro |
| < | quantidade < 100 | Testa se um valor é menor que outro |
| <= | quantidade <= 100 | Testa se um valor é menor ou igual a outro |
| != ou < > | quantidade != 0 | Testa se dois valores são diferentes |
| is not null | endereco is not null | Testa se um campo não está vazio |
| is null | endereco is null | Testa se um campo está vazio(nulo, ou seja, nada foi inserido nele, nem um espaço em branco) |
| between | quantidade between 0 and 100 | Testa se um valor está entre um valor mínimo(inclusive) e um valor máximo (inclusive) |
| in | cidade in ("Recife","Olinda","Caruaru") | Testa se um valor pertence a um conjunto |
| not in | cidade not in ("Recife","Olinda","Caruaru") | Testa se um valor não pertence a um conjunto |
| like | nome like ("Samuel%") | Testa se um valor corresponde a um padrão (% equivale ao conhecido *, é o curinga) |
| not like | nome not like ("Samuel_") | Testa se um valor não corresponde a um padrão ( _ equivale ao curinga que corresponde a um caracter) |
| regexp | nome regexp | Testa se um valor corresponde a uma expressão regular |
Especificando mais de uma condição para a pesquisa
Para especificar mais de uma condição para a pesquisa use as palavras and e or:
Se quiser selecionar registros que atendam a CONDIÇÃO1 e a CONDIÇÃO2, faça assim:
select CAMPOS from TABELA where CONDIÇÃO1 and CONDIÇÃO2;
Se quiser selecionar registros que atendam a CONDIÇÃO1 ou a CONDIÇÃO2, faça assim:
select CAMPOS from TABELA where CONDIÇÃO1 or CONDIÇÃO2;
Exibindo todos os registros de uma tabela
Caso queira exibir todos os registros, você pode usar o "*" (asterisco) assim:
mysql> select * from cliente; +--------+---------+ | codigo | nome | +--------+---------+ | 1 | João | | 2 | Maria | | 3 | José | | 4 | Manuel | | 5 | Adão | | 6 | Rodrigo | | 7 | Davi | | 8 | Karla | | 9 | Samuel | | 10 | Ana | +--------+---------+ 10 rows in set (0.00 sec) mysql>
| <<< Voltar | Avançar >>> |