SQL (SELECT)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 08:12

0

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

SQL (WHERE)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 08:09

0

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 Persons
WHERE 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:

SQL (AND/OR)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 08:07

0

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 Pessoas
WHERE 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 Pessoas
WHERE 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

SQL (IS)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 08:02

0

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.

SQL (NOT NULL)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 07:59

0

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 Pessoas
WHERE 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

SQL (LIKE)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 07:54

0

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 Pesoas
WHERE 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 Pessoas
WHERE 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

SQL (ORDER BY)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 07:51

0

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];

SQL (ORDER BY)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 07:49

0



Select nome
From Pessoa
Order by idade;
Seleccionar todas as pessoas ordenando pelo resultado idade.


                                                         



Select nome , salário
From Pessoas
Order by salário DESC;
Seleccionar o nome e salário de todas as pessoas, ordenando o resultado pelo salário de tal forma que os maiores ordenados fiquem no topo da lista.





 
Select nome , salário
From Pessoas
Where telefone is not NULL
Order by salário DESC;

O mesmo problema, mas só para as pessoas que têm telefone.

 






Select *
From comissão
Order by id, id msg;
Seleccionar todo o conteúdo da tabela comissão e ordenar pelo id.







Select *
From comissão
Where id < 40
Order by id, Valor DESC;
Ordenar os valores em que o id for menor que 40







Select id,valor AS Liquido, valor *0,17 AS imposto, valor + valor*0,17 AS Bruto
From comissão
Where id in (14,25)
Order by id;
Seleccionar na tabela comissão, o valor a receber o montante do imposto (17%) e o valor liquido para o indivíduos cujo id é igual a 14 e 25, ordenar pelo id.