Escolar Documentos
Profissional Documentos
Cultura Documentos
Junes
Expresses
Efeito de um aumento de salrio de 10% para os empregados que trabalham no projeto ProdutoX
SELECT numat, salario AS sal_atual, 1.1 * salario AS sal_novo FROM Empregado JOIN TrabalhaEm ON numemp=numat JOIN Projeto ON nproj=numproj WHERE nomeproj = 'ProdutoX' ;
SELECT nominic, ender FROM Empregado JOIN Departamento ON ndepto = numdep WHERE nomedep = 'pesquisa';
NATURAL JOIN
JOIN no elimina a duplicidade dos atributos de juno Para eliminar a duplicidade de atributos de juno:
NATURAL JOIN
Usando NATURAL JOIN renomeando os atributos. Empregado.ndepto = Departamento.ndepto , porque este o nico par com o mesmo nome aps a renomeao:
SELECT nominic, ender FROM Empregado NATURAL JOIN Departamento AS Depto(nomedep, ndepto, nchefe, dtinchef) WHERE nomedep = 'pesquisa';
Seleciona todas as linhas da tabela esquerda da juno. Seleciona as linhas da tabela direita da juno de acordo com a condio de juno.
Buscar o nome de todos os empregados. Se o empregado possuir dependentes, selecionar o nome e sexo de cada um dos seus dependentes
SELECT FROM
e.nominic, d.depend, d.sexo Empregado AS e LEFT OUTER JOIN Dependente AS d ON e.numat = d.numemp;
Nome de todos os empregados da empresa; se o empregado possuir dependentes do sexo masculino, selecionar o nome de cada um dos seus dependentes
SELECT e.nominic, d.depend FROM Empregado AS e LEFT OUTER JOIN Dependente AS d ON e.numat = d.numemp WHERE d.sexo = 'M' ;
Seleciona todas as linhas da tabela direita da juno. Seleciona as linhas da tabela esquerda da juno de acordo com a condio de juno.
Seleciona todas as linhas de ambas as tabelas envolvidas LEFT OUTER JOIN combinada com RIGHT OUTER JOIN
JUNES
Sup)
SELECT einic, efim, sinic, sfim FROM Empregado(nominic, nomefim, nsuper) AS Emp(einic, efim, nsup) NATURAL JOIN Empregado(nominic, nomefim, numat) AS Sup(sinic, sfim, nsup);
Recuperar o nome do empregado e, se o empregado possuir supervisor, recuperar tambm o nome do seu supervisor imediato
SELECT e.nominic as IniEmp, e.nomefim as FimEmp, s.nominic as IniSup, s.nomefim as FimSup FROM Empregado e LEFT OUTER JOIN Empregado s ON e.nsuper = s.numat;
Para cada projeto localizado em Houston selecionar o nmero do projeto, o nmero e o nome do chefe do departamento que controla o projeto SELECT numproj, ndep, nominic FROM Projeto JOIN Departamento ON numdep=ndep JOIN Empregado ON nchefe=numat
WHERE
locproj = 'Houston';
Vises
Create
View
Vises
Viso uma tabela que derivada de outras tabelas. So utilizadas como um mecanismo de segurana e de autorizao. TrabalhaEm(numemp, nproj, horas); Empregado(nominic, nomefim, numat, ...); Projeto(nomeproj, numproj, ...); Create view trabalha_em1 as select nominic, nomefim, nomeproj, horas from empregado, projeto, trabalhaem where numat=numemp and numproj=nproj; Trabalha_em1(nominic, nomefim, nomeproj, horas);
Vises
Create View Info_Depto(Nome_depto,Tot_emp, Total_Sal) AS Select nomedep, Count(*), Sum(Salario) From departamento, empregado Where numdep = ndepto Group By nomedep; Obs.: Uma viso est sempre Atualizada. Automaticamente ela reflete o contedo das tabelas bsicas. Remove a viso do BD: