Dalam tutorial ini, kita akan belajar bagaimana menggunakan SQL di PL / SQL. SQL adalah komponen aktual yang menangani pengambilan dan pembaruan data dalam database sedangkan PL / SQL adalah komponen yang memproses data ini. Lebih lanjut, di artikel ini, kita juga akan membahas cara menggabungkan SQL di dalam blok PL / SQL.
Dalam tutorial ini, Anda akan belajar-
- Penyisipan Data
- Pembaruan Data
- Penghapusan Data
- Pemilihan Data
Transaksi DML di PL / SQL
DML adalah singkatan dari Data Manipulation Language . Pernyataan ini terutama digunakan untuk melakukan aktivitas manipulasi. Ini berkaitan dengan operasi di bawah ini.
- Penyisipan Data
- Pembaruan Data
- Penghapusan Data
- Pemilihan Data
Dalam PL / SQL kita dapat melakukan manipulasi data hanya dengan menggunakan perintah SQL.
Penyisipan Data
Dalam PL / SQL, kita dapat memasukkan data ke dalam tabel manapun menggunakan perintah SQL INSERT INTO. Perintah ini akan mengambil nama tabel, kolom tabel dan nilai kolom sebagai input dan memasukkan nilai ke dalam tabel dasar.
Perintah INSERT juga dapat mengambil nilai secara langsung dari tabel lain menggunakan pernyataan 'SELECT' daripada memberikan nilai untuk setiap kolom. Melalui pernyataan 'PILIH', kita dapat memasukkan sebanyak mungkin baris yang ada dalam tabel dasar.
Sintaksis:
BEGININSERT INTO( , ,… )VALUES( ,… : );END;
- Sintaks di atas menunjukkan perintah INSERT INTO. Nama dan nilai tabel adalah bidang wajib, sedangkan nama kolom tidak wajib jika pernyataan sisipkan memiliki nilai untuk semua kolom tabel.
- Kata kunci 'VALUES' wajib diisi jika nilainya diberikan secara terpisah seperti yang ditunjukkan di atas.
Sintaksis:
BEGININSERT INTO( , ,… , )SELECT , ,… FROM ;END;
- Sintaks di atas menunjukkan perintah INSERT INTO yang mengambil nilai langsung dari
menggunakan perintah SELECT. - Kata kunci 'VALUES' tidak boleh ada dalam kasus ini karena nilainya tidak diberikan secara terpisah.
Pembaruan Data
Pembaruan data berarti pembaruan nilai setiap kolom dalam tabel. Ini dapat dilakukan dengan menggunakan pernyataan 'UPDATE'. Pernyataan ini mengambil nama tabel, nama kolom dan nilai sebagai masukan dan memutakhirkan data.
Sintaksis:
BEGIN UPDATESET = , = , = WHERE ;END;
- Sintaks di atas menunjukkan UPDATE. Kata kunci 'SET' menginstruksikan mesin PL / SQL untuk memperbarui nilai kolom dengan nilai yang diberikan.
- Klausa 'WHERE' bersifat opsional. Jika klausa ini tidak diberikan, maka nilai kolom yang disebutkan di seluruh tabel akan diperbarui.
Penghapusan Data
Penghapusan data berarti menghapus satu record penuh dari tabel database. Perintah 'DELETE' digunakan untuk tujuan ini.
Sintaksis:
BEGINDELETEFROMWHERE ;END;
- Sintaks di atas menunjukkan perintah DELETE. Kata kunci 'FROM' adalah opsional dan dengan atau tanpa klausa 'FROM' perintah berperilaku dengan cara yang sama.
- Klausa 'WHERE' bersifat opsional. Jika klausa ini tidak diberikan, maka seluruh tabel akan dihapus.
Pemilihan Data
Proyeksi / pengambilan data berarti mengambil data yang diperlukan dari tabel database. Ini dapat dicapai dengan menggunakan perintah 'SELECT' dengan klausa 'INTO'. Perintah 'SELECT' akan mengambil nilai dari database, dan klausa 'INTO' akan menetapkan nilai ini ke variabel lokal blok PL / SQL.
Di bawah ini adalah poin-poin yang perlu diperhatikan dalam pernyataan 'PILIH'.
- Pernyataan 'SELECT' harus mengembalikan hanya satu record sementara menggunakan klausa 'INTO' karena satu variabel hanya dapat menampung satu nilai. Jika pernyataan 'SELECT' mengembalikan lebih dari satu nilai daripada 'TOO_MANY_ROWS' pengecualian akan dimunculkan.
- Pernyataan 'SELECT' akan menetapkan nilai ke variabel dalam klausa 'INTO', sehingga perlu mendapatkan setidaknya satu record dari tabel untuk mengisi nilainya. Jika tidak mendapatkan record apapun, maka pengecualian 'NO_DATA_FOUND' dimunculkan.
- Jumlah kolom dan tipe datanya pada klausa 'SELECT' harus sesuai dengan jumlah variabel dan tipe datanya pada klausa 'INTO'.
- Nilai diambil dan diisi dengan urutan yang sama seperti yang disebutkan dalam pernyataan.
- Klausa 'WHERE' adalah opsional yang memungkinkan untuk memiliki lebih banyak batasan pada catatan yang akan diambil.
- Pernyataan 'SELECT' dapat digunakan dalam kondisi 'WHERE' dari pernyataan DML lainnya untuk menentukan nilai kondisi tersebut.
- Pernyataan 'SELECT' saat menggunakan 'INSERT', 'UPDATE', 'DELETE' seharusnya tidak memiliki klausa 'INTO' karena tidak akan mengisi variabel apa pun dalam kasus ini.
Sintaksis:
BEGINSELECT,… INTO ,… FROM WHERE ;END;
- Sintaks di atas menunjukkan perintah SELECT-INTO. Kata kunci 'FROM' adalah wajib yang mengidentifikasi nama tabel yang datanya perlu diambil.
- Klausa 'WHERE' bersifat opsional. Jika klausa ini tidak diberikan, maka data dari seluruh tabel akan diambil.
Contoh 1 : Dalam contoh ini, kita akan melihat bagaimana melakukan operasi DML di PL / SQL. Kami akan memasukkan empat record di bawah ini ke dalam tabel emp.
EMP_NAME | EMP_NO | GAJI | PENGELOLA |
BBB | 1000 | 25000 | AAA |
XXX | 1001 | 10000 | BBB |
YYY | 1002 | 10000 | BBB |
ZZZ | 1003 | 7500 | BBB |
Kemudian kami akan memperbarui gaji 'XXX' menjadi 15000, dan kami akan menghapus catatan karyawan 'ZZZ'. Terakhir, kami akan memproyeksikan detail karyawan '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;/
Keluaran:
Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB
Penjelasan Kode:
- Baris kode 2-5 : Mendeklarasikan variabel.
- Baris kode 7-14 : Memasukkan record ke dalam tabel emp.
- Baris kode 15 : Melakukan transaksi sisipan.
- Baris kode 17-19 : Memperbarui gaji karyawan 'XXX' menjadi 15000
- Baris kode 20 : Melakukan transaksi pembaruan.
- Baris kode 22 : Menghapus catatan 'ZZZ'
- Baris kode 23 : Melakukan transaksi hapus.
- Baris kode 25-27 : Memilih record 'XXX' dan mengisi ke dalam variabel l_emp_name, l_emp_no, l_salary, l_manager.
- Baris kode 28-32 : Menampilkan nilai record yang diambil.