SóProvas


ID
762172
Banca
FCC
Órgão
TCE-AM
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Após a execução dos seguintes comandos em linguagem SQL:

CREATE TABLE Carros (INT Código PRIMARY KEY, TEXT Modelo);

INSERT INTO Carros VALUES (NULL, "Alfa Romeo");

INSERT INTO Carros VALUES (5000, "Mazda");

SELECT COUNT(*) FROM Carros;

Será retornado o valor

Alternativas
Comentários
  • Até o momento, o gabarito é D.
    Segunda questão que a FCC diz que NULL em chave primária é válido.
    Apesar de ser impossível na vida real, começo a pensar se na "jurisprudência" da banca isso realmente existe.
  • PRIMARY KEY

    Especifica a coluna que identifica unicamente uma linha da tabela. A coluna identificada deve ser definida como NOT NULL.

    Pelo que eu entendi, se não for definido NOT NULL ainda pode conter um NULL mesmo sendo PRIMARY KEY, mas por padrão sempre que for definir uma PRIMARY KEY tem que ter definir o  NOT NULL.

    Fonte: http://db.apache.org/derby/docs/dev/pt_BR/ref/rrefsqlj13590.html
  • Segundo Navathe (sexta edição pag 47) : A restrição de integridade de entidade afirma que nenhum valor da chave primária pode ser Null. Se a FCC usa alguma bibligrafia que contadiz a melhor literatura disponível, deveria recomendar suas  fontes como refer?ncias bibliográficas; mas. pelas informações que tenho a FCC costuma fundamentar suas questões na Wikipedia.
  • Assim fica difícil FCC...
  • Pela documentação SQL 2003 (http://savage.net.au/SQL/sql-2003-2.bnf.html#unique specification) pode se ter uma CONSTRAINT sem NOT NULL, mas não quer dizer que os SGDBs implementem assim.
    Vejam:

    <column constraint>    ::= 
             NOT NULL 
         |     <unique specification>
         |     <references specification>
         |     <check constraint definition>
     
    <unique specification>    ::=   UNIQUE | PRIMARY KEY

    O NOT NULL é opcional (o simbolo | quer dizer "ou" exclusivo)

    Acho que o Firebird aceita NULL no Primary Key, mas não tenho certeza. Mas se fosse inserir o segundo NULL no campo da primary key, ele daria erro de restrição de unicidade (também chamada “integridade de entidade” ou unique constraint) com certeza.

    Considerando que ele aceitou o campo NULL no campo primary key:
    - O COUNT (*) conta as tuplas com valores nulos também, e nesse caso retorno =  2
    - Caso a função fosse SELECT COUNT(CÓDIGO) FROM Carros; retorno = 1, pois só conta os valores diferentes de NULL.
  • Esta questão foi anulada pela FCC: http://www.concursosfcc.com.br/concursos/tceam111/edital_resultado_objetiva_discursiva_doe.pdf