Seja a tabela a seguir, escrita segundo o modelo relacional ...
Seja a tabela a seguir, escrita segundo o modelo relacional de dados.
EMPRESA (codigo, nome, atividade, filial), no qual todos os campos são texto de até 10 posições, o campo código é chave primária, os campos nome e atividade não podem ser nulos e o campo filial é chave estrangeira relacionada ao campo fl da tabela FILIAL. |
Então, o comando SQL (segundo a sintaxe do Oracle) para criar essa tabela é o seguinte:
- Gabarito Comentado (1)
- Aulas (12)
- Comentários (0)
- Estatísticas
- Cadernos
- Criar anotações
- Notificar Erro
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D
Para resolver essa questão, você precisa ter conhecimento em comandos SQL de criação de tabelas, especificamente utilizando a sintaxe do Oracle. Além disso, é necessário entender conceitos como chave primária, chave estrangeira e restrições de integridade.
A alternativa D é a correta, pois ela contém o comando SQL correto para criar a tabela EMPRESA conforme os requisitos apresentados.
Vamos analisar a alternativa correta (D) e o porquê das outras estarem incorretas:
Alternativa D
CREATE TABLE EMPRESA (codigo VARCHAR(10), nome VARCHAR(10) NOT NULL, atividade VARCHAR(10) NOT NULL, filial VARCHAR(10), CONSTRAINT Chave1 PRIMARY KEY (codigo), CONSTRAINT Chave2 FOREIGN KEY (filial) REFERENCES FILIAL (fl));
Esta alternativa está correta porque:
- Define os campos nome e atividade como
NOT NULL
, conforme exigido. - Define codigo como chave primária usando a cláusula
CONSTRAINT Chave1 PRIMARY KEY (codigo)
, garantindo que codigo seja único e não nulo. - Define filial como chave estrangeira relacionada ao campo fl da tabela FILIAL usando a cláusula
CONSTRAINT Chave2 FOREIGN KEY (filial) REFERENCES FILIAL (fl)
.
Agora, vamos ver o que está errado nas outras opções:
Alternativa A
CREATE TABLE EMPRESA (codigo VARCHAR(10) PK, nome VARCHAR(10) NOT NULL, atividade VARCHAR(10) NOT NULL, filial VARCHAR(10) FK, REFERENCES FILIAL (fl));
Esta alternativa está incorreta porque:
- Os termos
PK
eFK
não são válidos na definição de colunas no Oracle. Deveriam ser usadas as cláusulasPRIMARY KEY
eFOREIGN KEY
.
Alternativa B
CREATE TABLE EMPRESA (PRIMARY KEY codigo VARCHAR(10), nome VARCHAR(10), atividade VARCHAR(10), FOREIGN KEY (FILIAL) filial VARCHAR(10) NULL);
Esta alternativa está incorreta porque:
- A sintaxe está incorreta no uso de
PRIMARY KEY
eFOREIGN KEY
. Estas restrições devem ser declaradas comoCONSTRAINTS
. - Não define explicitamente que os campos nome e atividade são
NOT NULL
.
Alternativa C
CREATE TABLE EMPRESA (codigo VARCHAR(10) NOT NULL, nome VARCHAR(10) NOT NULL, atividade VARCHAR(10) NOT NULL, filial VARCHAR(10) NOT NULL), PRIMARY KEY (codigo), FOREIGN KEY (filial) REFERENCES FILIAL (fl));
Esta alternativa está incorreta porque:
- Define o campo filial como
NOT NULL
, o que não é especificado no enunciado da questão.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo