Comando SELECT - Principais cláusulas

Desenvolvida nos anos 70, SQL é uma linguagem de pesquisa declarativa para banco de dados relacional. Muitas das características originais do SQL foram inspiradas na álgebra relacional. Essa caracteristica permite a seleção de dados previamente cadastrados dentro da base atraves da instruções SELECT. A sintaxe abaixo apresenta a sintaxe mais basica da instrução.

SELECT <lista_de_campos ou *
FROM <nome_da_tabela>

Exemplos:

SELECT CODIGO, NOME FROM CLIENTE
/*Seleção dos campos CODIGO e NOME da tabela cliente*/

SELECT * FROM CLIENTE
/*Seleção de todos os campos da tabela cliente, onde o "*" indica que todos campos e registros devem ser selecionados*/

Nos exemplos acima, todos os registros da tabela CLIENTE serão selecionados, agora imagine se a tabela CLIENTE tiver 150 mil registros!!!!!
Achar um cliente ou um grupo de clientes especificos dentre dessa seleção não será uma tarefa facil. Para refinar as buscas, diversas cláusulas podem ser adicionadas à instrução permitindo a extração de dados especificos da base. Na sintaxe abaixo temos algumas clasulas que podem ser adicionadas a instrução.

SELECT [DISTINCT | ALL]   * |nomes_das_colunas
FROM nome_da_tabela
[WHERE campo <operador> termo]
[ORDER BY  nome_da_coluna];

Com base na sintaxe acima, vamos definir alguma possibilidades que irão refinar nossas seleções:

Selecionando registros específicos:

Para selecionar registros específicos devemos utilizar a cláusula Where, onde através dessa cláusula poderemos atribuir condições de filtragem para selecionar um ou mais campos da tabela. A partir do exemplo apresentado na figura 1 iremos refinar nossa seleção com a cláusula where.
Figura 1. Clientes cadastrados na tabela CLIENTE da base de dados.
Com base na tabela apresentada na figura 1, vamos selecionar todas as clientes da base de dados, ou seja, vamos selecionar todos registros cujo sexo seja feminino. Para executar a demanda proposta vamos utilizar o comando abaixo cuja execução do comando pode ser visualizadas na figura 2.

SELECT  * FROM Cliente
WHERE sexo=‘F’;

Figura 2. Seleção de todas as clientes da base de dados.
Em outro exemplo, na figura 3 temos um exemplo onde serão selecionados todos clientes de São Paulo.
Figura 3. Seleção de todos clientes que moram em São Paulo.
Dependendo da campo utilizado na consulta, outros operadores relacionais podem ser utilizandos. Na Tabela 1 temos uma relação de operadores relacionais que podem ser utilizados na clausula Where. Na coluna exemplo, o campo preço é utilizado como referencia.
Tabela 1. Operadores relacionais que podem ser utilizando na clausula WHERE.
Em geral, os operadores acima são bem intuitivos(caso voce tenha alguma duvida, pode postar aqui no blog que responderei o mais rapido possivel), devido a essa facilidade, irei comentar somente os operadores LIKE, BETWEEN e IN.

Operador LIKE:

O operador LIKE é utilizando em colunas definidas como dados tipo caractere onde a consulta pode ser realizada utilizando somente parte da string armazenada na base de dados. Imagine que você não lembra o sobrenome do seu cliente (Figura 1), para realizar uma consulta usando somente uma parte da string (neste caso só o primeiro nome do cliente) devemos associar o operador Like e o "%" que servirá como curinga. Na figura 4 temos um exemplo de como selecionar todos os clientes cujo nome começa com "Zé".
Figura 4. Seleção usando operador LIKE e curinga "%"
Para selecionar todos cliente "Zé" não importando o sobrenome, o curinga foi utilizando logo após a palavra "Zé%". O curinga pode seu utilizado em qualquer ponto da string e se necessario, pode ser utilizando mais de um curinda conforme os exemplos das figura 5 e 6.
Figura 5. Exemplo usando operador like e curinga no inicio da string

Figura 6. Exemplo usando operador like e dois curingas.
Alem do curinga "%" que irá substituir uma sequencia de caracteres, podemos utilizar o sublinhado "_" como curinga, substituindo um caractere especifico.

Operador Between:

O operador Between é usado quando precisamos selecionar linhas de uma tabela cujo valor de um campo encontra-se dentro de um intervalo específico. Com diversas aplicações, esse tipo de consulta pode ser usado para filtrar os dados num determinado intervalos de tempo (datas), ou estabelecer intervalos de classe muito utilizandos em estatística. Sua sintaxe é a seguinte: 

SELECT campos FROM tabela 
WHERE campo BETWEEN inicio_intervalo AND fim_intervalo;

Na figura 7 temos um exemplo onde é exibido todos personagens da tabela Ducktales criados entre 1940 e 1950.
Figura 7. Uso do operador Between para filtrar periodo

Usando o mesmo principio apresentado na figura 7, podemos utilizar o operador NOT BETWEEN (sintaxe abaixo) e exibir todos personagens da tabela Ducktales criados fora do intervalo de 1940 a 1950. O resultado da seleção utilizando o NOT BETWEEN pode ser visto na figura 8.

SELECT campos FROM tabela 
WHERE campo NOT BETWEEN inicio_intervalo AND fim_intervalo;

Figura 8. Uso do operador NOT Between selecionando todos personagens fora do intervalo.

Operador IN:

O operador IN trabalha com a ideia de conjuntos selecionando informações que estão ou não contidas nesse conjunto. Diferente do operador relacional de igualdade (=) que seleciona dados a paritr de um valor especifico, o IN permite selecionar diversos valores com base numa lista de valores. Sua sintaxe é a seguinte:

SELECT campos FROM tabela WHERE campo IN (valor1, valor2, valor3);

.....



Ordenando os registros para exibição (order by):

A cláusula ORDER BY é utilizada para mostrar as linhas da consulta seguindo o critério de ordenação (crescente ou decrescente) definido pelo utilizador usando uma coluna como referencia. Nas figura 9 e 10 podemos ver exemplo de ordenação crescente e decrescente.
Figura 9. Seleção ordenada pelo campo NOME em ordem crescente.

Figura 10. Seleção ordenada pelo campo NOME em ordem decrescente.



Pesquisa case sensitive:

O oracle é case sensitive, ou seja, quando vamos realizar uma seleção é preciso diferenciar letras maisculas de letras minusculas. Como nem sempre temos certeza sobre como a string foi inserida na base de dados, em geral são utlizados as funções LOWER() e UPPER() que tornam a seleção case insensitive. Esse assunto será tratado em outra postagem.....





Ainda ta com duvida, curta nossa pagina no facebook no link abaixo e poste sua duvida lá.


Nenhum comentário:

Postar um comentário