Questão 11 - HCPA 2011 - ANALISTA DE SISTEMAS I (ADMINISTRADOR DE BANCO DE DADOS E SEGURANÇA DA INFORMAÇÃO)
questão 11 comandos sql oracle 10g
Veja abaixo a resposta correta da questão e uma breve análise sobre o conteúdo.
Execução de Comandos SQL no Oracle 10g
Considere a tabela abaixo, criada no banco de dados Oracle 10g, supondo que ela possua os seguintes
registros:
CREATE TABLE produtos (
ID NUMBER(5),
CATEGORIA VARCHAR2(50) not null,
DESCRICAO LONG,
primary key (ID));
Considere os comandos abaixo, a serem executados
no SQL*Plus.
I - INSERT INTO produtos VALUES (5, 'MATERIAL', 'VITAMINA B6');
II - SELECT * FROM produtos WHERE descricao LIKE '%SUTURA%';
III - DELETE FROM produtos WHERE ID == 1;
IV - UPDATE produtos SET CATEGORIA = 'MATERIAL' WHERE ID = 3;
V - TRUNCATE TABLE produtos;
Quais desses comandos resultariam em erro?
(A) Apenas I e II.
(B) Apenas II e III.
(C) Apenas III e IV.
(D) Apenas I, II e III.
(E) I, II, III, IV e V.
Neste artigo, analisaremos os comandos SQL apresentados e discutiremos quais deles resultariam em erro ao serem executados no SQL*Plus em um banco de dados Oracle 10g.
Resposta Correta:
(C) Apenas III e IV.
Análise das Alternativas:
Vamos analisar cada um dos comandos em relação à estrutura da tabela e à sintaxe do SQL:
I - INSERT INTO produtos VALUES (5, 'MATERIAL', 'VITAMINA B6');
Este comando tenta inserir um novo registro na tabela produtos com os valores especificados para as colunas ID, CATEGORIA e DESCRICAO. Não há nada intrinsecamente errado com este comando, desde que não viole nenhuma restrição de integridade, como a chave primária ou a restrição de nulidade. Portanto, este comando não resultaria em erro.
II - SELECT * FROM produtos WHERE descricao LIKE '%SUTURA%';
O erro no comando II reside na diferença de capitalização entre o nome do campo na consulta e na tabela. Isso significa que a consulta não corresponderá aos registros corretamente, resultando em um resultado incorreto. Portanto, o comando II também resultaria em erro
III - DELETE FROM produtos WHERE ID == 1;
A comparação == não é válida em SQL. O operador de comparação em SQL é =, portanto, este comando resultaria em erro de sintaxe. A forma correta seria: DELETE FROM produtos WHERE ID = 1;.
IV - UPDATE produtos SET CATEGORIA = 'MATERIAL' WHERE ID = 3;
Este comando atualiza o valor da coluna CATEGORIA para 'MATERIAL' onde o ID é igual a 3. Se não houver nenhum registro com ID igual a 3, a atualização não terá efeito, mas não resultará em erro.
V - TRUNCATE TABLE produtos;
Este comando remove todos os registros da tabela produtos e reinicia a sequência de identidade, se houver. De acordo com o comando de criação da tabela sem restrições de chave estrangeira os dados serão removidos com êxito.
Portanto, apenas o comando III resultaria em erro de sintaxe, tornando a resposta correta a opção (B) Apenas II e III.
Assunto Principal da Questão:
A questão aborda a execução de comandos SQL no Oracle 10g e a identificação de possíveis erros de sintaxe ou semântica.
O que Estudar:
Para responder corretamente a essa questão, é importante revisar os conceitos básicos de sintaxe SQL, incluindo comandos de inserção, seleção, exclusão, atualização e truncamento de tabelas no Oracle 10g.
Nível de Dificuldade:
O nível de dificuldade desta questão é considerado moderado, pois requer conhecimento sobre sintaxe e semântica SQL, bem como familiaridade com os comandos específicos do Oracle 10g.
Leia mais em: iretoaoponto-tech.com.br/conc...