Escolar Documentos
Profissional Documentos
Cultura Documentos
Notas de aula
(Aula do dia 31 de maio)
A Linguagem SQL
Nas se co es anteriores, discutiu-se as opera co es da a lgebra relacional (e do c alculo relacional de tuplas e de dom nios). O aprendizado dessas opera co es e de fundamental import ancia para a compreens ao dos tipos de consultas que podem ser realizadas sobre uma base de dados relacional. Apesar disso, as opera co es da a lgebra relacional s ao consideradas t ecnicas (formais) demais para a maioria dos usu arios de SGBDs comerciais. Essa desvantagem associada a `s opera co es da a lgebra relacional deu origem a uma outra linguagem de consulta, denominada SQL. Acr onimo de Structured Query Language (linguagem estruturada de consulta), a SQL inclui algumas caracter sticas da a lgebra relacional, mas boa parte dela basea-se no c alculo relacional de tuplas. Como essa u ltima, uma consulta expressa em SQL deixa claro o que deve ser recuperado, e n ao como a recupera ca o deve ser feita. Vale notar tamb em que 1 2 a SQL e tanto uma DDL quanto uma DML . Ou seja, ela possui tanto instru co es para deni ca o de uma base de dados quanto para atualiza ca o e busca em bases desse tipo. Nesta se ca o, daremos enfase a `s instru co es da linguagem que permitem a busca por certas tuplas (e atributos) da base de dados.
1.1
A SQL possui um senten ca b asica para a recupera ca o de informa co es em uma base de dados: a senten ca SELECT3 .
1.1.1
A senten ca SELECT e composta basicamente de tr es cl ausulas: SELECT, FROM e WHERE. A cl ausula SELECT corresponde a ` opera ca o de proje ca o da a lgebra relacional. Em outras palavras, ela e utilizada para relacionar os atributos desejados no resultado de uma consulta. O resultado de uma consulta em SQL, assim como na a lgebra relacional, e uma rela ca o. E importante observar por em que tabelas resultantes de consultas em SQL podem
1 2
Esqueceu o que e uma DDL? Volte para a aula do dia 3 de mar co. Esqueceu o que e uma DML tamb em? Volte para a aula do dia 3 de mar co. 3 Vale notar que essa senten ca n ao possui nenhuma rela ca o com a opera ca o de sele ca o da a lgebra relacional
incluir duas tuplas id enticas. Para que as duplicidades sejam eliminadas, e preciso inserir a palavra DISTINCT ap os o SELECT. A cl ausula FROM corresponde a ` opera ca o de produto cartesiano da a lgebra relacional. Ela associa as rela co es que ser ao pesquisadas durante a avaliaa ca o de uma consulta. A cl ausula WHERE corresponde a ` opera ca o de sele ca o da a lgebra relacional. Ela consiste de um predicado envolvendo atributos das rela co es que aparecem na cl ausula FROM. Uma consulta t pica em SQL tem o seguinte formato: SELECT FROM WHERE onde: <Lista de atributos> e uma lista de nomes de atributos cujos valores s ao recuperados pela consulta. O asterisco * pode ser usado para denotar todos os atributos. <Lista de tabelas> e uma lista de nomes de tabelas necess arias ao processamento da consulta; <condi ca o> e uma express ao condicional que identica as tuplas a serem recuperadas pela consulta. Assim, considerando o esquema de rela ca o abaixo, FUNCIONARIO NomeFunc CPF DataNasc NumDep CPFSuper Salario <lista de atributos> <lista de tabelas> <condi ca o>;
DEPARTAMENTO NomeDep PROJETO NomeProj NumProj Custo NumDepto Numero Gerente InicioGer
temos que a consulta SELECT FROM WHERE DataNasc, NumDep FUNCIONARIO NomeFunc = Jos e;
devolve a data de nascimento e n umero do departamento onde trabalham todos os funcion arios que se chamam Jos e 4.
Note aqui a possibilidade da tabelas resultante incluir duas ou mais tuplas id enticas.