Sie sind auf Seite 1von 5

SQL DML CONSULTAS ENVOLVENDO MAIS DE UMA TABELA

Uma consulta envolvendo informaes de mais de uma tabela podem ser realizadas por encadeamento ou juno(join) . 1. Consultas Encadeadas - SubConsultas Consultas encadeadas, tambm referenciadas como subconsultas, permitem que uma consulta seja feita sobre o resultado de uma outra consulta. eve!se empre"ar esta tcnica quando se deseja informaes de uma tabela porm, a condio deve ser e#pressa com campos de outra tabela. $esta situao o "erenciador de consultas do %&' e#ecuta primeiro as consultas internas e os resultados so comparados se"undo o operador de elo entre as consultas. (s predicados de elos entre consultas so) *+*, *,$*, *-.,%/%0, 1$2( ou %(3-) e os operadores relacionais (*4*, *4+* ,*5* e *5+*) %inta#es poss6veis) %-7-C/ colunai, 8, colunan 9:(3 tabela; <=-:- coluna> + (%-7-C/ colunaj 9:(3 tabela? <=-:- condies) %-7-C/ colunai, 8, colunan 9:(3 tabela; <=-:- coluna> ,$ (%-7-C/ colunaj 9:(3 tabela? <=-:- condies) %-7-C/ colunai, 8, colunan 9:(3 tabela(s) <=-:- coluna> 1$2 (%-7-C/ colunaj 9:(3 tabela? <=-:- condies) %-7-C/ colunai, 8, colunan 9:(3 tabela; <=-:- coluna> OPERADOR RELACIONAL ALL (%-7-C/ colunaj 9:(3 tabela? <=-:- condies) (peradores relacionais de comparao) 5, 5+, 4 e 4+ %-7-C/ colunai, 8, colunan 9:(3 tabela; <=-:- -.,%/% (%-7-C/ @ 9:(3 tabela? <=-:- coluna 4operador5 tabela;.colunai)

Nota de Aula Prof. Sidney Vieira

+ A Berifica se o valor do campo que precede o predicado e#atamente o i"ual ao valor retornado na subconsulta ,$ A Berifica se o valor do campo que precede o predicado faz parte do subconjunto de valores retornados na subconsulta 1$2 A Berifica se o campo que precede o predicado i"ual a al"um valor retornado na subconsulta -.,%/% A Berifica se um valor e#iste um retorno no nulo da subconsulta(@). $este caso o sql e#ibirC as linDas da tabela tabela; que atendem a restrio da subconsulta. 1 ne"ao do predicado clCusula definida por $(/ -.,%/%.

-#emplos) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Considere as relaes(tabelas) para os e#emplos a se"uir)


DEPARTAMENTO
C( $(3(:C13-$/( 31/: ++++++++ ++++++++++++++++ +++++++++++++++++++ ++++++++++++++++

; ? G

desenvolvimento rede manutencao

;EEEEE.EE ?EEEEE.EE HEEEE.EE

? F I

FUNCIONARIO
31/: $(3%171:,( 1 3,%%1( %-.( -JKC( 31/:K%UJ-:B,%(:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

; ? G O I N F

ze ana pedro eva ivo sid ines

;EEE.EE ;IEE.EE ;EEE.EE ?EEE.EE ;HEE.EE LEE.EE ;IEE.EE

EL! -C!?EEE ;E!$(B!?EE; ?;!M1$!?EE; EG! -C!?EE? ;E!(C/!?EE? ??!9-'!?EE? E;!$(B!?EEG

3 9 3 9 3 3 9

; ; ? ; G ? ?

$U77 ; N ; $U77 $U77 I

P Obs: o campo matr em DEPARTAMENTO tem a funo de guardar a matricula do c efe do departamento o campo DEP!COD em funcion"rio tem a funo de guardar o departamento de alocao do funcion"rio# o campo MATR!$%PER&I$OR em funcion"rio tem a funo de guardar a matricula do 'uper(i'or do funcion"rio o' nome' do' funcion"rio' 'o )nico' ou 'eja no e*i'te doi' funcion"rio' com o me'mo nome !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

-#emplo;) (bter o nome dos funcionCrios que esto alocados em departamentos com oramentos inferiores a :Q LE.EEE,EE

Nota de Aula Prof. Sidney Vieira

%-7-C/ nome 9:(3 funcionario <=-:- depKcod ,$ (%-7-C/ cod 9:(3 departamento <=-:- orcamento 4 LEEEE) -#emplo?) (bter o nome do departamento cujo cDefe a funcionCria de nome ines %-7-C/ nome 9:(3 departamento <=-:- matr + (%-7-C/ matr 9:(3 funcionario <=-:- nome + 0ines0) -ste e#emplo empre"a o predicado + pois no e#iste, conforme descrito anteriormente, dois funcionCrios com o mesmo nome. Caso e#istisse dever6amos empre"ar o predicado ,$ -#emploG ) obter a matricula e nome dos funcionCrios que so supervisionados pelo funcionCrio de nome ze %-7-C/ matr, nome 9:(3 funcionario <=-:- matrKsupervisor + (%-7-C/ matr 9:(3 funcionario <=-:- nome + ze) $este e#emplo admitido que sR e#iste um funcionario -#emploO) (bter os nomes e salCrios dos funcionCrios que possuam o maior valor salario %-7-C/ nome, salario 9:(3 funcionario <=-:- salario ,$ (%-7-C/ 31.(salario) 9:(3 funcionario) OU %-7-C/ nome, salario 9:(3 funcionario <=-:- salario 5+ (%-7-C/ 31.(salario) 9:(3 funcionario) OU %-7-C/ nome, salario 9:(3 funcionario <=-:- salario + (%-7-C/ 31.(salario) 9:(3 funcionario) O+$, $- 'e emprega o predicado ./. 0uando a con'ulta interna retorna 1ERO ou 2 e 'omente 2 re'ultado# -#emploI) (bter os nomes e salCrios dos funcionCrios que "anDam mais do que qualquer funcionCrio do departamento de codi"o ; %-7-C/ nome, salario 9:(3 funcionario <=-:- salario 5 177 (%-7-C/ salario 9:(3 funcionario <=-:- depKcod + ;)

Nota de Aula Prof. Sidney Vieira

-#emploN) (bter os nomes dos funcionCrios que so cDefes de departamentos %-7-C/ nome 9:(3 funcionario <=-:- -.,%/% (%-7-C/ @ 9:(3 departamento <=-:- matr + funcionario.matr) -#emploF) (bter os nomes dos funcionCrios que no so cDefes de departamentos %-7-C/ nome 9:(3 funcionario <=-:- $(/ -.,%/% (%-7-C/ @ 9:(3 departamento <=-:- matr + funcionario.matr) A el!dando tabelas S possivel determinar TaliasU para as tabelas em uma consulta. Jara isto basta colocar o apelido a ser usado apRs o nome da tabela na clCusula From %-7-C/ a el!do1.campo;Ktab;, a el!do1.camponKtab; , ... a el!do". campo>Ktab? 9:(3 tab; a el!do1# tab? a el!do" <=-:- a el!do1. campojKtab; + a el!do". campolKtab? 1$ a el!do". campotKtab? + T#U 1$ a el!do1.campomKtab; + TVU -#emplo) %-7-C/ $.nome, $.salario, d.nome 9:(3 funcionario $# departamento d <=-:- $.cod + d.cod 1$ d.nome + TredeU 1$ $.se#o + T9U Consultas co% &o!n Usada quando se deseja informaes de mais de uma tabela. %inta#e) %-7-C/ tabela;.colunai, 8, tabela?.colunan 9:(3 tabelas; M(,$ tabela? ($ tabela;.colunaj, + tabela?.coluna> W<=-:- condio(es)X ('%) nem todos os %&' aceitam o termo M(,$ neste caso deves!se empre"ar a sinta#e abai#o Yue o mesmo que) %-7-C/ tabela;.colunai, 8, tabela?.colunan 9:(3 tabelas;, tabela? <=-:- tabela;.colunaj, + tabela?.coluna>

Nota de Aula Prof. Sidney Vieira

W1$ -#emplos)

condio(es)X

(bter o nome e salario dos funcionarios com o nome dos respectivos departamentos onde esto alocados %-7-C/ funcionario.nome, funcionario.salario, departmento.nome 9:(3 funcionario M(,$ departamento ($ funcionario.depKcod + departamento.cod (bter os dados do departamento de rede com os dados de seu respectivo cDefe %-7-C/ @ 9:(3 funcionario M(,$ departamento ($ funcionario.matr + departamento.matr <=-:- departamento.nome + TredeU Yue o mesmo que) %-7-C/ @ 9:(3 funcionario, departamento <=-:- funcionario.matr + departamento.matr 1$ departamento.nome + TredeU (bter o nome e orcamento do departamento de redes com o nome e salario dos seus respectivos funcionarios do se#o feminino %-7-C/ departamento.nome, departamento.orcamento, funcionario.nome, funcionario.salario, 9:(3 funcionario, departamento <=-:- funcionario.depKcod + departamento.cod 1$ departamento.nome + TredeU 1$ funcionario.se#o + T9U Yue o mesmo que) %-7-C/ d.nome, d.orcamento, $.nome, $.salario, 9:(3 funcionario $# departamento d <=-:- $.depKcod + d.cod 1$ d.nome + TredeU 1$ $.se#o + T9U

Nota de Aula Prof. Sidney Vieira

Das könnte Ihnen auch gefallen