SóProvas


ID
2756494
Banca
FAURGS
Órgão
BANRISUL
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Observe as tabelas abaixo definidas em SQL.


create table EMPREGADOS

(matr integer not null primary key,

nome varchar(120) not null,

salario numeric(7,2) not null,

funcao varchar(35) not null,

feriasAVencer date);


create table AFASTAMENTOS

(code integer not null primary key,

nome varchar(120) not null,

salario numeric,

funcao varchar(35) not null,

tempo integer);


Considere abaixo a atuação dos comandos SQL de inserção.


I - INSERT INTO AFASTAMENTOS VALUES (1, 'joao', 'gerente');

II - INSERT INTO AFASTAMENTOS (code, nome, tempo, funcao) VALUES (2, 'pedro', 4, 'contador');

III - INSERT INTO AFASTAMENTOS

SELECT matr, nome, salario, funcao

FROM EMPREGADOS

WHERE funcao = 'indefinido';

IV - INSERT INTO AFASTAMENTOS VALUES (3, 'maria',

3000, 'gerente', 1), (4, 'carla', 1500, 'auxiliar', 2).


Quais comandos executam sem falhas?

Alternativas
Comentários
  • I. INCORRETA, faltou inserirmos os valores da coluna 'função' visto que ela é NOT NULL então deve ser preenchida OBRIGATORIAMENTE;

     

    II. CORRETA

     

    III.  INCORRETA, quando fizemos uma INSERÇÃO através de um SELECT, o número de colunas retornada pelo SELECT deve ser o mesmo número de colunas onde iremos inserir os dados, entretanto notem que o select RETORNA 4 columas, mas a tabela AFASTAMENTOS possui 5 colunas.

    Obs: mesmo que a última coluna não possua NOT NULL, como é o caso da questão, o número de COLUNAS DEVEM SER IGUAIS.

     

    IV. INCORRETA.

             DESABAFO: não curto bancas assim como esta que em vez de testar se o candidadto possui conhecimento do conteúdo, ela coloca uma CASCA DE BANANA TROCANDO O PONTO E VIRGULA POR PONTO FINAL para indicar o termino da inserção

     

    GABARITO ALTERNATIVA B