Questões de Concurso
Sobre sql em banco de dados
Foram encontradas 4.687 questões
create table departamento (nm_departamento varchar(20), predio varchar(15), primary key (nm_departamento));
create table professor (cpf varchar(10), titulo varchar(15), nm_professor varchar(99), nm_departamento varchar(20), salario numeric(8,2), primary key (cpf), foreign key (nm_departamento) references departamento);
Assinale a alternativa que NÃO representa uma consulta SQL válida para obter a relação entre nome do professor, seu departamento e o prédio associado ao departamento.
CREATE TRIGGER Yellow ON Red AFTER UPDATE AS RAISEERROR (‘Aviso’, 16, 10);
Esse comando cria um trigger denominado
Considere a tabela EMPREGADOS definida abaixo em SQL.
Create table EMPREGADOS
(CODEMP INT PRIMARY KEY,
NOMEEMP VARCHAR(300) NOT NULL UNIQUE,
FUNCAO INT CHECK(FUNCAO BETWEEN 1 AND 5),
SALARIO FLOAT NOT NULL,
DEPTO INT NOT NULL);
Sobre esta tabela, foi definido um índice primário (codemp – chave primária), e dois índices secundários, um sobre nomeemp, e outro sobre funcao.
Uma pessoa do desenvolvimento reclamou à DBA que algumas de suas consultas sobre essa tabela estavam muito demoradas, e pediu apoio para melhoria do desempenho. A DBA examinou o plano de execução das consultas e, em vez de uma solução sobre o esquema da base de dados, sugeriu a reescrita das consultas.

Qual, dentre as consultas reescritas, melhorou o desempenho da consulta original porque resultou,
no plano de consulta, em uma operação (mais eficiente) sobre um índice?
set transaction isolation level repeatable read; Select max(salario) from funcionarios; Update funcionarios set salario = salario*10 where salario < (select avg(salario) from funcionarios); commit;
Ao definir esse nível de isolamento para sua transação, o programador está sujeito à ocorrência de problemas de acesso concorrente com outras transações. Analise cada assertiva abaixo, assinalando V, se verdadeira, ou F, se falsa.
( ) Leitura suja. ( ) Leitura não repetitiva. ( ) Registro fantasma.
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
(a) SELECT C.sobrenome, C.renda FROM clientes C WHERE C.codc <> ALL (SELECT V.codc FROM vendas V WHERE V.valor > 1000);
(b) SELECT C.sobrenome, C.renda FROM clientes C WHERE NOT EXISTS (SELECT 1 FROM vendas V WHERE V.valor > 1000 and V.codc = C.codc);
Considere as assertivas abaixo sobre a otimização baseada em desaninhamento de subconsultas no Oracle:
I. O recurso fundamental do desaninhamento de subconsultas é a conversão da subconsulta com processamento relacionado em outra equivalente com processamento não relacionado. II. No caso de uma subconsulta ALL, o desaninhamento explora semi-join. III. No caso de uma subconsulta NOT EXISTS, o desaninhamento explora o anti-join.
Quais estão corretas?

Create table ABASTECIMENTO (nbomb int not null, capac int not null, data_hora timestamp not null, placa char(7) not null, descr varchar(50) not null, ano_fab date not null, litros int not null, primary key (nbomb, data_hora));
A DBA analisou essa proposta e observou que não seguia as formas normais. Com base na descrição dos atributos acima, assinale com V, se a dependência funcional é responsável pelo fato da tabela não estar na terceira forma normal, ou com F, em caso contrário.
( ) nbomb, data-hora → capac ( ) nbomb, data-hora → placa ( ) nbomb, data-hora → ano-fab
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:

insert into ESPECIALIDADES values (1,'cardiologia'); insert into ESPECIALIDADES values (2,'oftalmologia'); insert into ESPECIALIDADES values (3,'pediatria'); insert into MEDICOS values (1, 'joao', 1, 'ufrgs'); insert into MEDICOS values (2, 'maria', 1, 'pucrs'); insert into MEDICOS values (3, 'pedro', 2, 'ufsm');
Considere a sequência de comandos SQL abaixo, em que cada comando deve ser considerado uma transação separada:
I. delete from ESPECIALIDADES where nomee = 'pediatria'; II. update ESPECIALIDADES set code = 4 where nomee = 'oftalmologia'; III. delete from ESPECIALIDADES where nomee = 'cardiologia';
Após a execução das transações I, II e III, é possível afirmar que:
• A tabela ESPECIALIDADES tem __________ tupla(s); • Na tabela MEDICOS, no registro em que MEDICOS.codm = 1, o valor do atributo MEDICOS.code é _________; • Na tabela MEDICOS, no registro em que MEDICOS.codm = 3, o valor do atributo MEDICOS.code é _________.
Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho acima.
CREATE NONCLUSTERED INDEX IDX1 ON TAB1 (codcomp, dataInicial) WHERE DataFinal IS NOT NULL;
Sobre isso, analise as assertivas abaixo:
I. Esse comando cria um índice filtrado. II. O índice criado por esse comando contribui à melhoria do desempenho de consultas principalmente quando a condição (DataFinal IS NOT NULL) é observada em um grande número de tuplas dessa tabela. III. O formato de armazenamento primário do índice criado por esse comando é columnstore.
Quais estão corretas?

UPDATE AREA SET ID_AREA_SUPERIOR = 5 WHERE ID_AREA_SUPERIOR BETWEEN 0 AND 3;

SELECT COUNT(ID) FROM AREA WHERE NOME LIKE 'D%';

I. A estratégia de modificação de consulta altera a consulta da visão em uma consulta na tabela base. A desvantagem é que pode ser ineficiente para visões com consultas complexas, que são demoradas de serem executadas. II. A materialização de visão cria fisicamente uma tabela temporária quando a visão é consultada pela primeira vez e mantém essa tabela com a suposição de que outras consultas à visão acontecerão em seguida. III. Na atualização incremental, pode-se determinar quais novas tuplas devem ser inseridas, excluídas ou modificadas em uma visão materializada quando uma atualização é realizada na tabela base. IV. Uma atualização em uma visão definida sobre uma única tabela com funções de agregação pode ser mapeada para uma atualização direta sobre a tabela base.
Quais estão corretas?

No código acima, são mostrados os comandos necessários para: