Oracle PL / SQL Insert, Update, Delete & Selecione em (exemplo)

Índice:

Anonim

Neste tutorial, aprenderemos como usar SQL em PL / SQL. O SQL é o componente real que cuida da busca e atualização dos dados no banco de dados, enquanto o PL / SQL é o componente que processa esses dados. Além disso, neste artigo, também discutiremos como combinar o SQL dentro do bloco PL / SQL.

Neste tutorial, você aprenderá-

  • Inserção de Dados
  • Atualização de dados
  • Exclusão de dados
  • Seleção de Dados

Transações DML em PL / SQL

DML significa Linguagem de Manipulação de Dados . Essas instruções são usadas principalmente para realizar a atividade de manipulação. Ele lida com as operações abaixo.

  • Inserção de Dados
  • Atualização de dados
  • Exclusão de dados
  • Seleção de Dados

Em PL / SQL, podemos fazer a manipulação de dados apenas usando os comandos SQL.

Inserção de Dados

Em PL / SQL, podemos inserir os dados em qualquer tabela usando o comando SQL INSERT INTO. Este comando tomará o nome da tabela, a coluna da tabela e os valores da coluna como entrada e inserirá o valor na tabela base.

O comando INSERT também pode obter os valores diretamente de outra tabela usando a instrução 'SELECT' em vez de fornecer os valores para cada coluna. Por meio da instrução 'SELECT', podemos inserir quantas linhas a tabela base contiver.

Sintaxe:

BEGININSERT INTO 
(,,… )VALUES(,… :);END;
  • A sintaxe acima mostra o comando INSERT INTO. O nome e os valores da tabela são campos obrigatórios, enquanto os nomes das colunas não são obrigatórios se as instruções de inserção tiverem valores para todas as colunas da tabela.
  • A palavra-chave 'VALUES' é obrigatória se os valores forem fornecidos separadamente, conforme mostrado acima.

Sintaxe:

BEGININSERT INTO 
(,,… ,)SELECT ,,…  FROM 
;END;
  • A sintaxe acima mostra o comando INSERT INTO que obtém os valores diretamente de usando o comando SELECT.
  • A palavra-chave 'VALUES' não deve estar presente neste caso, pois os valores não são fornecidos separadamente.

Atualização de dados

A atualização de dados significa simplesmente uma atualização do valor de qualquer coluna da tabela. Isso pode ser feito usando a instrução 'UPDATE'. Esta instrução usa o nome da tabela, o nome da coluna e o valor como entrada e atualiza os dados.

Sintaxe:

BEGIN UPDATE 
SET =,=,=WHERE ;END;
  • A sintaxe acima mostra o UPDATE. A palavra-chave 'SET' instrui o mecanismo PL / SQL a atualizar o valor da coluna com o valor fornecido.
  • A cláusula 'WHERE' é opcional. Se esta cláusula não for fornecida, o valor da coluna mencionada em toda a tabela será atualizado.

Exclusão de dados

A exclusão de dados significa excluir um registro completo da tabela do banco de dados. O comando 'DELETE' é usado para este propósito.

Sintaxe:

BEGINDELETEFROM
WHERE ;END;
  • A sintaxe acima mostra o comando DELETE. A palavra-chave 'FROM' é opcional e com ou sem a cláusula 'FROM' o comando se comporta da mesma maneira.
  • A cláusula 'WHERE' é opcional. Se esta cláusula não for fornecida, a tabela inteira será excluída.

Seleção de Dados

Projeção / busca de dados significa recuperar os dados necessários da tabela do banco de dados. Isso pode ser feito usando o comando 'SELECT' com a cláusula 'INTO'. O comando 'SELECT' buscará os valores do banco de dados, e a cláusula 'INTO' atribuirá esses valores à variável local do bloco PL / SQL.

Abaixo estão os pontos que precisam ser considerados na instrução 'SELECT'.

  • A instrução 'SELECT' deve retornar apenas um registro ao usar a cláusula 'INTO', pois uma variável pode conter apenas um valor. Se a instrução 'SELECT' retornar mais de um valor, a exceção 'TOO_MANY_ROWS' será gerada.
  • A instrução 'SELECT' atribuirá o valor à variável na cláusula 'INTO', portanto, ela precisa obter pelo menos um registro da tabela para preencher o valor. Se não obtiver nenhum registro, a exceção 'NO_DATA_FOUND' é gerada.
  • O número de colunas e seus tipos de dados na cláusula 'SELECT' devem corresponder ao número de variáveis ​​e seus tipos de dados na cláusula 'INTO'.
  • Os valores são buscados e preenchidos na mesma ordem mencionada na instrução.
  • A cláusula 'WHERE' é opcional que permite ter mais restrições nos registros que serão buscados.
  • A instrução 'SELECT' pode ser usada na condição 'WHERE' de outras instruções DML para definir os valores das condições.
  • A instrução 'SELECT' ao usar as instruções 'INSERT', 'UPDATE', 'DELETE' não deve ter a cláusula 'INTO', pois não preencherá nenhuma variável nesses casos.

Sintaxe:

BEGINSELECT ,…  INTO ,… FROM 
WHERE ;END;
  • A sintaxe acima mostra o comando SELECT-INTO. A palavra-chave 'FROM' é obrigatória para identificar o nome da tabela da qual os dados devem ser obtidos.
  • A cláusula 'WHERE' é opcional. Se esta cláusula não for fornecida, os dados de toda a tabela serão buscados.

Exemplo 1 : Neste exemplo, veremos como realizar operações DML em PL / SQL. Vamos inserir os quatro registros abaixo na tabela emp.

EMP_NAME EMP_NO SALÁRIO GERENTE
BBB 1000 25000 AAA
Xxx 1001 10.000 BBB
AAA 1002 10.000 BBB
ZZZ 1003 7500 BBB

Então vamos atualizar o salário de 'XXX' para 15000, e vamos deletar o registro de empregado 'ZZZ'. Por fim, vamos projetar os detalhes do funcionário 'XXX'.

DECLAREl_emp_name VARCHAR2(250);l_emp_no NUMBER;l_salary NUMBER;l_manager VARCHAR2(250);BEGIN INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘BBB’,1000,25000,’AAA’);INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES('XXX',1001,10000,’BBB);INSERT INTO emp(emp_name,emp_no,salary,managedVALUES(‘YYY',1002,10000,'BBB');INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘ZZZ',1003,7500,'BBB'):‭COMMIT;Dbms_output.put_line(‘Values Inserted');UPDATE EMPSET salary=15000WHERE emp_name='XXX';COMMIT;Dbms_output.put_line(‘Values Updated');DELETE emp WHERE emp_name='ZZZ';COMMIT:Dbms_output.put_line('Values Deleted );SELECT emp_name,emp_no,salary,manager INTO l_emp_name,l_emp_no,l_salary,l_manager FROM emp WHERE emp_name='XXX';Dbms output.put line(‘Employee Detail’);Dbms_output.put_line(‘Employee Name:‘||l_emp_name);Dbms_output.put_line(‘Employee Number:‘||l_emp_no);Dbms_output.put_line(‘Employee Salary:‘||l_salary);Dbms output.put line(‘Emplovee Manager Name:‘||l_manager):END;/

Resultado:

Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB

Explicação do código:

  • Linha de código 2-5 : Declaração da variável.
  • Linha de código 7-14 : Inserindo os registros na tabela emp.
  • Linha de código 15 : Confirmando as transações de inserção.
  • Linha de código 17-19 : Atualizando o salário do funcionário 'XXX' para 15.000
  • Linha de código 20 : Confirmando a transação de atualização.
  • Linha de código 22 : Excluindo o registro de 'ZZZ'
  • Linha de código 23 : Confirmando a transação de exclusão.
  • Linha de código 25-27 : Selecionando o registro de 'XXX' e preenchendo a variável l_emp_name, l_emp_no, l_salary, l_manager.
  • Linha de código 28-32 : Exibindo o valor dos registros buscados.