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