Posted by
        Paulo Ramos & João Martins
 |
	    Posted in
	     | 
		Posted on
		
08:12
 
 
A instrução SQL SELECT
A instrução SELECT é usada para seleccionar dados da Base de Dados.
O resultado é armazenado em uma tabela resultado, chamado o conjunto de resultados.
 
Sintax:
SELECT nome_coluna
FROM nome_tabela
 
ou
 
SELECT * FROM nome_tabela
 
 
        Posted by
        Paulo Ramos & João Martins
 |
	    Posted in
	     | 
		Posted on
		
08:09
 
 
WHERE 
 
A cláusula WHERE é usada para extrair apenas os registos que satisfazem o critério especificado.
 
Sintaxe
 
   | SELECT column_name(s)FROM table_name
 WHERE column_name operator value
 | 
 
Exemplo cláusula WHERE
As "pessoas" da tabela:
   | P_Id | Apelido | Nome | Endereço | Cidade | 
   | 1 | Hansen | Ola | Timoteivn   10 | Sandnes | 
   | 2 | Svendson | Tove | Borgvn   23 | Sandnes | 
   | 3 | Pettersen | Kari | Storgt   20 | Stavanger | 
 
Agora queremos seleccionar apenas as pessoas que vivem na cidade "Sandnes" da tabela acima.
 
Nós usamos a seguinte instrução SELECT:
 
  
   | SELECT * FROM PersonsWHERE City='Sandnes'
 | 
 
 
 
O conjunto de resultados será parecido com este:
   | P_Id | Apelido | Nome | Endereço | Cidade | 
   | 1 | Hansen | Ola | Timoteivn   10 | Sandnes | 
   | 2 | Svendson | Tove | Borgvn   23 | Sandnes | 
 
 
Aspas em torno de campos de texto
 
SQL usa aspas simples em torno de valores de texto (a maioria dos sistemas de banco de dados também aceita aspas).
Embora, os valores numéricos não devem ser colocadas entre aspas.
Para valores de texto:
 
 
        Posted by
        Paulo Ramos & João Martins
 |
	    Posted in
	     | 
		Posted on
		
08:07
 
 
Os operadores AND e OR são usados para filtrar registos com base em mais de uma condição.
 
AND
 
   | P_Id | Apelido | Nome | Endereço | Cidade | 
   | 1 | Hansen | Ola | Timoteivn   10 | Sandnes | 
   | 2 | Svendson | Tove | Borgvn   23 | Sandnes | 
   | 3 | Pettersen | Kari | Storgt   20 | Stavanger | 
 
Agora queremos seleccionar apenas as pessoas com o primeiro nome igual a "Tove" E o último nome igual a "Svendson":
Nós usamos a seguinte instrução SELECT:
   |    
     | 
 |       | 
 | 
       | SELECT *  FROM PessoasWHERE Nome='Tove'
 AND Apelido='Svendson'
 |  |  
 
 
 | 
 
O conjunto de resultados será parecido com este:
   | P_Id | Apelido | Nome | Endereço | Cidade | 
   | 2 | Svendson | Tove | Borgvn   23 | Sandnes | 
 
 
 
 
OR
Agora queremos seleccionar apenas as pessoas com o primeiro nome igual a "Tove" ou o primeiro nome igual a "ola":
 
  
   | 
     | SELECT *  FROM PessoasWHERE Nome='Tove' OR Nome='Ola';
 |  | 
Nós usamos a seguinte instrução SELECT:  
 
 
 
O conjunto de resultados será parecido com este:
   | P_Id | Apelido | Nome | Endereço | Cidade | 
   | 1 | Hansen | Ola | Timoteivn   10 | Sandnes | 
   | 2 | Svendson | Tove | Borgvn   23 | Sandnes | 
 
 
 
AND e OR
Pode-se combinar AND e OR (usar parênteses para formar expressões complexas).
Agora queremos seleccionar apenas as pessoas com o sobrenome igual a "Svendson" E o primeiro nome igual a "Tove" ou a "ola":
 
  
   | 
     | SELECT *  FROM Pessoas  WHERE Apelido='Svendson' AND     (Nome='Tove' OR Nome='Ola'); |  | 
Nós usamos a seguinte instrução SELECT: 
 
 
 
O conjunto de resultados será parecido com este: 
 
 
   | P_Id | Apelido | Nome | Endereço | Cidade | 
   | 2 | Svendson | Tove | Borgvn   23 | Sandnes | 
 
 
        Posted by
        Paulo Ramos & João Martins
 |
	    Posted in
	     | 
		Posted on
		
08:02
 
 
IS
 
As Base de dados contêm um valor especial NULL que pode ser atribuído a qualquer tipo de valores.
 
Observe a tabela seguinte:
 
   | P_Id | ProductName | UnitPrice | UnidadesEmEstoque | UnidadesPedidas | 
   | 1 | Jarlsberg | 10.45 | 16 | 15 | 
   | 2 | Mascarpone | 32.56 | 23 | 
 | 
   | 3 | Gorgonzola | 15.67 | 9 | 20 | 
 
Suponha que o "UnidadesPedidas" coluna é opcional, e pode conter valores NULL.
Temos a seguinte instrução SELECT:
 
No exemplo acima, se algum dos "UnidadesPedidas" os valores são NULL, o resultado é NULL.
IS NULL é usado para especificar a forma como queremos tratar valores NULL.
Neste caso, queremos que os valores NULL para serem zero.
A seguir, se "UnidadesPedidas" é nulo não vai prejudicar o cálculo, porque ISNULL () retorna zero se o valor for NULL.
 
 
        Posted by
        Paulo Ramos & João Martins
 |
	    Posted in
	     | 
		Posted on
		
07:59
 
 
IS NOT NULL 
   A restrição NOT NULL impõe uma coluna para não aceitar valores nulos.
A restrição NOT NULL aplica um campo para conter sempre um valor.  
Isso significa que não pode inserir um novo Registo, ou actualizar um Registo, sem a adição de um valor para esse campo.
 
Observe a tabela seguinte
   | P_Id | Apelido | Nome | Endereço | Cidade | 
   | 1 | Hansen | Ola | 
 | Sandnes | 
   | 2 | Svendson | Tove | Borgvn   23 | Sandnes | 
   | 3 | Pettersen | Kari | 
 | Stavanger | 
Como é que vamos seleccionar somente os registos com valores nulos no campo "Endereço" coluna?
  
   | 
     | SELECT     Apelido , Nome ,Endereço FROM PessoasWHERE Endereço IS NOT NULL;
 |  | 
Vamos ter de usar o operador IS NOT NULL:  
O Resultado seria este:
 
   | Apelido | Nome | Endereço | 
   | Svendson | Tove | Borgvn   23 | 
 
 
        Posted by
        Paulo Ramos & João Martins
 |
	    Posted in
	     | 
		Posted on
		
07:54
 
 
O operador LIKE é usado numa cláusula WHERE para pesquisar um padrão especificado na coluna em questão.
O operador LIKE é utilizado para comparar strings.
 
Sintaxe LIKE
    
SELECT (*)
FROM mensagem
WHERE mesnagem Like "+%";
Observe a tabela seguinte:
   | P_Id | Apelido | Nome | Endereço | Cidade | 
   | 1 | Hansen | Ola | Timoteivn 10 | Sandnes | 
   | 2 | Svendson | Tove | Borgvn 23 | Sandnes | 
   | 3 | Pettersen | Kari | Storgt 20 | Stavanger | 
 Agora queremos seleccionar as pessoas que vivem numa cidade que começa com "s" da tabela acima.
 
 Usamos a seguinte instrução SELECT:
 
 
   | SELECT * FROM PesoasWHERE Cidade LIKE 's%'
 | 
 | 
 | 
 O sinal "%" pode ser usada para definir wildcards (letras que faltam no padrão) antes e depois do padrão.
 
 O Resultado seria este: 
 
 
   | P_Id | Apelido | Nome | Endereço | Cidade | 
   | 1 | Hansen | Ola | Timoteivn 10 | Sandnes | 
   | 2 | Svendson | Tove | Borgvn 23 | Sandnes | 
   | 3 | Pettersen | Kari | Storgt 20 | Stavanger | 
 De seguida, queremos seleccionar as pessoas que vivem numa cidade que termina com um "s" de "pessoas" da tabela.
 
 Nós usamos a seguinte instrução SELECT:
 
 
   | SELECT * FROM PessoasWHERE Cidade LIKE '%s'
 | 
 | 
 O resultado será este:
 
 
   | P_Id | Apelido | Nome | Endereço | Cidade | 
   | 1 | Hansen | Ola | Timoteivn 10 | Sandnes | 
   | 2 | Svendson | Tove | Borgvn 23 | Sandnes | 
 
   | Wildcards | Descrição | 
   | % | Qualquer string de zero ou + caracteres | 
   | _ | Um character qualquer | 
 
 
 
        Posted by
        Paulo Ramos & João Martins
 |
	    Posted in
	     | 
		Posted on
		
07:51
 
 
Ordenação pode ser realizada através da cláusula:
 
ORDER BY
 Sintax:
 SELECT campo
 From tabela
 Where condição
 ORDER BY campo [ASC,DESC];