SQL: Manipulando dados com comandos DML Flashcards

1
Q

O que são comandos DML?

A

Comandos DML (Data Manipulation Language) são instruções usadas para atualizar e manter a base de dados, incluindo a criação de tabelas e a manipulação de dados (inserir, alterar e excluir).

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

O que é modelagem relacional?

A

Modelagem relacional é a metodologia utilizada para estruturar dados do mundo real em um banco de dados, definindo tabelas, colunas, chaves primárias e estrangeiras.

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

O que é um banco de dados em relação ao mundo real?

A

Um banco de dados deve representar um “mini mundo”, refletindo ações e processos que ocorrem na vida real.

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

Quais são as três características fundamentais de um banco de dados?

A

1) Representar o aspecto de algo do mundo real;
2) Armazenar uma coleção coerente de dados;
3) Projetado para uma finalidade específica.

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

O que significa “coleção coerente de dados”?

A

Refere-se a dados armazenados de forma organizada e com significado, não dispersos ou aleatórios.

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

Por que cada banco de dados tem um propósito específico?

A

Porque ele é projetado para atender a um grupo de usuários e um conjunto de aplicações que realizam ações específicas de interesse desses usuários.

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

Quais são os três aspectos principais de um banco de dados?

A

Fonte de dados, interação com o mundo real e manipulação e gerenciamento dos dados.

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

O que acontece se um banco de dados não armazenar dados de forma coerente?

A

Ele não pode ser considerado um banco de dados, pois não terá significado ou organização.

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

O que é a análise dos requisitos em um projeto de banco de dados?

A

É o processo de entender as regras de negócio, realizando entrevistas e reuniões para desenhar um modelo fiel à realidade.

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

O que são entidades em um diagrama de entidades e relacionamentos?

A

Entidades são representadas por substantivos e representam objetos ou conceitos do mini mundo que estamos modelando.

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

Como identificamos as relações entre entidades?

A

As relações são identificadas por verbos que descrevem como as entidades interagem entre si.

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

O que é um modelo conceitual?

A

É a representação gráfica do mini mundo do banco de dados, que inclui entidades e seus relacionamentos.

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

O que é cardinalidade em um diagrama de entidades e relacionamentos?

A

Cardinalidade descreve a quantidade de instâncias de uma entidade que podem se relacionar com outra, como 1:N ou N:M.

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

Quais são alguns exemplos de cardinalidade?

A

1:N (um estado pode ter várias cidades), N:M (um cliente pode comprar vários produtos e um produto pode ser vendido para vários clientes).

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

O que representam os quadrados e losangos em um diagrama de entidades e relacionamentos?

A

Quadrados representam entidades e losangos representam os relacionamentos entre essas entidades.

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

O que é um diagrama de entidades e relacionamentos (DER)?

A

É uma representação gráfica que ilustra as entidades, seus relacionamentos e a cardinalidade entre elas em um banco de dados.

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

Como as propriedades das entidades são representadas em um diagrama?

A

As propriedades das entidades são representadas por elipses conectadas às entidades, detalhando características específicas.

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

O que é um diagrama de entidades e relacionamentos?

A

É uma representação visual das entidades, atributos e relacionamentos em um banco de dados.

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

O que significa normalização em um banco de dados?

A

É o processo de organizar os dados para evitar redundâncias e garantir a integridade das informações.

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

Quando devemos transformar um relacionamento em um atributo de uma entidade?

A

Quando as entidades têm uma relação de cardinalidade 1:1 ou 1:N e não estão diretamente relacionadas à transação do processo.

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

Quais são os critérios para decidir se um atributo deve ser uma entidade isolada?

A

Se o atributo possui uma codificação (código ou descritor), ele pode ser uma entidade isolada; caso contrário, é um atributo da entidade principal.

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

O que é uma entidade isolada?

A

É uma entidade que possui um código ou descritor próprio, permitindo que seja modelada separadamente de outras entidades.

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

O que são atributos em uma entidade?

A

Atributos são as propriedades que descrevem as características de uma entidade, como nome, CPF e endereço.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Quais são os tipos de campos que devemos identificar em um banco de dados?
Strings, valores, datas e campos lógicos.
26
Quais perguntas devemos fazer ao analisar um campo de string?
Qual o **tamanho** **máximo** do texto? Aceita **caracteres** **especiais**? Pode ser **nulo**?
27
O que considerar ao analisar um campo de valor?
**Necessidade** de **casas** **decimais**, **ordem** de **grandeza** do número e se precisamos de **valores** **exatos**.
28
Quais aspectos devemos avaliar em campos de data?
**Representação** apenas da **data** ou também de **horas**, **fuso** horário e possibilidade de **valores** **nulos**.
29
Como modelar campos lógicos em bancos que não suportam esse tipo?
Utilizando números inteiros, como **0 e 1**.
30
Como transformar um campo "String" em notação Oracle?
Transformando em "Varchar(n)", onde n é o tamanho máximo permitido.
31
Por que é importante entender os tipos de campos ao modelar um banco de dados?
Para **garantir** que os **dados** sejam **armazenados** corretamente e que as **operações** de **consulta** e **manipulação** sejam **eficientes** e **precisas**.
32
O que deve ser considerado ao definir o campo de nome em uma tabela de clientes?
O **tamanho** **máximo** do nome, a aceitação de **caracteres** **especiais** e se o campo pode ser **nulo**.
33
Como podemos representar um campo lógico em um banco de dados que não suporta esse tipo?
**Modelando** como um número inteiro, onde **0 representa falso** e **1 representa verdadeiro.**
34
Quais informações são importantes ao analisar campos de data em um banco de dados?
Se precisamos apenas da data ou também de horas, se as datas devem estar em um mesmo fuso horário e se podem ter valores nulos.
35
O que é necessário fazer após entender os campos suportados pelo Oracle?
Transformar o esquema relacional em tabelas com a notação específica do Oracle, como definir tipos de dados adequados para cada campo.
36
O que devemos considerar ao trabalhar com textos curtos ou longos em um banco de dados?
Precisamos **definir** o **tamanho** máximo do texto e se ele aceita caracteres especiais, além de considerar a possibilidade de campos vazios.
37
Qual comando SQL é usado para alterar o nome de uma coluna em uma tabela existente?
ALTER TABLE ... RENAME COLUMN
38
Quais são algumas limitações na alteração da estrutura de uma tabela?
**Não** é **possível** **alterar** colunas que já **possuem** **dados**, como mudar um campo de NULL para NOT NULL se houver linhas com valor nulo.
39
Qual é a sintaxe básica para criar uma nova tabela no SQL?
CREATE TABLE nome_tabela (coluna1 tipo NOT NULL, coluna2 tipo NULL, ..., PRIMARY KEY (coluna_chave_primaria))
40
Qual é o tipo de dado usado no Oracle para representar números decimais?
FLOAT
41
Qual comando SQL é usado para atualizar o nome de uma coluna em uma tabela existente?
ALTER TABLE nome_tabela RENAME COLUMN nome_antigo TO nome_novo
42
Qual botão no assistente de criação de tabelas permite visualizar o comando SQL sendo gerado?
O botão "**DDL**".
43
Onde no SQL Developer é possível criar uma nova tabela?
Na janela "Conexões", clicando com o botão direito na pasta "Tabelas" e selecionando "Nova Tabela".
44
Qual é a sintaxe usada pelo assistente para definir a chave primária?
CONSTRAINT nome_da_constraint PRIMARY KEY (nome_do_campo)
45
Qual é a regra para nomear as chaves estrangeiras?
Geralmente usa-se o prefixo "FK_" seguido do nome da tabela relacionada.
46
Em qual tabela são criadas as chaves estrangeiras?
As chaves estrangeiras são criadas na tabela "N" (Vendas) que possui a relação de 1 para N com as outras tabelas (Clientes e Vendedores).
47
Qual é a regra para criar a chave estrangeira entre a tabela de Vendas e a tabela de Vendedores?
ALTER TABLE TABELA_DE_VENDAS ADD CONSTRAINT FK_VENDEDORES FOREIGN KEY (MATRICULA) REFERENCES VENDEDORES (MATRICULA)
48
Por que é importante seguir boas práticas na nomenclatura das chaves estrangeiras?
Para facilitar a **compreensão** e **manutenção** do código do banco de dados.
49
Qual é a diferença entre chave primária e chave estrangeira?
A chave primária é uma **restrição** que garante **unicidade** em uma tabela, enquanto a chave estrangeira cria uma **relação** entre tabelas.
50
Qual é o objetivo de criar chaves estrangeiras no banco de dados?
Garantir a **integridade** referencial entre as tabelas, evitando que sejam inseridos dados inválidos.
51
Qual é a diferença entre uma tabela "1" e uma tabela "N" em um relacionamento?
A tabela "**1**" é a tabela que possui a **chave** **primária**, enquanto a tabela "**N**" é a tabela que possui a **chave** **estrangeira**.
52
Por que o campo CPF na tabela de Vendas é uma chave estrangeira?
Porque o campo CPF na tabela de Vendas faz referência ao campo CPF da tabela de Clientes, estabelecendo uma relação entre as duas tabelas.
53
Qual é a importância de não permitir valores nulos na chave estrangeira?
**Evita** que sejam inseridos **dados** **inválidos** na tabela, pois a chave estrangeira precisa referenciar um valor existente na tabela relacionada.
54
Qual é a diferença entre criar uma chave estrangeira e adicionar uma restrição de chave estrangeira?
Criar uma chave estrangeira é **definir** o **campo** que fará a **ligação** entre as tabelas, enquanto adicionar uma restrição de chave estrangeira é criar a **regra** que **garante** a **integridade** **referencial**.
55
Qual o comando SQL para alterar o nome de uma tabela?
ALTER TABLE "NOME_ANTIGO" RENAME TO "NOVO_NOME"
56
Por que é importante atualizar a árvore de objetos após criar uma tabela?
Porque a árvore **não** é **atualizada** **automaticamente** após a criação da tabela via SQL. É preciso clicar com o botão direito em "Tabelas (Filtrado)" e escolher "Atualizar" (ou usar o atalho Ctrl+R) para que a nova tabela apareça na árvore.
57
Qual a vantagem de alterar o nome da tabela ao invés de recriá-la do zero?
Alterar o nome da tabela é mais simples e rápido do que recriar toda a tabela do zero. Dessa forma, não é necessário refazer todos os comandos SQL que dependem dessa tabela.
58
Qual a diferença entre "dropar" a tabela e alterar o nome da tabela?
Dropar a tabela (usando o comando DROP TABLE) remove completamente a tabela do banco de dados, enquanto alterar o nome (usando ALTER TABLE RENAME) apenas muda o nome da tabela, mantendo a estrutura e os dados.
59
Qual é a sintaxe básica do comando INSERT INTO no Oracle?
INSERT INTO nome_da_tabela (campo1, campo2, campo3, ...) VALUES (valor1, valor2, valor3, ...)
60
Quando você pode omitir a lista de campos no comando INSERT INTO?
Você pode omitir a lista de campos se declarar os valores na mesma ordem em que os campos foram criados na tabela.
61
O que acontece se você inverter a ordem dos valores no comando INSERT INTO?
Se você inverter a ordem dos valores, mas não declarar os nomes dos campos, pode levar a erros se os tipos de dados não forem compatíveis.
62
Como você pode evitar problemas ao inverter a ordem dos valores no INSERT INTO?
Para evitar problemas, declare explicitamente a ordem dos campos ao inserir os valores, mesmo que você tenha que alterar a ordem.
63
Como incluir várias linhas na tabela PRODUTOS de uma só vez?
Utilizando o comando INSERT ALL, seguido da declaração dos campos e valores para cada linha a ser inserida. Finalizando com o comando SELECT * FROM DUAL.
64
Quais são as regras para declarar os valores no comando INSERT INTO?
Campos de texto e datas devem ser declarados entre aspas simples. Campos numéricos (inteiros, números, decimais, flutuantes) devem ser declarados sem aspas.
65
Quais são os requisitos para usar uma tabela origem como fonte para popular a tabela destino?
1) Os nomes dos campos da tabela origem devem ser iguais aos campos da tabela destino. 2) A ordem dos campos na seleção da tabela origem deve respeitar a ordem dos campos na tabela destino.
66
Como resolver o problema de incompatibilidade entre os nomes e a ordem dos campos das tabelas origem e destino?
Utilizar o recurso de alias (AS) no comando SELECT para renomear os campos da tabela origem e ajustar a ordem, de acordo com a estrutura da tabela destino.
67
Qual o comando final para transferir os dados da tabela origem para a tabela destino?
INSERT INTO TABELA_DESTINO SELECT campos_renomeados FROM TABELA_ORIGEM;
68
Qual o erro encontrado ao tentar inserir os dados da tabela origem na tabela destino?
Erro de restrição exclusiva (constraint), indicando que alguma regra de integridade da tabela destino foi violada.
69
Qual a diferença entre inserir linhas individualmente e inserir múltiplas linhas de uma só vez?
Inserir linhas individualmente é mais lento, enquanto inserir múltiplas linhas de uma só vez é mais eficiente e rápido.
70
Qual a estrutura básica do comando para inserir múltiplas linhas de uma só vez?
INSERT ALL INTO TABELA (CAMPOS) VALUES (VALORES) INTO TABELA (CAMPOS) VALUES (VALORES) SELECT * FROM DUAL;
71
Qual a vantagem de usar uma tabela origem para popular a tabela destino?
Permite transferir um grande volume de dados de uma só vez, evitando a necessidade de inserir as linhas individualmente.
72
O que é uma restrição de chave primária?
A restrição de chave primária é uma regra que impede a inserção de valores duplicados no campo ou conjunto de campos que compõem a chave primária de uma tabela.
73
Qual é a importância de se evitar a violação da restrição de chave primária ao inserir dados em uma tabela?
Evitar a violação da restrição de chave primária é crucial para manter a integridade dos dados no banco de dados, pois garante que cada registro seja único e identificável.
74
Como se pode identificar registros que já existem em uma tabela de destino antes de realizar uma inserção?
Pode-se utilizar consultas SQL com INNER JOIN entre a tabela de origem e a tabela de destino para identificar quais registros já existem na tabela de destino.
75
Qual a sintaxe básica do comando UPDATE para alterar o valor de uma coluna?
UPDATE nome_tabela SET nome_coluna = novo_valor WHERE condição;
76
Como podemos alterar múltiplas colunas em uma única instrução UPDATE?
Separando as alterações por vírgula no SET, por exemplo: UPDATE nome_tabela SET coluna1 = valor1, coluna2 = valor2 WHERE condição;
77
Como podemos usar a função REPLACE() para atualizar o conteúdo de uma coluna de texto?
UPDATE nome_tabela SET coluna_texto = REPLACE(coluna_texto, 'texto_antigo', 'texto_novo') WHERE condição;
78
Como realizar uma atualização em lote de múltiplos registros com o mesmo valor?
UPDATE PRODUTOS SET PRECO_LISTA = PRECO_LISTA * 1.10 WHERE SABOR = 'sabor_desejado'.
79
Qual a função do WHERE no comando UPDATE?
O WHERE serve para especificar quais linhas da tabela serão atualizadas, filtrando com base em uma condição.
80
Como podemos aplicar uma fórmula matemática no comando UPDATE para reajustar o preço de um produto?
UPDATE nome_tabela SET preco_coluna = preco_coluna * 1.10 WHERE condição;
81
Qual a mensagem exibida no resultado da consulta após a execução de um comando UPDATE?
Após a execução de um UPDATE, a mensagem exibida é "X linha(s) atualizada(s)", informando quantas linhas foram afetadas pela atualização.
82
O que é um comando DML?
DML (Data Manipulation Language) são comandos SQL usados para manipular dados em um banco de dados, como INSERT, UPDATE e DELETE.
83
Como a função SUBSTR pode ajudar a igualar campos com diferentes formatos?
A função SUBSTR permite extrair uma substring de um campo, facilitando a comparação entre campos com diferentes quantidades de dígitos.
84
Como funciona o comando EXISTS?
O EXISTS verifica se existe um registro na tabela TABELA_DE_VENDEDORES_FONTE com a mesma matrícula (SUBSTR(TVF.MATRICULA, 3, 3)) que a tabela VENDEDORES. Dessa forma, traz apenas os vendedores que possuem correspondência na tabela fonte.
85
Qual a estrutura básica do comando EXISTS?
SELECT ... FROM tabela1 WHERE EXISTS (SELECT 1 FROM tabela2 WHERE condição)
86
Qual a diferença entre o comando EXISTS e o comando IN?
O EXISTS verifica se existe um registro na tabela2 que satisfaz a condição, enquanto o IN verifica se o valor está presente na lista de valores especificada.
87
Como é possível usar o comando EXISTS dentro de um UPDATE?
Pode-se usar o EXISTS dentro de um UPDATE para sincronizar os dados entre as tabelas, atualizando a tabela VENDEDORES com base na tabela TABELA_DE_VENDEDORES_FONTE.
88
Qual a vantagem de usar o EXISTS em vez do INNER JOIN?
O EXISTS é mais eficiente quando se trabalha com grandes volumes de dados, pois não precisa carregar toda a tabela na memória para fazer a comparação.
89
Qual a desvantagem de usar o EXISTS em vez do INNER JOIN?
O EXISTS pode ser mais lento do que o INNER JOIN em alguns casos, especialmente quando a condição de comparação é simples e não envolve muitos cálculos.
90
Como podemos usar o comando EXISTS dentro de um UPDATE para sincronizar dados entre duas tabelas?
Declarando a tabela a ser atualizada (no exemplo, "VENDEDORES") na query principal, e usando a condição de EXISTS na subquery para identificar os registros que existem em ambas as tabelas.
91
Qual a importância do filtro WHERE EXISTS no comando UPDATE?
Garante que apenas os registros existentes em ambas as tabelas serão atualizados.
92
Qual o comando SQL utilizado para excluir linhas de uma tabela?
DELETE FROM nome_da_tabela WHERE condição
93
Como identificar registros que existem em uma tabela, mas não existem em outra?
Usar um LEFT JOIN e verificar os registros onde o campo da tabela da direita é nulo.
93
Qual a diferença entre SUBSTR e LIKE no SQL?
SUBSTR é uma função que extrai uma substring de uma string, enquanto LIKE é um operador que permite fazer comparações de padrões em strings.
94
Qual a diferença entre DELETE e TRUNCATE no SQL?
DELETE exclui linhas específicas de uma tabela, enquanto TRUNCATE exclui todos os registros da tabela, resetando o contador de chave primária.
95
Como identificar registros duplicados em uma tabela?
Usando uma consulta com GROUP BY e HAVING para encontrar grupos com mais de um registro.
96
Qual a diferença entre DELETE e DROP TABLE no SQL?
DELETE exclui linhas de uma tabela, enquanto DROP TABLE exclui a própria tabela do banco de dados.
97
O que são transações em um banco de dados?
Uma transação é um processo que se inicia quando fazemos uma conexão com o banco de dados e termina quando saímos dessa conexão ou executamos o comando COMMIT.
98
O que acontece com as modificações feitas durante uma transação?
Enquanto a transação não é finalizada com COMMIT, as modificações feitas no banco de dados só são visíveis para o usuário que as realizou, não sendo refletidas para outros usuários.
99
O que faz o comando COMMIT?
O comando COMMIT encerra a transação atual e inicia uma nova, confirmando todas as alterações realizadas durante a transação. Após o COMMIT, as modificações ficam visíveis para todos os outros usuários do banco de dados.
100
É possível desfazer operações realizadas durante uma transação?
Sim, é possível desfazer operações realizadas durante uma transação, antes de executar o COMMIT, o que será abordado na próxima aula.
101
O que acontece quando executamos o comando COMMIT?
O COMMIT encerra a transação atual e inicia uma nova automaticamente, sem a necessidade de desconectar e reconectar o SQL Developer.
102
Qual é o objetivo do conceito de transação no Oracle Database?
O conceito de transação permite que as modificações feitas no banco de dados sejam visíveis apenas para o usuário que as realizou, até que elas sejam confirmadas com COMMIT.
103
Quais são as duas principais etapas de uma transação no Oracle Database?
As duas principais etapas são: 1) Início da transação, quando fazemos a conexão com o banco de dados; 2) Finalização da transação, quando executamos o comando COMMIT.
104
O que acontece com as modificações feitas durante uma transação antes de executar o COMMIT?
Enquanto a transação não é finalizada com COMMIT, as modificações feitas no banco de dados só são visíveis para o usuário que as realizou, não sendo refletidas para outros usuários.
105
O que é o comando ROLLBACK no Oracle Database?
O comando ROLLBACK desfaz as alterações feitas desde o último COMMIT, voltando o banco de dados ao estado anterior.
106
Qual a importância de usar COMMIT ao trabalhar com o Oracle Database?
É importante usar COMMIT sempre que tiver certeza das alterações realizadas, pois ao fechar o SQL Developer ele pergunta se você quer COMMIT ou ROLLBACK.
107
Qual a diferença entre COMMIT e ROLLBACK?
COMMIT confirma as alterações, tornando-as permanentes. ROLLBACK desfaz as alterações desde o último COMMIT, voltando o banco de dados ao estado anterior.
108
O que são campos de autoincremento no Oracle?
São campos chamados de IDENTITY, que devem ser do tipo inteiro e têm seus valores incrementados automaticamente a cada novo registro inserido.
109
Como se cria um campo de autoincremento em uma tabela Oracle?
Ao criar a tabela, deve-se usar a cláusula "GENERATED BY DEFAULT ON NULL AS IDENTITY" após o tipo do campo, por exemplo: "ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY".
110
É necessário informar o valor do campo de autoincremento ao inserir um novo registro?
Não, pode-se omitir o valor do campo de autoincremento no comando INSERT. O Oracle irá gerar automaticamente o próximo valor.
111
O que acontece se um registro com campo de autoincremento for excluído?
O próximo registro inserido terá o ID do último registro mais 1, ignorando o ID do registro excluído.
112
É possível "forçar" um valor diferente no campo de autoincremento?
Sim, é possível, mas não é recomendado, pois pode causar problemas no controle interno do autoincremento.
113
Informar o campo de autoincremento como NULL é o mesmo que o quê?
Informar o campo como NULL é o mesmo que omiti-lo, o Oracle irá gerar o próximo valor automaticamente.
114
Qual é a principal característica de um campo de autoincremento?
O campo de autoincremento (IDENTITY) sempre deve estar associado a um tipo de dado inteiro.
115
Quantos campos de autoincremento (IDENTITY) podem existir em uma tabela Oracle?
Apenas um campo de autoincremento (IDENTITY) pode existir por tabela no Oracle.
116
Como podemos definir valores padrão para os campos de uma tabela no Oracle?
Utilizando a cláusula DEFAULT ON NULL seguida do valor padrão que deve ser usado caso o campo não receba um valor no INSERT.
117
Qual a diferença entre um campo marcado como NOT NULL e um campo com valor padrão?
Um campo NOT NULL não aceita valores nulos, enquanto um campo com valor padrão irá receber o valor padrão definido caso não seja informado um valor no INSERT.
118
Qual o único campo que não pode ficar sem valor em uma inserção?
O único campo que não pode ficar sem valor é aquele marcado como NOT NULL, pois esse tipo de campo não aceita valores nulos.
119
Qual a principal vantagem de se definir valores padrão para os campos de uma tabela?
Definir valores padrão ajuda a garantir a integridade dos dados e a padronização das informações inseridas na tabela, evitando que campos fiquem com valores nulos quando não informados.
120
Qual a diferença entre um campo NOT NULL e um campo com valor padrão?
Um campo NOT NULL não aceita valores nulos, enquanto um campo com valor padrão recebe o valor padrão definido caso não seja informado um valor no INSERT.
121
Qual a sintaxe para criar uma tabela com valores padrão nos campos?
CREATE TABLE TAB_PADRAO ( ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY, DESCRITOR VARCHAR(20) NOT NULL, ENDERECO VARCHAR(100) NULL, CIDADE VARCHAR(50) DEFAULT ON NULL 'Rio de Janeiro', DATA_CRIACAO DATE DEFAULT ON NULL SYSDATE, PRIMARY KEY (ID) );
122
Como definir um valor padrão para o campo CIDADE na criação da tabela?
CIDADE VARCHAR(50) DEFAULT ON NULL 'Rio de Janeiro'
123
O que é uma trigger?
Uma trigger é um tipo especial de procedimento armazenado no banco de dados que é executado automaticamente quando um evento (insert, update ou delete) ocorre em uma tabela.
124
Quando uma trigger pode ser executada?
As triggers podem ser executadas antes (BEFORE) ou depois (AFTER) do evento ocorrer na tabela.
125
Como uma trigger pode acessar os dados envolvidos no evento que a acionou?
Dentro da definição da trigger, é possível acessar os dados novos (inserted) e antigos (deleted) usando as pseudotabelas especiais NEW e OLD.
126
Quais são as principais limitações ou cuidados no uso de triggers?
Triggers podem tornar o código do banco de dados mais complexo e difícil de manter, além de poderem causar problemas de desempenho se não forem bem projetadas.
127
Como as triggers se relacionam com a atomicidade das transações no banco de dados?
As triggers fazem parte da transação que as acionou, ou seja, se a transação principal for revertida, a ação da trigger também será revertida.
128
Qual a diferença entre uma trigger BEFORE e uma trigger AFTER?
Uma trigger BEFORE é executada antes do evento ocorrer na tabela, enquanto uma trigger AFTER é executada após o evento ocorrer.
129
Como uma trigger pode acessar os dados da linha que está sendo inserida, atualizada ou excluída?
Dentro da trigger, é possível acessar os dados da linha envolvida no evento usando as pseudotabelas NEW (para insert e update) e OLD (para update e delete).
130
Pergunta: Qual a sintaxe básica para criar uma TRIGGER?
CREATE TRIGGER nome_da_trigger AFTER INSERT ON nome_da_tabela BEGIN -- Comandos SQL a serem executados END; CREATE TRIGGER: Palavra-chave para criar uma nova TRIGGER. nome_da_trigger: Nome escolhido para a TRIGGER. AFTER INSERT ON nome_da_tabela: Indica que a TRIGGER será executada após a inserção de dados na tabela especificada. BEGIN e END: Delimitam o bloco de comandos SQL a serem executados pela TRIGGER.
131
Qual é a principal limitação da linguagem SQL?
A linguagem SQL não possui uma estrutura de linguagem de programação, com comandos de repetição como while's, if's ou for's.
132
O que as empresas de software fazem para suprir a limitação da linguagem SQL?
As empresas embutem uma linguagem estruturada dentro do banco de dados relacional, como o PL/SQL da Oracle.
133
Quais são os dois tipos principais de triggers?
Triggers DDL (Data Definition Language) e Triggers DML (Data Manipulation Language).
134
O que diferencia triggers de linha de triggers de nível de declaração?
Triggers de linha são acionados para cada linha afetada, enquanto triggers de nível de declaração são acionados uma vez por operação, independentemente do número de linhas afetadas.
135
Qual é a sintaxe básica para criar um trigger no Oracle?
CREATE [OR REPLACE] TRIGGER nome_do_trigger BEFORE|AFTER INSERT|UPDATE|DELETE ON nome_da_tabela FOR EACH ROW BEGIN -- código PL/SQL END;
136
Quais são os tipos de triggers disponíveis no Oracle?
Triggers DDL, DML, e INSTEAD OF (usados principalmente em views).
137
O que significa um trigger "BEFORE" no Oracle?
Um trigger "BEFORE" é executado antes da operação de inserção, atualização ou exclusão ser realizada na tabela.
138
Como desabilitar um trigger no Oracle?
Usando o comando ALTER TRIGGER nome_do_trigger DISABLE;
139
O que é um trigger de nível de tabela no Oracle?
Um trigger que é executado uma vez para toda a operação (INSERT, UPDATE ou DELETE), independentemente do número de linhas afetadas.
140
Como um trigger pode afetar o desempenho do banco de dados?
Triggers podem aumentar a carga de processamento, especialmente se contiverem operações complexas ou forem acionados com frequência, impactando a performance.
141
Qual é a diferença entre triggers "AFTER" e "BEFORE" no Oracle?
Triggers "AFTER" são executados após a operação de banco de dados, enquanto triggers "BEFORE" são executados antes da operação ser realizada.
142
Como registrar mensagens de erro em um trigger no Oracle?
Usando a função RAISE_APPLICATION_ERROR para gerar mensagens personalizadas de erro durante a execução do trigger.
143
O que é um trigger recursivo no Oracle?
Um trigger recursivo é um trigger que chama a si mesmo, podendo causar loops infinitos se não for controlado adequadamente.
144
Como evitar loops infinitos em triggers no Oracle?
Usando variáveis de controle ou condições que verifiquem se a operação já foi realizada antes de executar o código do trigger.
145
O que acontece se um trigger falhar no Oracle?
Se um trigger falhar, a operação que o acionou será revertida e nenhuma alteração será feita no banco de dados.
146
Qual é a função do comando ENABLE em relação a triggers no Oracle?
O comando ENABLE reativa um trigger que foi desativado, permitindo que ele volte a ser acionado em operações de banco de dados.
147
Como visualizar todos os triggers existentes em um esquema no Oracle?
Usando a consulta SQL: SELECT * FROM user_triggers; para listar todos os triggers do esquema atual.
148
O que são linguagens internas em SGBDs?
Linguagens internas são extensões da linguagem SQL utilizadas para definir, manipular, controlar e acessar dados dentro dos SGBDs, permitindo operações complexas como lógica condicional e loops.
149
Quais são os principais tipos de linguagens internas em SGBDs?
As principais linguagens internas incluem: PL/SQL (Oracle) T-SQL (SQL Server) PL/pgSQL (PostgreSQL)
150
Qual a diferença entre linguagens de consulta e linguagens procedurais?
Linguagens de Consulta: Declarativas, onde o usuário especifica o que deseja sem se preocupar com o como (ex: SQL). Linguagens Procedurais: Procedurais, onde o usuário fornece um passo a passo de como alcançar o resultado desejado (ex: PL/SQL, T-SQL).
151
Quais são as principais operações suportadas pelas linguagens internas de SGBDs?
CRUD (Create, Read, Update, Delete) Definição de Dados (criação e modificação de tabelas) Controle de Transações Procedimentos Armazenados e Funções Controle de Acesso
152
O que é PL/SQL?
PL/SQL (Procedural Language/Structured Query Language) é a linguagem interna do Oracle, projetada para permitir programação procedural dentro do banco de dados, combinando SQL com recursos de programação.
153
Quais são as seções principais de um bloco PL/SQL?
Um bloco PL/SQL é dividido em três seções principais: DECLARE: Área para declarar variáveis e constantes. BEGIN: Instruções que são executadas. EXCEPTION: Tratamento de exceções que podem ocorrer durante a execução.
154
Como criar uma procedure em PL/SQL?
CREATE PROCEDURE nome_da_procedure IS -- Área de declaração das variáveis BEGIN -- Instruções executáveis END;
155
Qual é a finalidade dos cursores em PL/SQL?
Os cursores em PL/SQL permitem o controle de conjuntos de resultados de consultas SQL, permitindo que os desenvolvedores processem linhas de dados uma a uma, facilitando operações complexas.
156
O que são variáveis em PL/SQL e como são declaradas?
Variáveis em PL/SQL são usadas para armazenar dados temporariamente. Elas são declaradas na seção DECLARE de um bloco PL/SQL, utilizando a sintaxe: variavel tipo_de_dado;
157
O que são exceções em PL/SQL e como são tratadas?
Exceções em PL/SQL são erros que ocorrem durante a execução de um bloco. Elas são tratadas na seção EXCEPTION, onde se pode definir ações específicas para diferentes tipos de erros: EXCEPTION WHEN nome_da_excecao THEN -- Ações a serem tomadas
158
Como se utiliza um cursor explícito em PL/SQL?
Um cursor explícito é declarado e controlado pelo desenvolvedor. A sintaxe básica inclui a declaração do cursor, abertura, recuperação de dados e fechamento: DECLARE CURSOR nome_cursor IS SELECT coluna FROM tabela; BEGIN OPEN nome_cursor; FETCH nome_cursor INTO variavel; CLOSE nome_cursor; END;
159
O que é um cursor implícito em PL/SQL?
Um cursor implícito é automaticamente criado pelo Oracle para executar instruções SQL que não retornam um conjunto de resultados, como INSERT, UPDATE ou DELETE. Ele não requer declaração explícita.
160
O que são tipos de dados complexos em PL/SQL?
Tipos de dados complexos em PL/SQL incluem registros (similar a structs em outras linguagens), tabelas associativas e tipos de objetos, permitindo armazenar e manipular dados estruturados de forma mais flexível.