ORACLE

 

INSERÇÃO DE DADOS

 

Para se utilizar a DML (Data Manipulation Language) no Oracle, é utilizada por meio da linguagem SQL. Existe uma gama de operações para a manipulação de dados, porém nesse material serão abordados apenas quatro: INSERT, UPDATE, DELETE, SELECT.


Uma das funções da declaração INSERT INTO no Oracle é permitir que seja possível inserir dados em uma tabela de banco de dados.

 

Abaixo, contém a sintaxe da inserção de uma tabela genérica:

 
INSERT INTO tabela(coluna1, coluna2, ... coluna_n)
  VALUES(expressao1,expressao2, ... expressao_n);

tabela: É o nome da tabela utilizada para inserir os dados.

 

coluna1, coluna2, ... coluna_n: São as colunas da tabela para inserir valores.

 

expressao2, expressao2, ... expressao_n: São os valores a serem atríbudos na tabela. Então, a coluna1 será atribuído o valor contido na expressao1, a coluna2 será atribuído o valor contido na expressao2 e assim por diante.

 

Para demonstrar, será criada a tabela FORNECEDOR na base de dados, utilizando a seguinte instrução em SQL:


CREATE TABLE FORNECEDOR
(
  codigoFornecedor NUMBER(4) NOT NULL,
  nomeFornecedor VARCHAR2(30) NOT NULL,
  CONSTRAINT PK_FORNECEDOR PRIMARY KEY (codigoFornecedor)
);

Observe a criação da tabela FORNECEDOR conforme mostra a figura abaixo:



Exemplo: Inserção de dados na tabela FORNECEDOR:


INSERT INTO FORNECEDOR(codigoFornecedor, nomeFornecedor)
    VALUES(5000, 'Apple');

Execute o código acima e verifique a inserção na mensagem, conforme mostra a figura:



Dessa forma, esses dados estarão contidos no banco de dados.

 

Inserir múltiplos dados em uma tabela

Para inserir múltiplos dados em uma tabela, a sintaxe da declaração INSERT TABLE é:


INSERT ALL
  INTO tabela (column1, column2, ... column_n) VALUES (expr1, expr2, expr3)
  INTO tabela (column1, column2, ... column_n) VALUES (expr4, expr5 expr6)
  INTO tabela (column1, column2, ... column_n) VALUES (expr7, expr8, expr9)
SELECT * FROM DUAL;

Neste método de inserção, onde se pode inserir múltiplos dados, o APEX restringe para uso somente a utilização das expressões INSERT ALL, INTO e SELECT * FROM DUAL. Esse formato só é válido para as inserções de vários valores na Oracle, diferentemente da aplicação do mesmo método nos SGBD's Postgree e MySQL.

O INSERT ALL é uma instrução que determina que cada valor expr1, expr2, .. exp_n deve ser inserido a cada linha retornada pela subconsulta. Sendo cada linha refenciada pela cláusula INTO.

A tabela DUAL é uma tabela especial de uma linha criada automaticamente pelo banco de dados. Bastante utilizada por desenvolvedores, DBAs e pela própria Oracle. No Oracle ela contém uma única coluna chamada DUMMY e possui um valor de 'X', e tem como vantagem retornar apenas um valor.

Dessa forma, como a consulta da tabela DUAL retorna apenas uma única linha, a mesma pode ser definida como a subconsulta requisitada pela cláusula INSERT ALL.


Exemplo: Inserindo vários valores na tabela FORNECEDOR:


INSERT ALL
  INTO FORNECEDOR (codigoFornecedor, nomeFornecedor) VALUES (1000, 'IBM')
  INTO FORNECEDOR (codigoFornecedor, nomeFornecedor) VALUES (2000, 'Microsoft')
  INTO FORNECEDOR (codigoFornecedor, nomeFornecedor) VALUES (3000, 'Google')
SELECT * FROM DUAL;

Execute o código acima e verifique as inserções na mensagem, conforme mostra a figura:



Observe que para inserir vários valores foi necessário acrescentar o trecho "SELECT * FROM DUAL", a instrução SELECT á para fazer consultas nas tabelas e será melhor abordada mais a frente neste material, já a tabela DUAL em poucas palavras é uma tabela que realiza operações com SELECT aonde não é necessário fazer extração de dados em tabelas.

Com isso, a tabela FORNECEDOR terá mais três registros de dados no banco de dados.

 

Para finalizar, insira o código abaixo que verifica a inserção dos quatro registros:


SELECT * FROM FORNECEDOR;




Atividade de Fixação

 

No intuito de fixar a aprendizagem iniciada por meio deste módulo e verificar como está sua compreensão sobre o mesmo, são sugeridos alguns exercícios de fixação para serem resolvidos. Clique no link de exercícios ao lado, pois será por meio dele iniciada a lista de exercícios sobre os conteúdos estudados até este momento. Boa revisão sobre os mesmos!!