Oracle PL / SQL Masukkan, Kemas kini, Padam & Pilih Ke (Contoh)

Isi kandungan:

Anonim

Dalam tutorial ini, kita akan belajar bagaimana menggunakan SQL dalam PL / SQL. SQL adalah komponen sebenarnya yang mengurus pengambilan dan pengemaskinian data dalam pangkalan data sedangkan PL / SQL adalah komponen yang memproses data ini. Selanjutnya, dalam artikel ini, kita juga akan membincangkan cara menggabungkan SQL dalam blok PL / SQL.

Dalam tutorial ini, anda akan belajar-

  • Penyisipan Data
  • Kemas kini Data
  • Penghapusan Data
  • Pemilihan Data

Transaksi DML dalam PL / SQL

DML bermaksud Bahasa Manipulasi Data . Pernyataan ini digunakan terutamanya untuk melakukan aktiviti manipulasi. Ini berkaitan dengan operasi di bawah.

  • Penyisipan Data
  • Kemas kini Data
  • Penghapusan Data
  • Pemilihan Data

Di PL / SQL, kita dapat melakukan manipulasi data hanya dengan menggunakan perintah SQL.

Penyisipan Data

Di PL / SQL, kita dapat memasukkan data ke dalam tabel mana pun dengan menggunakan perintah SQL INSERT INTO. Perintah ini akan mengambil nama jadual, kolom jadual dan nilai lajur sebagai input dan memasukkan nilai dalam jadual asas.

Perintah INSERT juga dapat mengambil nilai secara langsung dari jadual lain menggunakan pernyataan 'SELECT' daripada memberikan nilai untuk setiap lajur. Melalui pernyataan 'SELECT', kita dapat memasukkan seberapa banyak baris yang terdapat dalam jadual asas.

Sintaks:

BEGININSERT INTO 
(,,… )VALUES(,… :);END;
  • Sintaks di atas menunjukkan arahan INSERT INTO. Nama dan nilai jadual adalah medan wajib, sedangkan nama lajur tidak wajib jika pernyataan sisipan mempunyai nilai untuk semua lajur jadual.
  • Kata kunci 'NILAI' adalah wajib jika nilainya diberikan secara berasingan seperti yang ditunjukkan di atas.

Sintaks:

BEGININSERT INTO 
(,,… ,)SELECT ,,…  FROM 
;END;
  • Sintaks di atas menunjukkan arahan INSERT INTO yang mengambil nilai langsung dari menggunakan perintah SELECT.
  • Kata kunci 'NILAI' tidak boleh ada dalam kes ini kerana nilainya tidak diberikan secara berasingan.

Kemas kini Data

Kemas kini data bermaksud kemas kini nilai setiap lajur dalam jadual. Ini boleh dilakukan dengan menggunakan pernyataan 'UPDATE'. Pernyataan ini mengambil nama jadual, nama lajur dan nilai sebagai input dan mengemas kini data.

Sintaks:

BEGIN UPDATE 
SET =,=,=WHERE ;END;
  • Sintaks di atas menunjukkan KEMASKINI. Kata kunci 'SET' mengarahkan mesin PL / SQL untuk mengemas kini nilai lajur dengan nilai yang diberikan.
  • Klausa 'DI MANA' adalah pilihan. Sekiranya klausa ini tidak diberikan, maka nilai lajur yang disebutkan di seluruh jadual akan dikemas kini.

Penghapusan Data

Penghapusan data bermaksud menghapus satu rekod penuh dari jadual pangkalan data. Perintah 'DELETE' digunakan untuk tujuan ini.

Sintaks:

BEGINDELETEFROM
WHERE ;END;
  • Sintaks di atas menunjukkan arahan DELETE. Kata kunci 'FROM' adalah pilihan dan dengan atau tanpa klausa 'FROM', perintah tersebut berperilaku dengan cara yang sama.
  • Klausa 'DI MANA' adalah pilihan. Sekiranya klausa ini tidak diberikan, maka keseluruhan jadual akan dihapuskan.

Pemilihan Data

Unjuran / pengambilan data bermaksud mengambil data yang diperlukan dari jadual pangkalan data. Ini dapat dicapai dengan menggunakan perintah 'SELECT' dengan klausa 'INTO'. Perintah 'SELECT' akan mengambil nilai dari pangkalan data, dan klausa 'INTO' akan menetapkan nilai-nilai ini ke pemboleh ubah tempatan blok PL / SQL.

Berikut adalah perkara-perkara yang perlu dipertimbangkan dalam pernyataan 'PILIH'.

  • Pernyataan 'SELECT' harus mengembalikan hanya satu rekod semasa menggunakan klausa 'INTO' kerana satu pemboleh ubah dapat menyimpan hanya satu nilai. Sekiranya pernyataan 'SELECT' mengembalikan lebih daripada satu nilai daripada pengecualian 'TOO_MANY_ROWS' akan dinaikkan.
  • Pernyataan 'SELECT' akan memberikan nilai kepada pemboleh ubah dalam klausa 'INTO', jadi perlu mendapatkan sekurang-kurangnya satu catatan dari jadual untuk mengisi nilai. Sekiranya tidak mendapat rekod, maka pengecualian 'NO_DATA_FOUND' akan dibangkitkan.
  • Jumlah lajur dan jenis datanya dalam klausa 'PILIH' harus sesuai dengan jumlah pemboleh ubah dan jenis datanya dalam klausa 'INTO'.
  • Nilai diambil dan diisi dalam urutan yang sama seperti yang disebutkan dalam pernyataan.
  • Klausa 'DI MANA' adalah pilihan yang memungkinkan untuk mempunyai lebih banyak sekatan pada rekod yang akan diambil.
  • Pernyataan 'SELECT' boleh digunakan dalam keadaan 'WHERE' dari pernyataan DML lain untuk menentukan nilai syarat.
  • Pernyataan 'SELECT' ketika menggunakan pernyataan 'INSERT', 'UPDATE', 'DELETE' tidak boleh mempunyai klausa 'INTO' kerana ia tidak akan mengisi pemboleh ubah dalam kes-kes ini.

Sintaks:

BEGINSELECT ,…  INTO ,… FROM 
WHERE ;END;
  • Sintaks di atas menunjukkan perintah SELECT-INTO. Kata kunci 'FROM' adalah wajib yang mengenal pasti nama jadual dari mana data perlu diambil.
  • Klausa 'DI MANA' adalah pilihan. Sekiranya klausa ini tidak diberikan, maka data dari seluruh jadual akan diambil.

Contoh 1 : Dalam contoh ini, kita akan melihat bagaimana melakukan operasi DML di PL / SQL. Kami akan memasukkan empat rekod di bawah ke dalam jadual emp.

EMP_NAME EMP_NO GAJI PENGURUS
BBB 1000 25000 AAA
XXX 1001 10000 BBB
YYY 1002 10000 BBB
ZZZ 1003 7500 BBB

Kemudian kita akan mengemas kini gaji 'XXX' kepada 15000, dan kita akan menghapus rekod pekerja 'ZZZ'. Akhirnya, kami akan memproyeksikan perincian pekerja '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;/

Pengeluaran:

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

Penjelasan Kod:

  • Garis kod 2-5 : Menyatakan pemboleh ubah.
  • Baris kod 7-14 : Memasukkan rekod ke dalam jadual emp.
  • Baris kod 15 : Melakukan transaksi memasukkan.
  • Baris kod 17-19 : Mengemas kini gaji pekerja 'XXX' kepada 15000
  • Baris kod 20 : Melakukan transaksi kemas kini.
  • Baris kod 22 : Menghapus rekod 'ZZZ'
  • Baris kod 23 : Melakukan transaksi hapus.
  • Baris kod 25-27 : Memilih rekod 'XXX' dan memasukkan ke dalam pemboleh ubah l_emp_name, l_emp_no, l_salary, l_manager.
  • Baris kod 28-32 : Menampilkan nilai rekod yang diambil.