TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Banco De Dados

Monografias: Banco De Dados. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  1/10/2013  •  2.550 Palavras (11 Páginas)  •  273 Visualizações

Página 1 de 11

Consultas SQL

A SQL foi desenvolvido originalmente no início dos anos (70) nos laboratórios da IBM em San José, dentro do projeto System R, que tinha por objetivo demonstrar a viabilidade da implementação do modelo relacional. O nome original da Linguagem era SEQUE, acrônimo para “Structured English Query Language”. Vindo daí o fato de até hoje, a sigla em inglês.

A Linguagem SQL é um grande padrão de Banco de Dados. Isto decorre da sua simplicidade e facilidade de uso. Diferencia-se das outras linguagens de consultas no sentido em que uma consulta SQL especifica a forma do resultado e não o caminho para chegar até ele. É uma linguagem declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem.

Embora a SQL tenha sido originalmente criado pela IBM (International Business Machines), rapidamente surgiram vários “dialectos” desenvolvidos por outros produtores. Essa expansão levou a necessidade de ser criado e adaptado um padrão para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986e ISO1987.

A SQL foi revisto em 1992 e a esta versão foi dado o nome de SQL-92. Foi revisto novamente em 1999 e em 2003 para se tornar SQL: 1999(SQL3) e SQL:2003, respectivamente.

Tal como dito anteriormente, embora padronizado pela ANSI e ISSO, possui muitas variações e extensões produzidos pelos diferentes fabricantes de sistemas gerenciadores de bases de dados. Tipicamente a linguagem pode ser migrada de plataforma para plataforma sem mudanças estruturais principais. Outra aproximação é permitir para código de idioma procedural ser embutido e interagir com o banco de dados. Por exemplo, o Oracle e outros incluem Java na base de dados, enquanto o PostgreSQL permite que funções sejam escritas em PERL, TCL ou C, entre outras linguagens.

Um banco de dados relacional consiste em uma coleção de relações, cada um recebendo um único nome. Cada relação possui uma estrutura semelhante, a SQL permite o uso de valores nulos para indicar o valor é desconhecido ou inexistente. Ela permite que um usuário especifique os atributos aos quais não podem ser atribuídos valores nulos, como observamos na seção “Definição de dados”.

A estrutura básica de uma expressão SQL consiste em três cláusulas: select, from e where.

● A cláusula select corresponde à operação projeção da álgebra relacional. Ela é usada para listar os atributos desejados no resultado de uma consulta.

● A cláusula from corresponde a operação produto cartesiano da álgebra relacional. Ela lista as relações a serem lidas na avaliação da expressão.

● A cláusula where corresponde ao predicado de seleção da álgebra relacional. Ela consiste em um predicado envolvendo atributos das relações que aparecem na cláusula from.

A SQL forma o produto cartesiano das relações nomeadas na cláusula from, realiza uma seleção de álgebra relacional usando o predicado da cláusula where e, depois, projeta o resultado nos atributos da cláusula select. Na prática, a SQL pode ser processada de maneira mais eficiente.

A clásula select

O resultado de uma consulta SQL é, evidendemente, uma relação. Usando uma consulta simples de banco. ”Encontre os nomes de todas as agências na relação empréstimo”.

select nome_agência

from empréstimo

O resultado é uma relação consistindo em um único atributo com o cabeçalho nome_agência.

As linguagens de consulta formais são baseadas na noção matemática de uma relação sendo um conjunto. Portanto, tuplas duplicadas nunca aparecem em relações. Na prática, eliminação duplicada gasta tempo. Portanto, a SQL permite duplicatas em relações, bem como nos resultados de expressões SQL. Assim, a consulta anterior listará cada nome_agência para cada dupla em que ele aparece na relação empréstimo.

Nos casos em que queremos forçar a eliminação de duplicatas, inserimos a palavra-chave distinct após select. Podemos reescrever a consulta anterior como:

select distinct nome_agência

from empréstimo

Como a retenção de duplicata é o padrão, não usaremos all em nossos exemplos. Para garantir a eliminação das dupliocatas nos resultados de nossas consultas de exemplo, usaremos distinct sempre que necessário. Na maioria das consultas em que distinct não é usado, o númro exato de cópias duplicadas da cada tupla presente na consulta não é importante. Entretanto, o número é importante em certas aplicações.

O símbolo de asterisco “*” pode ser usado para indicar “todos os atributos”. Portanto, o uso de empréstimo*. Na cláusula select anterior indicaria que todos os atributos de empréstimo devem ser selecionados. Uma cláusula select da forma select* indica que todos os atributos de todas as relações aparecendo na cláusula from são selecionados.

A cláusula where

Vamos ilustrar o uso da cláusula where na SQL. Considere a consulta “Encontre todos os números de empréstimo para empréstimo feitos na agência Perryridge com quantias superiores a $1600”. Essa consulta pode ser escrita em SQL como:

select número_empr

from empréstimo

where nome_agência = ‘Perryridge’ and quantia > 1600

A SQL usa os conectivos and, Or e not – em vez dos símbolos matemáticos na cláusula where. A SQL permite usar os operadores de comparação para comparar strigs e expressões aritméticas além de tipos especiais, com tipos de data.

A cláusula from

A cláusula from isolada define um produto cartesiano das relações nas cláusulas. Já que a junção natural é definida em termos de um produto cartesiano, uma seleção e uma projeção, é relativamente simples escrever expressão para a junção natural.

Observe que a SQL usa a notação nome-relação, nome-atributo, com a álgebra relacional, para evitar ambigüidade nos casos em que um atributo

...

Baixar como (para membros premium)  txt (15.4 Kb)  
Continuar por mais 10 páginas »
Disponível apenas no TrabalhosGratuitos.com