CryptoMoedas

Desenvolvido por Investing.com

RL Info News - Tecnologia e Informação Feeds

terça-feira, 14 de agosto de 2012

Curso Linguagem SQL, Lição 02


Lição 02 - Comandos básicos

Estruturas Básicas - select, from e where
Vamos agora discutir os comandos básicos da SQL. É importante saber nesse momento que as entidades envolvidas no banco de dados não podem ter nomes repetidos, o que é uma exigência do modelo relacional. Outra característica importante é a possibilidade de valores nulos para os atributos de uma entidade, se não houver restrição para isso, pois na linguagem SQL é possível restringir que um atributo receba valor nulo, ou seja, para esse atributo sempre terá que ser definido um valor qualquer, isso se aplica por exemplo as chaves primárias.

Select
O select é utilizado para realizar consultas. Vamos supor que queremos encontrar o nome de todos os associados da locadora, definida no nosso exemplo. A estrutura básica dessa consulta seria:

select nome from associado
where cidade = "Brasília"

Após o select colocamos o campo que queremos pesquisar, e após o from especificamos para qual tabela a pesquisa será feita. A cláusula where pode ser omitida e nela coloca-se alguma restrição para a pesquisa, nesse caso a nossa restrição é "Brasília" será mostrados apenas os associados de Brasília.

Na linguagem SQL é permitida a existência de tuplas duplicadas, ou seja no nosso exemplo anterior apareceria associados com mesmo nome caso existisse. Quando se quer no resultado de uma pesquisa apenas valores diferentes usa-se a palavra distinct da seguinte forma:

select distinct nome
from associado

Se você quiser deixar explícito de que a duplicação será aceita, pode-se usar all no lugar de distinct. Quando se deseja mostrar todos os atributos de uma tabela usa-se a seguinte configuração:

select *
from cliente

Esse exemplo mostra todos os atributos da tabela cliente. Outra característica importante da cláusula select é que pode-se realizar operações nela, como mostrado logo abaixo:

select idade*10
from filme

Essa operação não alterará o atributo na tabela mas apenas mostrará como resultado da pesquisa a idade do filme vezes 10.

From
Na cláusula from, como foi dito anteriormente, coloca-se os nomes das tabelas que foram usadas para a busca. É importante ressaltar que mais de uma tabela pode ser utilizada. No exemplo a seguir queremos saber quais são os clientes que estão com filmes:

select cliente.nome
from cliente, aluguel
where cliente.codigo = aluguel.codigo_cliente

Observe que informamos a qual tabela cada atributo pertence usando a estrutura cliente.nome, por exemplo. Essa construção só é necessária se os atributos de diferentes tabelas tiverem nomes iguais, caso contrário essa construção se torna opcional. Mesmo sendo opcional é aconselhável utilizá-la para deixar claro de qual tabela é o atributo.

Where
A cláusula where é utilizada para que se possa impor restrições para a pesquisa. No exemplo anterior fizemos uma pesquisa onde o código do cliente pesquisado fosse igual ao código do cliente que alugou um determinado filme. Isso foi necessário porque na tabela de aluguel não existe o nome do cliente, apenas o código e com essa estrutura podemos saber o nome de quem alugou determinado filme.

Algumas palavras-chave podem ser usadas junto com a cláusula where, elas são: between, and, not e or. Bem como os operadores de comparação: <, >, = e <>.
Veja os exemplos abaixo:

select nome
from cliente
where codigo between 1000 and1005
select aluguel.nome
from cliente, aluguel
where cliente.nome = "Maria Aparecida" or cliente.nome = "João da Silva"
and cliente.codigo = aluguel.codigo_cliente

No primeiro exemplo seleciona-se o nome dos cliente que tem código entre 1000 e 1005. No segundo, o nome do filme que foi alugado pelo cliente com nome de Maria Aparecida ou João da Silva.
Para verificar se um valor é nulo, usa-se por exemplo:

where preco is null

Estruturas Básicas - rename, strings e ordenação

Rename
As vezes é interessante renomear um atributo na hora de apresentá-lo. Isso pode ser necessário quando, por exemplo, dois atributos de tabelas diferentes serão apresentados. Para realizar essa mudança usa-se a palavra as. Essa palavra pode ser utilizada tanto para renomear atributos como para renomear tabelas. Algumas vezes é necessário renomear tabelas para facilitar a escrita.

Select aluguel.nome as nome_filme
from aluguel
where nome_filme = "Titanic"
select cliente1.nome, cliente2.nome
from cliente as cliente1, cliente as cliente2
where cliente1.data_nascimento = "05/05/1955" and cliente2. data_nascimento = "03/12/1980"

Utilizando Strings
Para comparar strings utiliza-se a palavra like na cláusula where. Para comparar uma substring, utiliza-se o caractere "%" e para comparar qualquer caractere utiliza-se o caractere "_".

select nome
from cliente
where nome like "Maria%"
select nome
from cliente
where nome like "%ata%"
select nome
from cliente
where nome like "Juli_"
select nome
from cliente
where nome like "_ _ _ _ _"

No primeiro exemplo, são selecionados todos os cliente que têm o nome começando por Maria. No segundo exemplo, todos os cliente que possuem a seqüência de caracteres "ata" no início, meio ou fim do nome. O caractere "%" indica zero ou mais caracteres na posição.
No terceiro exemplo, seleciona-se todos os nomes que começam com Juli e têm apenas um caractere depois. E no quarto exemplo, seleciona-se todos os nomes que possuem 5 caracteres.
É possível também o uso de not like para procurar por diferenças ao invés de igualdades.

Ordenando o resultado
Para ordenar o resultado da pesquisa, utiliza-se o comando order by, que ordena de modo ascendente. Caso deseje ordenar de modo descendente acrescenta-se o desc.

Select *
from cliente
order by nome
select *
from cliente
order by nome desc, codigo asc

No primeiro exemplo, ordena-se pelo nome de modo ascendente e no segundo descendente e ascendente. É possível ordenar duas colunas como mostrado no segundo exemplo, ordenando na ordem em que forem apresentadas.

Funções
A linguagem SQL permite o uso de funções pré-definidas para realizar operações de soma(sum), mínimo(min), máximo(max), média(avg) e contagem(count).
As funções avg e sum impõem que a entrada da função seja um numeral, já as outras funções aceitam strings como entrada.
As funções podem ser usadas de diferentes formas. Vamos citar um exemplo onde soma-se o preço de todos os aluguéis realizados por um cliente.

Select nome,sum(preco)
from cliente, aluguel
where codigo = codigo_cliente
group by nome

Quando deseja-se aplicar condições a grupos usa-se a cláusula having. Por exemplo, vamos reunir todos os clientes que possuem uma conta maior que 50 reais.

Select nome,sum(preco)
from cliente, aluguel
where codigo = codigo_cliente
group by nome
having sum(preco) > 50


Exercício
Quais são os comandos que fazem parte das estruturas básicas da Linguagem SQL?


Deixe suas respostas nos comentários. Obrigado!

Fonte: Comunidade CDTC

Nenhum comentário:

Postar um comentário