Bu eğitimde, PL / SQL'de SQL'i nasıl kullanacağımızı öğreneceğiz. SQL, veritabanındaki verilerin alınması ve güncellenmesiyle ilgilenen asıl bileşendir, PL / SQL ise bu verileri işleyen bileşendir. Ayrıca, bu makalede SQL'in PL / SQL bloğu içinde nasıl birleştirileceğini de tartışacağız.
Bu eğitimde öğreneceksiniz-
- Veri Ekleme
- Veri güncellemesi
- Veri Silme
- Veri Seçimi
PL / SQL'de DML İşlemleri
DML, Veri İşleme Dili anlamına gelir . Bu ifadeler esas olarak manipülasyon aktivitesini gerçekleştirmek için kullanılır. Aşağıdaki işlemlerle ilgilenir.
- Veri Ekleme
- Veri güncellemesi
- Veri Silme
- Veri Seçimi
PL / SQL'de veri işlemeyi sadece 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, her bir sütun için değerleri vermek yerine 'SELECT' ifadesini kullanarak değerleri doğrudan başka bir tablodan alabilir. 'SELECT' ifadesiyle, temel tablonun içerdiği kadar satır ekleyebiliriz.
Sözdizimi:
BEGININSERT INTO( , ,… )VALUES( ,… : );END;
- Yukarıdaki sözdizimi INSERT INTO komutunu gösterir. Tablo adı ve değerleri zorunlu alanlardır, oysa ekleme deyimleri tablonun tüm sütunu için değerlere sahipse sütun adları zorunlu değildir.
- Değerler yukarıda gösterildiği gibi ayrı ayrı verilirse 'DEĞERLER' anahtar kelimesi zorunludur.
Sözdizimi:
BEGININSERT INTO( , ,… , )SELECT , ,… FROM ;END;
- Yukarıdaki sözdizimi, SELECT komutunu kullanarak değerleri doğrudan
'den alan INSERT INTO komutunu gösterir. - Değerler ayrı ayrı verilmediği için bu durumda 'DEĞERLER' anahtar kelimesi mevcut olmamalıdır.
Veri güncellemesi
Veri güncellemesi, tablodaki herhangi bir sütunun değerinin güncellenmesi anlamına gelir. Bu, 'UPDATE' ifadesi kullanılarak yapılabilir. Bu ifade tablo adını, sütun adını ve değerini girdi olarak alır ve verileri günceller.
Sözdizimi:
BEGIN UPDATESET = , = , = WHERE ;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.
- 'WHERE' yan tümcesi isteğe bağlıdır. Bu cümle belirtilmezse, söz konusu sütunun tüm tablodaki değeri güncellenecektir.
Veri Silme
Veri silme, veritabanı tablosundan bir tam kaydı silmek anlamına gelir. Bu amaçla 'DELETE' komutu kullanılır.
Sözdizimi:
BEGINDELETEFROMWHERE ;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 veya olmasın, komut aynı şekilde davranır.
- 'WHERE' yan tümcesi isteğe bağlıdır. Bu cümle belirtilmezse, tüm tablo silinecektir.
Veri Seçimi
Veri projeksiyonu / getirme, gerekli verileri veritabanı tablosundan almak için araçlar. Bu, 'INTO' yan tümcesi ile 'SELECT' komutu kullanılarak sağlanabilir. 'SELECT' komutu değerleri veritabanından alacak ve 'INTO' yan tümcesi bu değerleri PL / SQL bloğunun yerel değişkenine atayacaktır.
Aşağıda 'SELECT' ifadesinde dikkate alınması gereken noktalar bulunmaktadır.
- Bir değişken yalnızca bir değer tutabileceğinden, 'SELECT' ifadesi 'INTO' yan tümcesi kullanılı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' yan tümcesindeki değişkene atayacaktır, bu nedenle değeri doldurmak için tablodan en az bir kayıt alması gerekir. Herhangi bir kayıt almadıysa, 'NO_DATA_FOUND' istisnası ortaya çıkar.
- 'SELECT' yan tümcesindeki sütun sayısı ve veri türü, değişkenlerin sayısı ve 'INTO' yan tümcesindeki veri türleri ile eşleşmelidir.
- Değerler, ifadede belirtilen sırayla alınır ve doldurulur.
- 'WHERE' yan tümcesi, getirilecek kayıtlar üzerinde daha fazla kısıtlamaya izin veren isteğe bağlıdır.
- 'SELECT' ifadesi, koşulların değerlerini tanımlamak için diğer DML ifadelerinin 'WHERE' koşulunda kullanılabilir.
- 'INSERT', 'UPDATE', 'DELETE' ifadelerini kullanırken 'SELECT' ifadesi, bu durumlarda herhangi bir değişkeni doldurmayacağından 'INTO' yan tümcesine sahip olmamalıdır.
Sözdizimi:
BEGINSELECT,… INTO ,… FROM WHERE ;END;
- Yukarıdaki sözdizimi SELECT-INTO komutunu gösterir. Verilerin getirilmesi gereken tablonun adını tanımlayan 'KİMDEN' anahtar kelimesi zorunludur.
- 'WHERE' yan tümcesi isteğe bağlıdır. Bu cümle belirtilmezse, tüm tablodaki veriler alınacaktır.
Örnek 1 : Bu örnekte, PL / SQL'de DML işlemlerinin nasıl gerçekleştirileceğini göreceğiz. Aşağıdaki dört kaydı emp tablosuna ekleyeceğiz.
EMP_NAME | EMP_NO | MAAŞ | YÖNETİCİ |
BBB | 1000 | 25.000 | AAA |
XXX | 1001 | 10000 | BBB |
YYY | 1002 | 10000 | BBB |
ZZZ | 1003 | 7500 | BBB |
Ardından 'XXX' maaşını 15000 olarak 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.
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;/
Çıktı:
Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB
Kod Açıklaması:
- Kod satırı 2-5 : Değişkeni bildirme.
- Kod satırı 7-14 : Kayıtları emp tablosuna ekleme.
- Kod satırı 15 : Ek işlemlerin gerçekleştirilmesi.
- 17-19 kod satırı : 'XXX' çalışanın maaşını 15000 olarak güncelleme
- Kod satırı 20 : Güncelleme işleminin gerçekleştirilmesi.
- Kod satırı 22 : 'ZZZ' kaydını silme
- Kod satırı 23 : Silme işleminin gerçekleştirilmesi.
- Kod satırı 25-27 : 'XXX' kaydını seçme ve l_emp_name, l_emp_no, l_salary, l_manager değişkenine yerleştirme.
- Kod satırı 28-32 : Getirilen kayıtların değerini görüntüleme.