MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Menggabungkan Kekuatan SQL dan Pernyataan Prosedural dengan Mode Kompatibilitas Oracle MariaDB

Kembali di MariaDB Server 10.3, kami menambahkan mode SQL baru (SQL_MODE=ORACLE) untuk menyediakan kompatibilitas dengan subset Oracle PL/SQL, ekstensi prosedural ke Structured Query Language (SQL). Dengan rilis terbaru MariaDB Community Server 10.6, kami melanjutkan perjalanan kami untuk memperluas kompatibilitas PL/SQL MariaDB dengan menambahkan beberapa fungsi seperti ROWNUM() , ADD_MONTHS() dan TO_CHAR() . Ini sangat keren karena beberapa alasan tetapi untuk memulai, MariaDB tetap menjadi satu-satunya database yang mengimplementasikan kompatibilitas Oracle open source sehingga fungsi ini tersedia untuk semua orang. Untuk benar-benar memahami apa artinya, penting bagi kami untuk mengambil langkah mundur agar Anda tahu mengapa kami memulai jalan ini.

Kekuatan Pemrograman Prosedural dan Deklaratif

Dengan menggabungkan kekuatan manipulasi data dari bahasa SQL dengan kemampuan prosedural, pengembang memiliki banyak peluang baru yang menarik. Menggunakan PL/SQL, pengembang memiliki kemampuan untuk mengeksekusi pernyataan SQL yang berfokus pada pendekatan deklaratif "apa yang harus dilakukan" sementara juga diberikan kemampuan untuk mengontrol aliran operasi, atau "bagaimana melakukannya".

Tunggu apa? Oke, simak tradisional berikut ini Pernyataan SQL.

SELECT id, name, has_kids FROM friends;

Sederhana, elegan dan efektif. SQL adalah bahasa yang indah, tetapi memiliki keterbatasan. Misalnya, bagaimana jika Anda ingin mengulang hasil yang dikembalikan dari SELECT eksekusi pernyataan? Kemudian, saat menguraikan hasil, periksa setiap hasil menggunakan pernyataan bersyarat (mis. jika has_kids benar) sehingga Anda dapat melakukan operasi tertentu berdasarkan kondisi tersebut?

Catatan singkat :Ini murni hipotetis. Saya yakin jika Anda memiliki teman dengan anak-anak dan teman tanpa anak, Anda memperlakukan mereka semua sama. Tapi, demi contoh ini, katakanlah Anda tidak melakukannya. OKE? Oke, keren.

Tetapi dengan semua iterasi dan kondisi yang terjadi, Anda mungkin mengalami kesalahan. Bukankah lebih baik jika Anda bisa menangani kesalahan (yaitu pengecualian) langsung di sisi database, tanpa harus terlebih dahulu mengembalikan hasil asli kembali ke kode aplikasi untuk diproses? Sayang sekali, karena Anda menggunakan SQL biasa, dan semua itu tidak mungkin.

Jangan takut! Sebagai gantinya, ikut saya ke dunia PL/SQL yang indah!

Melalui penggunaan sesuatu yang dikenal sebagai PL/SQL Block, Anda dapat menggabungkan SQL yang Anda kenal dan sukai dengan kemampuan prosedural yang memungkinkan Anda mengontrol aliran operasi menggunakan fitur seperti kemampuan untuk mendeklarasikan variabel, menangani kondisi, loop melalui data, mengelola pengecualian, dan banyak lagi.

Blok PL/SQL ditangani dalam Server MariaDB, di mana SQL dan pernyataan prosedural diuraikan dan dieksekusi sesuai dengan itu.

Cukup keren, bukan? Ini menjadi jauh lebih baik! Tapi kembali ke contoh kita sebelumnya. Anda dapat menggunakan satu blok PL/SQL untuk menyelesaikan semua yang saya tunjukkan sebelumnya.

Misalnya:

DELCARE 
	CURSOR c IS SELECT id, name, has_kids FROM friends;
BEGIN 
	FOR friend_row IN c LOOP
		IF friend_row.has_kids == true THEN
			/* Do something */
		ELSE
			/* Do something else */
		END IF;
	END LOOP;
EXCEPTION
	WHEN no_data_found THEN
		/* Handle no data found */
	WHEN others THEN
		/* Handle all other kinds of exceptions */
END;

Pelajari Lebih Lanjut

Hal-hal yang kuat, bukan? Yah, posting blog ini benar-benar hanya puncak gunung es. Sedikit sesuatu untuk membangkitkan selera Anda, jika Anda mau. Tetapi jika Anda ingin tahu lebih banyak, saya sangat merekomendasikan menonton webinar yang baru-baru ini kami sajikan, MariaDB dan PL/SQL:Menggabungkan Kekuatan SQL dan Pernyataan Prosedural. Di dalamnya, kami menyelami lebih banyak detail tentang mengapa kami menjadikannya misi kami untuk menambah dan memperluas dukungan PL/SQL dan kami menyertakan berbagai contoh, dan demonstrasi pengkodean langsung, yang memberi Anda pandangan langsung tentang bagaimana anda dapat menggunakan PL/SQL dalam MariaDB! Selamat coding, teman-teman!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana UNCOMPRESSED_LENGTH() Bekerja di MariaDB

  2. Bagaimana BIT_LENGTH() Bekerja di MariaDB

  3. Mengonfigurasi Otentikasi LDAP dan Pemetaan Grup Dengan MariaDB

  4. Bagaimana INSTR() Bekerja di MariaDB

  5. Temukan Semua Nilai Non-Numerik dalam Kolom di MariaDB