You are on page 1of 9

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

DISCIPLINA DE SISTEMAS GERENCIADORES DE BANCOS DE DADOS


MATERIAL DE APOIO
CLAUDIO LEONES BAZZI

CAPTULO I

RECUPERANDO DADOS COM A INSTRUO SQL SELECT

Objetivos:
Busca-se neste captulo, apresentar o entendimento essencial sobre a instruo
SELECT, da linguagem SQL para que o aluno possa realizar consultas simples em um
banco de dados Oracle.
A instruo SELECT, corresponde a mais conhecida das instrues suportadas
pela linguagem SQL (Structured Query Language), sendo que atravs dela, possvel
realizar a consulta aos dados previamente cadastrados no banco de dados.
A linguagem SQL fornece recurso para recuperao de dados no banco,
fornecendo recursos para:
1. Projeo: onde o usurio escolhe as colunas de uma tabela a serem retornadas,
no possuindo um limite especfico de colunas;
2. Seleo: o usurio escolhe as linhas de uma tabela a serem retornadas por uma
consulta. possvel usar critrios para restringir as linhas recuperadas.
3. Join: possvel unir dados armazenados em diferentes tabelas especificando-
se o vnculo entre elas.

A sintaxe do comando SELECT corresponde a:

SELECT [* | {Colunas | expresses} ]FROM Nome_Tabela;

Como pode ser verificado, existem duas clusulas do comando que so fixas e
que correspondem a especificao de quais colunas sero apresentadas no resultado
(SELECT) e quais tabelas iro ser utilizadas para consulta (FROM), sendo que as colunas
apresentadas na instruo SELECT devem ser referentes as tabelas representadas na
clusula FROM.
UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN
DISCIPLINA DE SISTEMAS GERENCIADORES DE BANCOS DE DADOS
MATERIAL DE APOIO
CLAUDIO LEONES BAZZI

Quando o usurio tem a inteno de selecionar todas as colunas de uma tabela,


o mesmo no necessariamente precisa definir na clusula SELECT todos os campos da
tabela, sendo possvel represent-los atravs da utilizao de um asterisco (*).
A clusula SELECT permite ainda que sejam utilizadas expresses aritmticas,
tais como soma (+), subtrao (-), diviso(/) e multiplicao (*).

Selecionar todas as colunas

Como mencionado, considerando a tabela de categoria (TB_CATEGORIA), pode-


se realizar a consulta visando relacionar todos os campos da tabela como resultado de
duas formas distintas. A primeira opo seria:

SELECT cat_codigo, cat_descricao FROM Tb_categoria

Desta forma, adicionamos a clusula SELECT todos os campos da tabela


(Cat_Codigo, Cat_Descricao), objetivando elas como resultado. Mas agora imagine se a
tabela a ser avaliada tivesse 20 atributos. Isso exigiria muito para descrever todos os
atributos de resultado. Sendo assim, quando isso ocorrer, tem-se a opo de utilizar-se
um asterisco (*), como substituio a todos os campos da tabela, sendo:
UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN
DISCIPLINA DE SISTEMAS GERENCIADORES DE BANCOS DE DADOS
MATERIAL DE APOIO
CLAUDIO LEONES BAZZI

Selecionando colunas especficas

Para exibir colunas especficas de uma tabela utiliza-se a instruo SELECT


acompanhada dos nomes das colunas, separando-as por vrgula. Contudo, apenas se
faz necessrio especificar as colunas desejadas na ordem em que devero ser
apresentadas, conforme o exemplo que se segue:

Pode-se verificar que nesta consulta, foi solicitada somente a apresentao da


coluna CAT_DESCRICAO refere-se coluna descrio da tabela categoria.

Criando Instrues SQL

As instrues SQL no fazem distino entre palavras maisculas e minsculas


(No so case sensitive), como tambm podem ocupar uma ou mais linhas. No
possvel abreviao de palavras-chave ou realizar a separao das mesmas, como o
caso da quebra de linhas. Geralmente as clusulas so colocadas em linhas separadas
para facilitar o entendimento. Cada instruo do SQL dever ser encerrada com ponto-
e-vrgula (;).
Perceba que os resultados como cabealho, tem-se o nome do atributo a que
selecionamos com o comando SELECT (CAT_DESCRICAO no exemplo anterior). Este
nome de atributo pode ser alterado utilizando-se a clusula AS. Desta forma para o
exemplo anterior tem-se:
UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN
DISCIPLINA DE SISTEMAS GERENCIADORES DE BANCOS DE DADOS
MATERIAL DE APOIO
CLAUDIO LEONES BAZZI

SELECT Cat_Descricao AS Categoria FROM Tb_Categoria

Expresses Aritmticas

possvel utilizar operadores aritmticos nas expresses em SQL com dados de


nmeros e data. As operaes suportadas correspondem a soma, subtrao, diviso e
multiplicao. Atributos referentes data (DATE) e data e hora (TIMESTAMP), tambm
possuem suporte a expresses aritmticas, mas so restritas as operaes de soma e
subtrao.
Fazendo uso de operadores aritmticos temos por exemplo:

Neste caso perceba que utilizando-se do operador aritmtico de adio, soma-


se 300,00 ao valor do salrio do funcionrio. Note que a coluna FUN_SALARIO+300
no uma coluna da tabela funcionrios (Tb_funcionario), ela existe apenas para fins
de exibio. Por padro, o nome de coluna de resultado corresponde a expresso
utilizada na instruo SELECT (Fun_Salario + 300).

Procedncia de Operadores

Em uma expresso aritmtica com mais de um operador, a multiplicao e a


diviso sero avaliadas em primeiro. J no caso de uma expresso que s contenha
operadores de mesmo tipo, a avaliao ser realizada da esquerda para a direita.
Para resolver precedncias e evitar erros, indica-se a utilizao de parnteses,
pois sua utilizao torna obrigatria sua avaliao precedente.
UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN
DISCIPLINA DE SISTEMAS GERENCIADORES DE BANCOS DE DADOS
MATERIAL DE APOIO
CLAUDIO LEONES BAZZI

Neste exemplo, pode-se constatar a ordem de precedncia, partindo-se


primeiro para a multiplicao e por ltimo a adio, seguindo da esquerda para a
direita.

Neste caso, verifica-se o uso dos parnteses, o que torna a obrigatoriedade de


primeiro avaliar a adio, logo em seguida a multiplicao.

Deve-se tomar bastante cuidado na utilizao dos operadores aritmticos e em


suas ordens de precedncias para evitar problemas.

Valores Nulos em Expresses Aritmticas

As expresses aritmticas que contm valores nulos so avaliadas como nulas.


Se o valor de uma coluna percebe um valor nulo, o resultado desta operao
ser nulo. A exemplo pode-se verificar uma diviso por zero que ir gerar um erro. No
entanto, se dividirmos um nmero por um valor nulo, o resultado ser nulo ou
desconhecido.
No prximo exemplo, pode-se analisar que o resultado da operao de adio
da coluna FUN_COMISSAO, resulta em valores nulos.
UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN
DISCIPLINA DE SISTEMAS GERENCIADORES DE BANCOS DE DADOS
MATERIAL DE APOIO
CLAUDIO LEONES BAZZI

Observao: Valores nulos no esto disponveis nem designados e no so


conhecidos ou aplicveis. Do mesmo jeito que valores nulos so diferentes de zero ou
de um espao em branco.

Definindo um Apelido de Coluna

Define-se por ser um nome atribudo a uma coluna, apenas dando-lhe um


apelido, cujo seu nome original permanece inalterado. Este tipo de sintaxe muito til
para realizar clculos.
A atribuio de um apelido realizada logo aps o nome da coluna da tabela,
seguida da expresso AS e o nome do apelido da coluna. exigido a utilizao de aspas
duplas quando contm espaos ou caracteres especiais, ou quando faz distino entre
maisculas e minsculas.

Operador de Concatenao

O operador de concatenao vincula colunas ou strings de caracteres a outras


colunas. Representa-se pelo uso de duas barras verticais (||). Aps a sua utilizao
criada apenas uma coluna resultante que uma expresso de caracteres.
UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN
DISCIPLINA DE SISTEMAS GERENCIADORES DE BANCOS DE DADOS
MATERIAL DE APOIO
CLAUDIO LEONES BAZZI

Strings de Caracteres Literais

Os literais so caracteres, data ou um nmero includo na sada de uma


instruo SELECT que no constitui um nome ou apelido de coluna. Ele apenas
impresso para cada linha retornada. Sua aplicao consiste na utilizao de aspas
simples ( ) para formatos de data e caracteres. Em literais de nmero no se faz
necessrio o uso das aspas.

Operador de Aspas (q) Alternativo

O uso deste operador melhora a legibilidade dos resultados listados pelo SQL.
Sua utilizao necessria em certos casos e se faz da seguinte forma:

No exemplo, a string contm aspas simples, que normalmente interpretada


como um delimitador de uma string de caracteres. Entretanto, o uso do operador q
UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN
DISCIPLINA DE SISTEMAS GERENCIADORES DE BANCOS DE DADOS
MATERIAL DE APOIO
CLAUDIO LEONES BAZZI

requer a utilizao dos colchetes como delimitador s aspas. A string entre os


delimitadores interpretada como uma string de caracteres.

Linhas Duplicadas

Por padro, nas consultas, o SQL retorna todas as linhas existentes numa
tabela, inclusive as linhas que contm valores duplicados. Para eliminar linhas que
contenham valores duplicados, utilize a palavra-chave DISTINCT logo aps a clusula
SELECT.

Pode-se especificar vrias colunas aps o qualificador DISTINCT. Essa operao


afetar todas as colunas selecionadas, cujos resultados sero de todas as combinaes
distintas das colunas.

Exibindo a Estrutura de Tabelas

A utilizao do comando DESCRIBE associado a uma tabela do banco de dados


exibir as informaes de toda a sua estrutura. O comentrio NULO?, indica se os
valores dessa coluna podem ser nulos ou se devem conter dados obrigatoriamente. O
comentrio TIPO exibir as informaes do tipo de dados de cada coluna.
UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN
DISCIPLINA DE SISTEMAS GERENCIADORES DE BANCOS DE DADOS
MATERIAL DE APOIO
CLAUDIO LEONES BAZZI

LISTA DE EXERCCIOS

Utilizando o modelo de dados da biblioteca, realize as seguintes consultas:

1) Supondo que voc deseja obter a data de devoluo de um livro que dever ser
dada em 15 dias, crie uma instruo SQL que retorne a data de vencimento de
devoluo considerando a data atual;
2) Supondo a necessidade de verificao de todos os livros emprestados,
considerando que h necessidade de verificao de quantos dias de atraso h
considerando a data atual, construa uma instruo que retorne este resultado.
3) Na tabela Tb_ExemplarEmprestimo, realize uma consulta que retorne todos os
valores das multas pagas;
4) Na tabela Tb_ExemplarEmprestimo, realize uma consulta que retorne todos os
valores das multas pagas com um adicional de 20%;
5) Na tabela Tb_ExemplarEmprestimo, realize uma consulta que retorne todos os
valores das multas pagas. Na mesma consulta apresente o valor da multa com
um adicional de 10%. Em outra coluna com um desconto de 20%.
6) Na tabela Tb_cargo, realize uma consulta que retorne a descrio do cargo, e
um texto concatenado considerando: Para o cargo de BIBLIOTECRIO o salrio
base R$ 1000,00;
7) Realize uma consulta que retorne o cdigo de todos os livros j emprestados.
Quando o livro tiver sido emprestado mais do que uma vez, o mesmo deve ser
apresentado uma nica vez.

You might also like