Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — CESGRANRIO 2022

Banco de DadosConsultas e Comandos em SQL
Código
cg056695
Banca
CESGRANRIO
Órgão
ELETRONUCLEAR
Ano
2022
Cargo
PNS ( )

O controle diário da utilização de passes de metrô em uma cidade é feito por programas que utilizam um banco de dados composto pelas seguintes tabelas:

 

CREATE TABLE PASSE (

NUM INTEGER NOT NULL,

DATA_EXP DATE NOT NULL,

NUM_VIAGENS INTEGER NOT NULL,

PRIMARY KEY (NUM))

 

CREATE TABLE REG_VIAGEM (

NUM INTEGER NOT NULL,

NUM_ROLETA INTEGER NOT NULL,

DATA_VIAGEM DATE NOT NULL,

FOREIGN KEY (NUM)

REFERENCES PASSE (NUM))

 

A tabela PASSE contém uma linha para cada passe vendido pela empresa que administra o metrô. A coluna DATA_EXP informa a data de emissão do passe, e a coluna NUM_VIAGENS informa o número de viagens em que o passe poderá ser usado (número máximo de viagens). Este número não sofre alteração ao longo do tempo.

 

A tabela REG_VIAGEM contém uma linha para cada viagem em que o passe foi usado. A coluna NUM_ROLETA informa a roleta na qual o passe foi inserido, e a coluna DATA_VIAGEM informa a data em que o usuário inseriu o passe na roleta.

 

Qual comando SQL NÃO produzirá um erro de tempo de execução independentemente dos dados existentes nas duas tabelas que fazem parte do banco de dados?

  1. AINSERT INTO REG_VIAGEM VALUES (7777, 720, ‘2022-04-21’)
  2. BUPDATE PASSE SET NUM = 8888 WHERE NUM = 4444
  3. CDELETE FROM REG_VIAGEM WHERE DATA_VIAGEM = ‘2021-09-02‘;
  4. DINSERT INTO PASSE (NUM_VIAGENS, NUM) VALUES (10, 9999)
  5. EDELETE FROM PASSE WHERE DATA_EXPIR = ‘2021-08-11‘
Revelar gabarito e comentário

GabaritoC — DELETE FROM REG_VIAGEM WHERE DATA_VIAGEM = ‘2021-09-02‘;

Link permanente: /questoes/cg056695