SóProvas


ID
2751907
Banca
FCC
Órgão
TRT - 2ª REGIÃO (SP)
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Considere que um Técnico de TI deseja criar as tabelas abaixo em um banco de dados PostgreSQL 8 aberto e em condições ideais.

CREATE TABLE departamento (
codDep varchar(10) primary key,
local point
);

CREATE TABLE funcionario (
codDep varchar(10) I ,
salario real,
dataAdm date
);

Para que codDep na tabela funcionario seja definido como chave estrangeira com relação à tabela departamento, a lacuna I deve ser preenchida com

Alternativas
Comentários
  • A sintaxe correta é a seguinte:

                  references nome_da_tabela(Nome_campo_Da_chave_primária_da_outra_tabela)

                 

                  references departamento(codDep)

    Portanto o correto é a alternativa E.

  • Apenas lembrando que é possível adicionar uma foreign key após a criação da tabela, usando o seguinte comando:


    ALTER TABLE funcionario ADD CONSTRAINT codDepfk FOREIGN KEY (codDep) REFERENCES departamento (codDep);


    Fonte: https://www.postgresql.org/docs/8.2/static/sql-altertable.html

  • no final da tabela também poderia ser assim:

    constraint FK_NOME foreign key (codDep) references departamento(codDep)

  • Nessa questão temos um exemplo de criação de uma chave estrangeira sem que se nomeie explicitamente a restrição. Veja que podemos criar uma chave estrangeira utilizando somente a informação de qual é o atributo referenciado, desde que isso seja feito dentro da definição de um dos atributos da tabela referenciadora. Veja a sintaxe:

    CREATE TABLE salario (

                 idFuncionario INT REFERENCES Funcionario(idFuncionario),

                 salario FLOAT NOT NULL

                 );

    A tabela em questão irá ter o atributo idFuncionario como chave estrangeira, que referencia a tabela Funcionario através do atributo idFuncionario desta segunda.

  • Usando "references" já diz que é chave primária em outra tabela e, portanto, não precisa dizer que é foreign key nesta tabela.