Pim 3
A principal estrutura da SQL DML consiste em três cláusulas: select, from e where.
A cláusula select corresponde à operação projeção da álgebra relacional. É usada para listar os atributos desejados no resultado de uma consulta.
A cláusula from corresponde á operação produto cartesiano da álgebra relacional. Ela lista as relações a ser examinadas na avaliação da expressão.
A cláusula where corresponde ao predicado de da álgebra relacional. Consiste em um predicado envolvendo atributos de relações que aparecem na cláusula from.
Uma típica consulta SQL tem a forma: select A1, A2, A3, ..., An from r1, r2, ..., rm where P onde Ai representa um atributo e cada ri é uma relação. P é um predicado. select Fcodigo, status from Fornecedor where cidade = ‘Paris’
Fcodigo status
2 10
3 30
A condição (ou predicado) que segue where pode incluir operadores de comparação =, <> (diferente), >, >=, < e <=; os operadores booleanos AND, OR e NOT.
Select Fcodigo, nome from Fornecedor where cidade = ‘Paris’ and status > 20
Fcodigo nome
3 Blake
Caso a cláusula where seja omitida, o predicado P é verdadeiro. A lista A1, A2, ..., An de atributos pode ser substituída por um asterisco (*) para selecionar todos os atributos de todas as relações presentes na cláusula from. select * from Fornecedor
O resultado da consulta acima será uma cópia da relação Fornecedor.
O resultado de uma consulta SQL é uma relação. select status from Fornecedor status 20
10
30
20
30
Linguagens de consultas formais são baseadas em noções matemáticas de relação. Assim, nunca deveriam aparecem tuplas duplicadas nas relações. Na prática, a eliminação de duplicação é uma relativa perda de tempo. Todavia, a SQL permite duplicações em relações.
Nos casos em que queremos forçar a eliminação de duplicações, inserimos a palavra distinct depois de select. select distinct status from Fornecedor status 20
10
30
A SQL