SóProvas


ID
2950765
Banca
FGV
Órgão
DPE-RJ
Ano
2019
Provas
Disciplina
Banco de Dados
Assuntos

No SQL Server, considere uma tabela T que contém uma coluna numérica B, que permite valores nulos, e uma coluna A, definida como primary key. Outras colunas podem existir ou não.

Nesse contexto, considere os cinco comandos SQL a seguir.


1. select * from T where A is not null

    order by A

2. select * from T where not B is null

    order by A

3. select * from T where where B > ø

    order by A

4. select * from T where where not B <= ø

    order by A

5. select * from T

    order by A


Sobre a execução de cada um desses comandos, é correto afirmar que, para qualquer que seja a instância de T, os únicos comandos que sempre produzem resultados idênticos entre si são: 

Alternativas
Comentários
  • No primeiro comando, como a chave primária não pode conter valores null, será retornada toda a tabela, assim como o comando 5.

  • Primary key quer dizer chave primária. Se o campo A é chave primária, o comando "A is not null" não faz a menor diferença, pois por definição um campo que faz parte da chave primária não pode ter valores nulos. Assim, os comandos 1 e 5 são equivalentes.

  • Gabarito: Alternativa B: 1 e 5;

  • Primary key quer dizer chave primária. Se o campo A é chave primária, o comando "A is not null" não faz a menor diferença, pois por definição um campo que faz parte da chave primária não pode ter valores nulos. Assim, os comandos 1 e 5 são equivalentes.

    • A é primary key, logo não faz diferença definir explicitamente a restrição not null, pois, por definição toda chave primária é "not null" e "unique".
    • B é inteiro e admite valores nulos;
    • Pode haver ou não mais colunas (informação irrelevante para resolução da questão).

    1. select * from T where A is not null

      order by A (retorna todos os valores de A que não sejam nulos)

    2. select * from T where not B is null

      order by A

    (retorna apenas os as tuplas em que B é não nulo)

    3. select * from T where where B > ø

      order by A

    (retorna apenas as tuplas em que os valores de B é maior que zero.

    4. select * from T where where not B <= ø

      order by A

    (retorna apenas as tuplas em que os valores de B é maior que 0)

    há um duplo "where" no comando, caso houvesse somente um "where" essa alternativa seria equivalente à terceira alternativa.

    5. select * from T

      order by A

    (retorna todos os valores de A, é equivalente à primeira alternativa, pois a restrição da cláusula where na alternativa 1 é inútil).