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!!