PL/SQL - Sintaksis Asas

Selamat datang, para pemrogram masa depan! Hari ini, kita akan melihat dunia yang menarik PL/SQL. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - kita akan mulai dari awal dan membangun pengetahuan Anda langkah demi langkah. Pada akhir panduan ini, Anda akan menulis program PL/SQL pertama Anda dengan kepercayaan!

PL/SQL - Basic Syntax

Contoh 'Hello World'

Ayo kita mulai dengan program "Hello World" tradisional. Itu adalah ritual transit untuk setiap pemrogram, dan itu adalah cara yang bagus untuk merasakan sintaks PL/SQL.

BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, World!');
END;
/

mari kitauraikan ini:

  1. BEGIN: Kata kunci ini menandai permulaan blok PL/SQL kita.
  2. DBMS_OUTPUT.PUT_LINE('Hello, World!');: Baris ini mencetak pesan kita. PERTimbangkan ini sebagai cara PL/SQL untuk berbicara kepada kita.
  3. END;: Ini menandai akhir blok PL/SQL kita.
  4. /: Tanda slash ini memberitahu SQL*Plus untuk menjalankan blok PL/SQL.

Ketika Anda menjalankan kode ini, Anda akan melihat "Hello, World!" dicetak di layar Anda. Selamat! Anda baru saja menulis program PL/SQL pertama Anda.

Identifiers PL/SQL

Identifiers adalah nama yang kita berikan kepada berbagai elemen program seperti variabel, prosedur, dan fungsi. Mereka seperti nametag untuk bagian lain kode kita. Berikut adalah aturan untuk membuat identifiers:

  1. Harus dimulai dengan huruf (A-Z atau a-z)
  2. Dapat diikuti oleh huruf, angka (0-9), tanda dollar ($), garis bawah (_), atau tanda pagar (#)
  3. Tidak dapat lebih panjang dari 30 karakter
  4. Tidak dapat menjadi kata kunci (seperti BEGIN, END, IF, dll.)

mari kita lihat beberapa contoh:

DECLARE
employee_name VARCHAR2(50);
salary NUMBER;
dept_id NUMBER(5);
BEGIN
-- Kode berada di sini
END;
/

Dalam contoh ini, employee_name, salary, dan dept_id semua adalah identifiers yang valid.

Delimiters PL/SQL

Delimiters adalah karakter khusus atau simbol yang memiliki arti khusus dalam PL/SQL. Mereka seperti tanda baca dalam kalimat, membantu mengstrukturkan dan memisahkan bagian lain dari kode kita.

Berikut adalah tabel dari delimiters umum PL/SQL:

Delimiter Deskripsi
; Penutup pernyataan
% Indikator atribut
. Pemilih komponen
( ) Menyertakan daftar parameter
, Pemisah parameter
:= Operator penugasan
=> Operator asociasi
-- Indikator komentar baris tunggal
/ / Indikator komentar multi-baris

mari kita lihat beberapa di antaranya dalam aksi:

DECLARE
v_count NUMBER := 0; -- Operator penugasan
v_name VARCHAR2(50) := 'John Doe';
BEGIN
v_count := v_count + 1; -- Penutup pernyataan
DBMS_OUTPUT.PUT_LINE('Name: ' || v_name); -- Pemilih komponen
END;
/

Komentar PL/SQL

Komentar adalah seperti catatan sticky dalam kode Anda. Mereka diabaikan oleh kompiler tetapi bisa sangat berguna untuk menjelaskan apa yang dilakukan kode Anda. Ada dua jenis komentar dalam PL/SQL:

  1. Komentar baris tunggal: Dimulai dengan --
  2. Komentar multi-baris: Dikelilingi oleh /* dan */

Berikut adalah contoh:

DECLARE
-- Ini adalah komentar baris tunggal
v_pi NUMBER := 3.14159;
BEGIN
/*
Ini adalah komentar multi-baris.
Itu dapat melintasi beberapa baris.
Sangat berguna untuk penjelasan yang lebih panjang.
*/
DBMS_OUTPUT.PUT_LINE('The value of pi is: ' || v_pi);
END;
/

Unit Program PL/SQL

Unit program PL/SQL adalah blok bangunan aplikasi PL/SQL. Mereka seperti resep dalam buku masak - setiap satu menjelaskan bagaimana melakukan tugas tertentu. Jenis utama adalah:

  1. Blok Anonim
  2. Prosedur
  3. Fungsi
  4. Paket

mari kita lihat contoh dari setiap yang:

1. Blok Anonim

Kami sudah melihat ini dalam contoh "Hello World" kita. Itu adalah blok kode yang tidak disimpan di database.

BEGIN
DBMS_OUTPUT.PUT_LINE('This is an anonymous block');
END;
/

2. Prosedur

Sebuah prosedur adalah blok PL/SQL yang dinamai yang melakukan aksi tertentu.

CREATE OR REPLACE PROCEDURE greet_user(p_name IN VARCHAR2) IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, ' || p_name || '!');
END;
/

-- Untuk memanggil prosedur:
BEGIN
greet_user('Alice');
END;
/

3. Fungsi

Sebuah fungsi mirip dengan prosedur, tetapi mengembalikan nilai.

CREATE OR REPLACE FUNCTION calculate_area(p_radius IN NUMBER)
RETURN NUMBER IS
v_pi CONSTANT NUMBER := 3.14159;
BEGIN
RETURN v_pi * p_radius * p_radius;
END;
/

-- Untuk menggunakan fungsi:
DECLARE
v_area NUMBER;
BEGIN
v_area := calculate_area(5);
DBMS_OUTPUT.PUT_LINE('The area is: ' || v_area);
END;
/

4. Paket

Sebuah paket adalah koleksi prosedur, fungsi, variabel, dan objek PL/SQL lain yang berkaitan.

CREATE OR REPLACE PACKAGE math_operations AS
FUNCTION add_numbers(a IN NUMBER, b IN NUMBER) RETURN NUMBER;
FUNCTION subtract_numbers(a IN NUMBER, b IN NUMBER) RETURN NUMBER;
END math_operations;
/

CREATE OR REPLACE PACKAGE BODY math_operations AS
FUNCTION add_numbers(a IN NUMBER, b IN NUMBER) RETURN NUMBER IS
BEGIN
RETURN a + b;
END add_numbers;

FUNCTION subtract_numbers(a IN NUMBER, b IN NUMBER) RETURN NUMBER IS
BEGIN
RETURN a - b;
END subtract_numbers;
END math_operations;
/

-- Untuk menggunakan paket:
DECLARE
v_result NUMBER;
BEGIN
v_result := math_operations.add_numbers(10, 5);
DBMS_OUTPUT.PUT_LINE('10 + 5 = ' || v_result);

v_result := math_operations.subtract_numbers(10, 5);
DBMS_OUTPUT.PUT_LINE('10 - 5 = ' || v_result);
END;
/

Dan itu saja! Kita telah melihat sintaksis asas PL/SQL, dari program "Hello World" sederhana hingga struktur yang lebih kompleks seperti paket. Ingat, belajar pemrograman seperti belajar bahasa baru - itu memerlukan latihan dan kesabaran. Jangan khawatir untuk mencoba contoh kode, mengubahnya, dan melihat apa yang terjadi. Itu adalah cara Anda benar-benar menginternalisasi konsep ini dan menjadi pemrogram PL/SQL yang mahir.

Selamat pemrograman, dan mayat pertanyaan Anda selalu mengembalikan hasil yang Anda harapkan!

Credits: Image by storyset