Modelo de Dados XPTO: Alterações e Consultas em SQL
Classificado em Inglês
Escrito em em
português com um tamanho de 4,14 KB
Modelo de Dados da Empresa XPTO
Create table if not exists FUNC(
numero_func Smallint not null,
Nome_func CHAR(40) not null,
CPF_func NUMERIC(11) not null,
Data_admissao_func DATE not null,
Data_saida_func DATE not null,
Situacao_func CHAR(1) not null default = 'A',
Codigo_carg CHAR(3) not null,
Salario_base_func DECIMAL(7,2) not null default = '0,00',
Primary key (numero_func))
Alter table FUNC (add constraint FK_func1 foreign key (codigo_carg) references carg(codigo_carg))
b) Inserir o campo fone_depto
Inserir o campo fone_depto, alfanumérico de 15 posições na tabela DPTO.
Alter table dpto (add Fone_dpto varchar (15))
c) Aumentar o campo nome_carg
Aumentar o campo nome_carg para 40 posições.
Alter table carg (alter nome_carg char(40) not null)
d) Restrições de chave estrangeira para a tabela ALOC
Implementar as restrições de chave estrangeira para a tabela ALOC.
Alter table Aloc (add constraint FK_aloc1 foreign key (codigo_dpto) references dpto(codigo_dpto))
Alter table Aloc (add constraint FK_aloc2 foreign key (numero_func) references FUNC(numero_func))
e) Índice único para o campo cpf_func
Criar um índice único para o campo cpf_func.
Alter table FUNC (alter cpf_func numeric (11) not null unique index)
f) Índice para o campo nome_func
Criar um índice para o campo nome_func.
Alter table FUNC (alter nome_func char(40) not null index)
g) Alterar nome_func de CHAR para VARCHAR
Alterar o nome_func de CHAR para VARCHAR mantendo o tamanho original.
Alter table func (alter nome_func varchar (40) not null)
h) Valor padrão do campo ind_comissao_carg
Alterar o campo ind_comissao_carg para que o valor padrão seja 'N'.
Alter table carg (alter ind_comissao_carg char(1) not null default 'N')
i) Remover o valor padrão do campo situacao_func
Remover o valor padrão do campo situacao_func.
Alter table func (alter situacao_func char (1) not null)
j) Chave primária da tabela PGTO
Criar a chave primária da tabela PGTO.
Alter table PGTO (add constraint PK_pg1 primary key (ano_ref_pgto))
Alter table PGTO (add constraint PK_pg2 primary key (mes_ref_pgto))
Consultas em SQL sobre o Modelo de Dados da Empresa XPTO
Considerando ainda o Modelo de Dados da empresa XPTO, resolva as consultas abaixo através de linguagem SQL.
a) Funcionários cumprindo aviso prévio com cargo de formação técnica
Exibir o nome e a data de admissão dos funcionários que estão cumprindo aviso prévio cujo cargo exija formação técnica.
Select nome_func, data_admissao_func
From Func inner join carg on func.codigo_carg = carg.codigo_carg
Where situacao_func = 'P'
And classe_carg = 'T'
b) Salário líquido de janeiro de 2013 dos mensalistas
Exibir o nome e o salário líquido recebido em janeiro de 2013 de cada funcionário (não prestador de serviços) mensalista.
Select nome_func, (sal_base_pgto - total_desc_pgto) as salario_liquido
From Func inner join pgto on func.codigo_func = pgto.codigo_func
Inner join carg on Func.codigo_carg = carg.codigo_carg
Where ano_ref_pgto = '2013'
And mes_ref_pgto = '1'
And tipo_contrato_carg = 'M'
c) Cargos sem funcionários ativos
Listar os nomes dos cargos que não possuam nenhum funcionário ativo cadastrado com estes códigos de cargo.
Select nome_carg, situacao_func
From carg inner join func on carg.codigo_carg = func.codigo_carg
Where situacao_func in ('I', 'L', 'M', 'P')
d) Empregados do departamento TI com cargos comissionados
Exibir os nomes dos empregados do departamento cujo código é 'TI' que tenham cargos comissionados.
Select nome_func
From FUNC inner join carg on func.codigo_carg = carg.codigo_carg
Where carg.codigo_carg = 'TI'
And ind_comissao_carg = 'S'