Você está na página 1de 1

1) Baseado no modelo físico abaixo desenvolva os comandos SQL equivalentes:

a) Criar a tabela de Ocupação


CREATE TABLE Ocupacao
(Matricula INT NOT NULL,
CodCargo INT NOT NULL,
dtInicio DATE NOT NULL,
dtFim DATE NOT NULL,
PRIMARY KEY (Matricula, CodCargo),
FOREIGN KEY (Matricula) REFERENCES Funcionario (Matricula),
FOREIGN KEY (CodCargo) REFERENCES Cargo (CodCargo));

b) Incluir um novo registro na tabela de Cargo, cujo código é igual a 5 e a descrição


“Analista de Sistemas”.

INSERT INTO Cargo (CodCargo, Descricao);

VALUES (5, “Analista de Sistemas” ) ;

c) Alterar a descrição do departamento de código 10 para “Informática”.

UPDATE Departamento SET Descricao = “Informática” WHERE CodDepto=10;

d) Excluir o Cargo de código igual a 10.

DELETE FROM Cargo WHERE CodCargo=10;

e) Encontrar o nome e a data de nascimento dos dependentes dos funcionários que


sejam casados e que morem na av. Colares Moreira.

SELECT nome, dtNascimento FROM Dependente, Funcionario


WHERE EstadoCivil = “Casado” AND Endereco LIKE “%av. Colares Moreira%”
f) Encontra o nome dos funcionários que tenham dependentes.

SELECT nome FROM Funcionario, Dependente


WHERE Funcionario.Matricula = Dependente.Matricula;

g) Obter a nome dos funcionários e a descrição do departamento em que eles


trabalham, porém somente daqueles que ocupam o cargo de “Analista de Sistemas”.

SELECT nome, descricao FROM Funcionario, Departamento, Cargo, Ocupacao,

Lotacao WHERE Funcionario.matricula = Ocupacao.matricula AND

Ocupacao.CodCargo= Cargo.CodCargo AND Cargo.Descricao = ”Analista de Sistemas”

h) Obter a quantidade de funcionários por cada departamento, sendo que o resultado


deverá ser apresentado de maneira ordenada.

SELECT CodDepto, Count(*) FROM Lotacao ORDER BY CodDepto asc;

Você também pode gostar