SóProvas


ID
1387774
Banca
CESGRANRIO
Órgão
LIQUIGÁS
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

As tabelas a seguir pertencem ao esquema de um banco de dados de atletas de salto em distância.

CREATE TABLE ATLETA (
   COD NUMBER(5) NOT NULL,
   NOME VARCHAR2(50) NOT NULL,
   NUM_INSCR NUMBER(7),
   TELEFONE VARCHAR2(8) NOT NULL,
   CONSTRAINT ATLETA_PK PRIMARY KEY (COD))

CREATE TABLE PROVA (
   COD_ATL NUMBER(5) NOT NULL,
   COD_PROVA NUMBER(5) NOT NULL,
   MARCA NUMBER(5,2),
   CONSTRAINT PROVA_PK PRIMARY KEY (COD_ATL,COD_PROVA),    CONSTRAINT PROVA_FK FOREIGN KEY (COD_ATL) REFERENCES
         ATLETA(COD))

Observação:
• A coluna MARCA, localizada na tabela PROVA, contém a distância, em metros, saltada por um atleta em uma prova.

Qual comando SQL irá inserir corretamente uma nova linha na tabela de atletas?

Alternativas
Comentários
  • Vamos lá!

    a) Quando não passamos a lista de campos que irão receber os valores, precisamos informar valores para todos os atributos, na ordem em que eles foram inicialmente definidos na criação da tabela. A lista de valores do item, no entanto, só tem 3 valores, enquanto a tabela possui 4 campos. ERRADA

    b) É a nossa resposta! Veja que é possível inserir valores em uma ordem diferente do que foi inicialmente estabelecido na criação da tabela, sem problemas, desde que se passe a lista de campos no comando INSERT. Outro detalhe é que não foi inserido valor algum no campo NUM_INSCR, mas não há problema, uma vez que esse campo não foi definido como NOT NULL. CERTA

    c) O INSERT passa uma lista de 4 campos, mas só fornece 3 valores. Há um erro de sintaxe. ERRADA

    d) Os dois últimos campos estão invertidos. O penúltimo deveria ser um número e o último uma cadeia de caracteres. Do jeito que está, o comando produzirá um erro de tipo. ERRADA

    e) Por fim, esse comando deixa de fornecer valor para o atributo TELEFONE, que é obrigatório (NOT NULL). ERRADA