Oracle PL/SQL Ekleme, Güncelleme, Silme ve İçine Seçme [Örnek]

Bu eğitimde, nasıl kullanılacağını öğreneceğiz SQL PL/SQL'de. SQL, veritabanındaki verilerin getirilmesi ve güncellenmesiyle ilgilenen asıl bileşendir, PL/SQL ise bu verileri işleyen bileşendir. Ayrıca bu yazımızda SQL'in PL/SQL bloğu içerisinde nasıl birleştirileceğini de tartışacağız.

PL/SQL'de DML İşlemleri

DML'nin açılımı Veri işleme dili. Bu ifadeler çoğunlukla manipülasyon faaliyetini gerçekleştirmek için kullanılır. Aşağıdaki işlemlerle ilgilenir.

  • Veri Ekleme
  • Veri Güncelleme
  • Veri Silme
  • Veri Seçimi

PL/SQL'de veri işlemlerini yalnızca SQL komutlarını kullanarak yapabiliriz.

Veri Ekleme

PL/SQL'de INSERT INTO SQL komutunu kullanarak verileri herhangi bir tabloya ekleyebiliriz. Bu komut tablo adını, tablo sütununu ve sütun değerlerini girdi olarak alacak ve değeri temel tabloya ekleyecektir.

INSERT komutu ayrıca her sütun için değer vermek yerine 'SELECT' ifadesini kullanarak değerleri doğrudan başka bir tablodan alabilir. 'SELECT' ifadesi sayesinde temel tablonun içerdiği satır sayısı kadar satır ekleyebiliriz.

Sözdizimi:

BEGIN
  INSERT INTO <table_name>(<column1 >,<column2>,...<column_n>)
     VALUES(<valuel><value2>,...:<value_n>);
END;
  • Yukarıdaki sözdizimi INSERT INTO komutunu gösterir. Tablo adı ve değerleri zorunlu alanlardır, oysa ekleme ifadeleri tablonun tüm sütunları için değerlere sahipse sütun adları zorunlu değildir.
  • Değerlerin yukarıda gösterildiği gibi ayrı ayrı verilmesi durumunda 'VALUES' anahtar kelimesi zorunludur.

Sözdizimi:

BEGIN
  INSERT INTO <table_name>(<columnl>,<column2>,...,<column_n>)
     SELECT <columnl>,<column2>,.. <column_n> FROM <table_name2>;
END;
  • Yukarıdaki sözdizimi, değerleri doğrudan dosyadan alan INSERT INTO komutunu gösterir. SEÇ komutunu kullanarak.
  • Değerler ayrıca verilmediğinden bu durumda 'DEĞERLER' anahtar kelimesi bulunmamalıdır.

Veri Güncelleme

Veri güncellemesi, tablodaki herhangi bir sütunun değerinin güncellenmesi anlamına gelir. Bu 'UPDATE' ifadesi kullanılarak yapılabilir. Bu ifade girdi olarak tablo adını, sütun adını ve değerini alır ve verileri günceller.

Sözdizimi:

BEGIN	
  UPDATE <table_name>
  SET <columnl>=<VALUE1>,<column2>=<value2>,<column_n>=<value_n> 
  WHERE <condition that uniquely identifies the record that needs to be update>; 
END;
  • Yukarıdaki sözdizimi GÜNCELLEME'yi gösterir. 'SET' anahtar kelimesi, PL/SQL motoruna sütunun değerini verilen değerle güncellemesi talimatını verir.
  • 'NEREDE' cümlesi isteğe bağlıdır. Bu maddenin verilmemesi durumunda söz konusu sütunun tüm tablodaki değeri güncellenecektir.

Veri Silme

Veri silme, veritabanı tablosundan bir tam kaydın silinmesi anlamına gelir. Bu amaçla 'DELETE' komutu kullanılır.

Sözdizimi:

BEGIN
  DELETE
  FROM
  <table_name>
  WHERE <condition that uniquely identifies the record that needs to be update>; 
END;
  • Yukarıdaki sözdizimi DELETE komutunu gösterir. 'FROM' anahtar sözcüğü isteğe bağlıdır ve 'FROM' yan tümcesi olsun ya da olmasın, komut aynı şekilde davranır.
  • 'NEREDE' cümlesi isteğe bağlıdır. Bu madde verilmediği takdirde tablonun tamamı silinecektir.

Veri Seçimi

Veri yansıtma/getirme, gerekli verileri veritabanı tablosundan almak anlamına gelir. Bu, 'SELECT' komutunu 'INTO' cümlesiyle birlikte kullanarak başarılabilir. 'SELECT' komutu veritabanından değerleri getirecek ve 'INTO' cümlesi bu değerleri yerel değişkene atayacaktır. PL/SQL bloğu.

'SELECT' ifadesinde dikkat edilmesi gereken noktalar aşağıdadır.

  • Bir değişken yalnızca bir değer tutabildiğinden 'SELECT' ifadesi, 'INTO' yan tümcesini kullanırken yalnızca bir kayıt döndürmelidir. 'SELECT' ifadesi birden fazla değer döndürürse 'TOO_MANY_ROWS' istisnası ortaya çıkar.
  • 'SELECT' ifadesi, değeri 'INTO' cümlesindeki değişkene atayacaktır, bu nedenle değeri doldurmak için tablodan en az bir kayıt alması gerekir. Herhangi bir kayıt alamazsa 'NO_DATA_FOUND' istisnası ortaya çıkar.
  • 'SELECT' yan tümcesindeki sütun sayısı ve veri türleri, 'INTO' yan tümcesindeki değişkenlerin sayısı ve veri türleri ile eşleşmelidir.
  • Değerler, açıklamada belirtildiği gibi aynı sırayla alınır ve doldurulur.
  • 'WHERE' cümlesi, getirilecek kayıtlar üzerinde daha fazla kısıtlamaya izin veren isteğe bağlıdır.
  • 'SELECT' ifadesi, diğer DML ifadelerinin 'WHERE' koşulunda, koşulların değerlerini tanımlamak için kullanılabilir.
  • 'INSERT', 'UPDATE', 'DELETE' ifadeleri kullanılırken 'SELECT' ifadesi, bu durumlarda herhangi bir değişkeni doldurmayacağından 'INTO' yan tümcesine sahip olmamalıdır.

Sözdizimi:

BEGIN
  SELECT <columnl>,..<column_n> INTO <vanable 1 >,. .<variable_n> 
   FROM <table_name>
   WHERE <condition to fetch the required records>;
END;
  • Yukarıdaki sözdizimi SELECT-INTO komutunu gösterir. Verilerin getirilmesi gereken tablo adını tanımlayan 'FROM' anahtar kelimesi zorunludur.
  • 'NEREDE' cümlesi isteğe bağlıdır. Bu madde verilmediği takdirde tablonun tamamındaki veriler alınacaktır.

Örnek 1: Bu örnekte DML işlemlerinin nasıl gerçekleştirileceğini göreceğiz. PL / SQL. Aşağıdaki dört kaydı emp tablosuna ekleyeceğiz.

EMP_NAME EMP_NO MAAŞ MÜDÜRÜ
BBB 1000 25000 AAA
XXX 1001 10000 BBB
YYY 1002 10000 BBB
ZZZ 1003 7500 BBB

Daha sonra 'XXX' maaşını 15000'e güncelleyeceğiz ve 'ZZZ' çalışan kaydını sileceğiz. Son olarak, 'XXX' çalışanının ayrıntılarını yansıtacağız.

PL/SQL'de Veri Seçimi

DECLARE
l_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,managed 
VALUES(‘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 EMP
SET salary=15000
WHERE 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;
/

Çıktı:

Values Inserted
Values Updated
Values Deleted
Employee Detail 
Employee Name:XXX 
Employee Number:1001 
Employee Salary:15000 
Employee Manager Name:BBB

Kod Açıklaması:

  • Kod satırı 2-5: Değişkenin bildirilmesi.
  • Kod satırı 7-14: Kayıtların emp tablosuna eklenmesi.
  • Kod satırı 15: Ekleme işlemlerinin gerçekleştirilmesi.
  • Kod satırı 17-19: 'XXX' çalışanının maaşının 15000 olarak güncellenmesi
  • Kod satırı 20: Güncelleme işleminin gerçekleştirilmesi.
  • Kod satırı 22: 'ZZZ' kaydının silinmesi
  • Kod satırı 23: Silme işleminin gerçekleştirilmesi.
  • Kod satırı 25-27: 'XXX' kaydının seçilmesi ve l_emp_name, l_emp_no, l_salary, l_manager değişkenine doldurulması.
  • Kod satırı 28-32: Getirilen kayıtların değerinin görüntülenmesi.