Você está na página 1de 3

Universidade Federal de Mato Grosso do Sul

o e Estat Departamento de Computac a stica Banco de Dados 1

Notas de aula
(Aula do dia 9 de junho)

1
1.1

A Linguagem SQL
Consultas b asicas em SQL
A estrutura SELECT-FROM-WHERE das consultas em SQL

1.1.1

Ainda considerando o esquema de rela ca o abaixo: FUNCIONARIO NomeFunc CPF DataNasc NumDep CPFSuper Salario

DEPARTAMENTO NomeDep PROJETO NomeProj NumProj Custo NumDepto Numero Gerente InicioGer

TRABALHA NO CPFFunc ProjNum Horas

DEPENDENTE CPFDep NomeDepen DataNasc Parentesco

A linguagem SQL inclui tamb em as opera co es de uni ao (UNION), intersec ca o INTER1 SECT e diferen ca (EXCEPT) da teoria dos conjuntos . O pr oximo exemplo ilustra a opera co de uni ao.

Para essas opera co es, a tabela resultante e um um conjunto de tuplas (n ao inculi tuplas duplicadas)

(SELECT DISTINCT FROM WHERE UNION (SELECT DISTINCT FROM WHERE

NumProj PROJETO, FUNCIONARIO, DEPARTAMENTO, NomeFunc = Jos e AND NumDepto = Numero AND Gerente = CPF NumProj PROJETO, TRABALHA NO, FUNCIONARIO NumProj = ProjNum AND CPFFunc = CPF AND NomeFunc = Jos e);

Essa consulta devolve o n umero dos projetos que possuem Jos e como gerente do departamento que controla o projeto ou Jos e como um funcion ario que trabalha no projeto. A linguagem SQL permite a ordena ca o das tuplas resultante de uma consulta de acordo com os valores de um (ou mais) dos seus atributos. Para isso, utiliza-se ORDER BY seguida de um ou mais atributos. Dessa forma, a consulta SELECT FROM WHERE ORDER BY NomeDep, NomeFunc DEPARTAMENTO, FUNCIONARIO Numero = NumDep NomeDep, NomeFunc;

devolve o nome dos departamentos e de seus funcion arios, ordenado alfabeticamente pelo nome dos departamentos e, dentro de cada departamento, pelo nome dos seus funcion arios. A ordem default e crescente (ascendente). A palavra DESC e utilizada quando deseja-se ordenar a tuplas em ordem decrescente. A linguagem SQL inclui tamb em opera co es para c alculo da soma(SUM), m edia(AVG), contagem(COUNT) dos valores de um determinado atributo. Dessa forma, a consulta SELECT FROM COUNT(DISTINCT SALARY) FUNCIONARIO;

devolve o n umero de sal arios distintos na empresa. J a a consulta SELECT FROM WHERE AVG(Salario), MAX(Salario), MIN(Salario) DEPARTAMENTO, FUNCIONARIO Numero = 4 AND Numero = NumDep;

devolve a m edia dos sal arios, o menor sal ario e o maior sal ario de todos os funcion arios que trabalham no departamento de n umero 4. Em muitos casos, deseja-se aplicar algumas das fun co es acima sobre subgrupos espec cos de tuplas (sal ario m edio dos funcion arios por departamento, por exemplo). Nesses casos, e preciso primeiramente agrupar as tuplas cujos valores s ao os mesmos para determinados atributos (atributos de agrupamento) e s o ent ao aplicar a fun ca o desejada. Para isso, a por meio dela que especica-se os atributos de SQL oferece a cl ausula GROUP BY. E agrupamento (que devem aparecer tamb em na cl ausula SELECT). Assim, caso deseje-se recuperar o n umero do departamento, o n umero de empregados em cada departamento e o valor m edio de seus sal arios, e preciso escrever:

SELECT FROM GROUP BY

NumDep, COUNT(CPF), AVG(Salario) FUNCIONARIO NumDep;

Você também pode gostar