Num banco de dados relacional, considere uma tabela R, com d...

Próximas questões
Com base no mesmo assunto
Q2096303 Banco de Dados
Num banco de dados relacional, considere uma tabela R, com duas colunas A e B, ambas do tipo string de caracteres, cuja instância é exibida a seguir.
70.png (106×164)

Nesse cenário analise os comandos a seguir.
I. 70_i.png (366×64)
II. 70_ii.png (364×70)
III. 70_iii.png (364×48)
Assinale a lista que contém o número de registros deletados em cada um dos comandos I, II e III, respectivamente, quando executados separadamente e usando a mesma instância inicial descrita.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Opção I e II o SELECT traz todos os registros e por consequência todos são deletados.

Já na opção II esse somente 5 registros são retornados.

Fiz um produto cartesiano para entender.

---------------------------------------

PedroJoão PedroJoão

PedroJoão PedroJoão

PedroJoão PedroJoão

PedroJoão PedroJoão

PedroJoão MariaIda

PedroJoão MariaIda

PedroJoão MariaIda

PedroJoão MariaIda

PedroJoão EdsonWilson

PedroJoão EdsonWilson

PedroJoão EdsonMaria

PedroJoão EdsonMaria

MariaIda PedroJoão

MariaIda PedroJoão

MariaIda PedroJoão

MariaIda PedroJoão

MariaIda MariaIda

MariaIda MariaIda

MariaIda MariaIda

MariaIda MariaIda

MariaIda EdsonWilson

MariaIda EdsonWilson

MariaIda EdsonMaria

MariaIda EdsonMaria

EdsonWilson PedroJoão

EdsonWilson PedroJoão

EdsonWilson MariaIda

EdsonWilson MariaIda

EdsonWilson EdsonWilson

EdsonWilson EdsonMaria

EdsonMaria PedroJoão

EdsonMaria PedroJoão

EdsonMaria MariaIda

EdsonMaria MariaIda

EdsonMaria EdsonWilson

EdsonMaria EdsonMaria

---------------------------------------

Na comparação é considerado a letra na ordem alfabética e não a quantidade de caracteres.

Ordenando do maior para o menor (ordem decrescente):

·       “PedroJoão” é maior que “MariaIlda” (2x);

·       “MariaIlda” é maior que “EdsonWilson” (2x);

·       “EdsonWilson” é maior que “EdsonMaria”; e

·       “EdsonMaria” não é maior que nada, no máximo é igual a “EdsonMaria”, ou seja, não é retornado no SELECT.

Número de registros que serão deletados igual a 5.

(2x) = 2 registros na tabela.

Na hora da prova não vai da de fazer como o Diego flw para a letra B.

Primeiro, no sql se você compara duas "strings" o que vale é a ordem delas, assim 'bab' > 'baa' que é True; A primeira e a segunda é igual, já o último b é maior que a. Outro exemplo, 'caad' > 'daad' que é Falso. Já de cara o c é menor que o d.

Assim a forma mais fácil seria essa:

Pedro - P

Maria - M

Edson - E

Como sempre inicia com R.A e r1.A queremos ver se R.A > r1.A temos as seguintes possibilidades;

Para o Pedro:

P > M (quando r1.B é Ida) - 2 vzs

P > E (quando r1.B for Maria E Wilson) - 2 vzs

Avaliando o caso da Maria, ela sempre será maior que E, uma vez que r1.A sempre que for E

M > E nos dois casos - 2vzs;

Veja que os casos quando r1.A for Edilson será duplicado na tabela resultado, mas não importa.

Assim teremos a exclusão da linha 2, 3, 4, 5 e 6 totalizando 5.

Resolvendo no modo turbo:

1) Esse tipo de consulta sempre deletará TODOS os resultados quando não tiver o valor NULL.

Descartamos a A, B e C

2) Está usando o simbolo > (maior) e não o >= (maior igual), ou seja, o MAIOR VALOR nunca será maior que ele mesmo.

Logo não pode retornar 6 opções.

Descartamos a E e sobrou a D

Comando II

quando são nomes, tem que olhar a ordem alfabética de cada nome, letra por letra até a achar a letra que vem depois do alfabeto,a letra que vem depois no alfabeto é maior

R r1

PedroJoão PedroJoão

MariaIda MariaIda

MariaIda MariaIda

PedroJoão PedroJoão

EdsonWilson EdsonWilson

EdsonMaria EdsonMaria

agora analisando cada linha de R com todas a de r1

R r1

"EdsonMaria" não é maior que PedroJoão

MariaIda

MariaIda

PedroJoão

agora analisando

R r1

"EdsonMaria" EdsonWilson

Até o final do nome "Edson" é tudo igual, mas chegando em "M" de "Maria" , "M" vem antes no alfabeto do "W" (M é menor de W) de Wilson, logo, "EdsonMaria" < EdsonWilson

ainda não satisfazendo a condição. Por fim,

R r1

"EdsonMaria" EdsonMaria são iguais, logo, nenhum é maior que o outro

Logo, como " EdsonMaria" não é maior que ninguém, essa linha não será deletada da tabela R, apenas 5 linhas serão deletadas na comando "II"

GAB D

O item II retorna zero linhas! Não tem produto cartesiano nessa questão, ele apenas faz um alias r1 para a tabela R e compara ela com ela mesma. Não tem como R.A+R.B ser maior que r1.A+r1.B porque são iguais!

A resposta é 6,0,6

A questão deveria ser cancelada!

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo