DML Flashcards

(54 cards)

1
Q

Para que serve o comando INSERT no Oracle?

A

Para inserir novos registros (linhas) em uma tabela do banco de dados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qual a sintaxe básica do comando INSERT?

A

INSERT INTO nome_da_tabela (coluna1, coluna2, …)
VALUES (valor1, valor2, …);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que acontece se omitirmos a lista de colunas no INSERT?

A

O Oracle assume que os valores seguem a ordem de todas as colunas da tabela.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Como inserir um valor nulo em uma coluna usando INSERT?

A

INSERT INTO tabela (coluna1, coluna2) VALUES (‘João’, NULL);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que acontece se o número de colunas e valores no INSERT não corresponder?

A

O Oracle retorna um erro: ORA-00947: not enough values.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Como inserir dados em múltiplas linhas com um único comando INSERT (Oracle 19c+)?

A

INSERT ALL
INTO tabela (col1, col2) VALUES (v1, v2)
INTO tabela (col1, col2) VALUES (v3, v4)
SELECT * FROM dual;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Podemos usar INSERT com SELECT? Para quê?

A

INSERT INTO nova_tabela (col1, col2)
SELECT col1, col2 FROM outra_tabela;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Durante a sua rotina de trabalho, Fátima recebeu uma demanda de cadastrar diretamente na tabela TB_VENDEDORES no banco de dados.

Matrícula - 00233
Nome: Joao Geraldo da Fonseca
Data da admissão: 01/12/2015
Comissão: 10%

Ajude-a a incluir um novo vendedor com as características listadas acima.

A

INSERT INTO TB_VENDEDORES (
MATRICULA, NOME, DATA_ADMISSAO, PERCENTUAL_COMISSAO
) VALUES (
‘00233’,’Joao Geraldo da Fonseca’,’01/12/2015’, 0.10
);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

André, integrante da equipe de Fátima também recebeu uma demanda para cadastrar 4 pessoas vendedoras utilizando SQL. Como seria esse código de cadastro?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Para que serve o comando UPDATE no Oracle?

A

Para alterar os valores de uma ou mais colunas em registros existentes de uma tabela.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qual a sintaxe básica do comando UPDATE?

A

UPDATE nome_da_tabela
SET coluna1 = valor1, coluna2 = valor2
WHERE condição;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

O que acontece se o UPDATE for executado sem cláusula WHERE?

A

Todos os registros da tabela serão atualizados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Como atualizar apenas um registro específico com UPDATE?

A

Use uma cláusula WHERE restritiva, por exemplo:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Podemos atualizar múltiplas colunas de uma vez?

A

Sim. Basta separar com vírgulas:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

O que acontece se a condição do WHERE não encontrar nenhuma linha?

A

Nenhuma linha será atualizada e o Oracle não mostrará erro.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Podemos usar subqueries no SET de um UPDATE?

A

Sim

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Como garantir segurança ao usar UPDATE?

A

Sempre use a cláusula WHERE. De preferência, teste a condição com um SELECT antes de executar o UPDATE.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

As comissões em negrito são as que devem ser alteradas.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Para que serve o comando DELETE no Oracle?

A

Para remover uma ou mais linhas de uma tabela, conforme uma condição especificada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Qual a sintaxe básica do DELETE?

A

DELETE FROM nome_da_tabela
WHERE condição;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

O que acontece se o DELETE for executado sem cláusula WHERE?

A

Todas as linhas da tabela serão excluídas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Como excluir apenas um registro específico com DELETE?

A

Use uma cláusula WHERE restritiva. Exemplo:

23
Q

O DELETE remove a estrutura da tabela?

A

Não. Ele remove apenas os dados (linhas), mas a estrutura da tabela continua existindo.

24
Q

Como saber quantas linhas foram deletadas após o comando?

A

O Oracle retorna a quantidade de linhas afetadas logo após a execução do comando.

25
Podemos deletar dados de múltiplas tabelas com um único DELETE?
Não diretamente. O DELETE atua em uma tabela por vez, mas pode usar WHERE com subqueries para relacionamentos.
26
Como evitar exclusões indesejadas com DELETE?
Sempre use a cláusula WHERE com muito cuidado. Faça um SELECT com a mesma condição antes de executar o DELETE.
27
Qual a diferença entre DELETE e TRUNCATE?
DELETE: pode usar WHERE, é transacionável (pode fazer ROLLBACK). TRUNCATE: remove todos os dados sem WHERE, é mais rápido, mas não permite ROLLBACK.
28
A vendedora de matrícula 00400 pediu demissão, logo precisamos excluí-la da base de dados. Como podemos fazer para realizar essa exclusão?
29
Como inserir a data 24-JUN-2025 em um campo DATE usando a formatação padrão do servidor?
30
Qual função converte uma string para DATE segundo um formato explícito?
TO_DATE(string, formato)
31
Como inserir data e hora (24-JUN-2025 15:30) em um campo DATE?
32
Qual formato usa hora em formato 24 h dentro do TO_DATE?
HH24:MI[:SS]
33
Como inserir a data atual em um campo DATE?
INSERT INTO tabela (campo_data) VALUES (SYSDATE);
34
O que acontece se o formato da string não coincidir com o segundo argumento do TO_DATE?
O Oracle gera o erro ORA-01861: literal does not match format string.
35
Como inserir múltiplas colunas, incluindo uma data, em um único INSERT?
36
Como inserir datas para fusos diferentes usando TIMESTAMP WITH TIME ZONE?
37
Nossa empresa é multinacional, e surgiu a necessidade de incluir duas pessoas vendedoras da filial americana, ou seja, do exterior, cujas datas de admissão vieram no padrão americano. Além disso, também será necessário incluir duas pessoas vendedoras da filial brasileira. Sabendo que Jonh e Katy são vendedores(as) da filial americana e Rodrigo e Patricia são da filial brasileira, como podemos inseri-los no banco de dados?
38
O que acontece se o INSERT não especificar a lista de colunas?
A ordem dos valores deve seguir exatamente a ordem física das colunas na tabela; caso contrário, ocorre erro de tipo/dados.
39
Podemos alterar a ordem dos valores quando listamos as colunas?
Sim. A ordem dos valores deve corresponder à ordem das colunas listadas, não à ordem original da tabela.
40
O que acontece se um valor estiver fora de ordem em relação à coluna correspondente?
O Oracle tenta converter; se incompatível, gera erro de tipo (ORA-01722: invalid number, por exemplo).
41
Como inserir apenas algumas colunas deixando as demais com valor padrão ou NULL?
INSERT INTO tabela (col1, col3) VALUES (v1, v3); As colunas não listadas assumem DEFAULT ou NULL.
42
O que o Oracle faz se houver mais valores que colunas listadas?
Retorna erro ORA-00913: too many values.
43
E se houver menos valores que colunas listadas?
Retorna erro ORA-00947: not enough values.
44
É possível usar expressões ou sub-consultas como valores no INSERT?
Sim, desde que a ordem (ou alias) corresponda às colunas listadas. Ex.:
45
Como inserir texto (VARCHAR2, CHAR) em um campo?
Coloque o valor entre aspas simples: INSERT INTO clientes (nome) VALUES ('Maria');
46
Como inserir um número (NUMBER, INTEGER) em um campo?
Insira sem aspas: INSERT INTO produtos (preco) VALUES (199.99);
47
Como inserir datas (DATE) no Oracle usando INSERT?
Use a função TO_DATE() com formato explícito: INSERT INTO vendas (data_venda) VALUES (TO_DATE('25/06/2025', 'DD/MM/YYYY'));
48
Como inserir data e hora (TIMESTAMP) no Oracle?
49
Como inserir valores NULL em qualquer tipo de campo?
INSERT INTO clientes (telefone) VALUES (NULL);
50
Como inserir valores lógicos (booleanos) no Oracle?
O Oracle não possui tipo BOOLEAN diretamente. Usa-se NUMBER(1), com: 1 para verdadeiro 0 para falso
51
Como inserir valores em campos CLOB (texto longo)?
Use strings comuns no INSERT, ou bind variables em scripts maiores: INSERT INTO artigos (conteudo) VALUES ('Texto muito longo...');
52
Como inserir dados em campos BLOB (binários)?
Normalmente via linguagem de programação ou SQL Loader. Exemplo com EMPTY_BLOB(): INSERT INTO imagens (foto) VALUES (EMPTY_BLOB());
53
Como inserir dados Unicode (ex: japonês, árabe)?
Use N antes da string, e campos NVARCHAR2 ou NCHAR: INSERT INTO mensagens (texto) VALUES (N'こんにちは');
54