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