PL/SQL - Constants and Literals: A Beginner's Guide

Xin chào các bạn đang học lập trình! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của PL/SQL, cụ thể là tập trung vào Constants và Literals. Đừng lo lắng nếu những thuật ngữ này听起来 giống như ngôn ngữ ngoài hành tinh bây giờ - vào cuối bài hướng dẫn này, bạn sẽ sử dụng những từ này một cách thành thạo như một chuyên gia!

PL/SQL - Constants and Literals

What are Constants and Literals?

Trước khi chúng ta đi sâu vào, hãy phân tích những thuật ngữ này:

  • Một Constant là một giá trị không thay đổi trong suốt quá trình thực thi của chương trình.
  • Một Literal là một giá trị xuất hiện trực tiếp trong chương trình.

Hãy nghĩ về constants như là số yêu thích của bạn mà bạn luôn sử dụng, và literals như là những số bạn viết lên một mảnh giấy. Hãy cùng khám phá những khái niệm này chi tiết hơn!

Declaring a Constant

Trong PL/SQL, việc khai báo một constant giống như nói với chương trình của bạn, "Hey, nhớ giá trị này, nó quan trọng và nó sẽ không thay đổi!"

Dưới đây là cú pháp cơ bản:

constant_name CONSTANT datatype := value;

Hãy phân tích nó:

  • constant_name: Đây là tên bạn đặt cho constant của bạn.
  • CONSTANT: Từ khóa này cho biết chúng ta đang khai báo một constant.
  • datatype: Đây chỉ định loại dữ liệu mà constant sẽ giữ (như NUMBER, VARCHAR2, v.v.).
  • :=: Đây là toán tử gán trong PL/SQL.
  • value: Đây là giá trị thực tế bạn đang gán cho constant.

Example 1: Declaring a Numeric Constant

DECLARE
pi CONSTANT NUMBER(7,6) := 3.141592;
BEGIN
DBMS_OUTPUT.PUT_LINE('The value of pi is: ' || pi);
END;

Trong ví dụ này, chúng ta đang khai báo một constant tên là pi với giá trị là 3.141592. NUMBER(7,6) có nghĩa là nó là một số với tổng cộng 7 chữ số, 6 trong số đó là sau dấu phẩy động.

Khi bạn chạy đoạn mã này, nó sẽ hiển thị:

The value of pi is: 3.141592

Example 2: Declaring a String Constant

DECLARE
greeting CONSTANT VARCHAR2(20) := 'Hello, PL/SQL World!';
BEGIN
DBMS_OUTPUT.PUT_LINE(greeting);
END;

Ở đây, chúng ta đang khai báo một constant tên là greeting giữ giá trị chuỗi. VARCHAR2(20) có nghĩa là nó là một chuỗi có độ dài thay đổi có thể giữ tối đa 20 ký tự.

Kết quả đầu ra:

Hello, PL/SQL World!

The PL/SQL Literals

Bây giờ, hãy nói về literals. Đây là những giá trị thô mà bạn sử dụng trong mã của mình. PL/SQL hỗ trợ nhiều loại literals:

1. Numeric Literals

Đây là những con số. Đơn giản phải không? Chúng có thể là số nguyên hoặc số dấu phẩy động.

DECLARE
age NUMBER := 25;  -- Integer literal
height NUMBER := 5.9;  -- Floating-point literal
BEGIN
DBMS_OUTPUT.PUT_LINE('Age: ' || age);
DBMS_OUTPUT.PUT_LINE('Height: ' || height || ' feet');
END;

Kết quả đầu ra:

Age: 25
Height: 5.9 feet

2. Character Literals

Đây là những ký tự đơn được bao quanh bởi dấu ngoặc đơn.

DECLARE
grade CHAR := 'A';
BEGIN
DBMS_OUTPUT.PUT_LINE('Your grade is: ' || grade);
END;

Kết quả đầu ra:

Your grade is: A

3. String Literals

Đây là chuỗi ký tự được bao quanh bởi dấu ngoặc đơn.

DECLARE
name VARCHAR2(20) := 'John Doe';
BEGIN
DBMS_OUTPUT.PUT_LINE('Welcome, ' || name || '!');
END;

Kết quả đầu ra:

Welcome, John Doe!

4. Boolean Literals

PL/SQL có ba literal boolean: TRUE, FALSE, và NULL.

DECLARE
is_student BOOLEAN := TRUE;
BEGIN
IF is_student THEN
DBMS_OUTPUT.PUT_LINE('This person is a student.');
ELSE
DBMS_OUTPUT.PUT_LINE('This person is not a student.');
END IF;
END;

Kết quả đầu ra:

This person is a student.

5. Date Literals

Date literals được bao quanh bởi dấu ngoặc đơn và phải ở định dạng được chỉ định bởi tham số NLS_DATE_FORMAT của bạn.

DECLARE
hire_date DATE := '01-JAN-2023';
BEGIN
DBMS_OUTPUT.PUT_LINE('Hire date: ' || hire_date);
END;

Kết quả đầu ra:

Hire date: 01-JAN-23

Putting It All Together

Bây giờ chúng ta đã涵盖 constants và literals, hãy xem cách chúng ta có thể sử dụng chúng cùng nhau trong một ví dụ phức tạp hơn:

DECLARE
-- Constants
pi CONSTANT NUMBER(7,6) := 3.141592;
greeting CONSTANT VARCHAR2(20) := 'Hello, ';

-- Variables using literals
radius NUMBER := 5;
name VARCHAR2(20) := 'Alice';
is_circle BOOLEAN := TRUE;

-- Calculated value
area NUMBER;
BEGIN
IF is_circle THEN
area := pi * radius * radius;
DBMS_OUTPUT.PUT_LINE(greeting || name || '!');
DBMS_OUTPUT.PUT_LINE('The area of your circle is: ' || ROUND(area, 2) || ' square units.');
ELSE
DBMS_OUTPUT.PUT_LINE('This is not a circle calculation.');
END IF;
END;

Kết quả đầu ra:

Hello, Alice!
The area of your circle is: 78.54 square units.

Trong ví dụ này, chúng ta đã sử dụng constants (pigreeting), numeric literals (5), string literals ('Alice'), và một literal boolean (TRUE). Chúng ta cũng đã thực hiện một phép toán sử dụng những giá trị này và hiển thị kết quả.

Conclusion

Chúc mừng! Bạn vừa bước những bước đầu tiên vào thế giới của constants và literals trong PL/SQL. Nhớ rằng, constants giống như những người bạn trung thành sẽ ở bên bạn suốt chương trình của mình, trong khi literals là những khối xây dựng mà bạn sử dụng để tạo ra những kiệt tác PL/SQL của mình.

Trong quá trình tiếp tục hành trình lập trình của mình, bạn sẽ thấy mình sử dụng những khái niệm này ngày càng nhiều. Chúng là những công cụ cần thiết trong bộ công cụ của bất kỳ nhà lập trình nào, giúp mã của bạn dễ đọc hơn, dễ bảo trì hơn và hiệu quả hơn.

Tiếp tục thực hành, luôn tò mò, và sooner than later, bạn sẽ viết được những chương trình PL/SQL phức tạp một cách dễ dàng. Chúc bạn may mắn!

Concept Description Example
Constant A value that doesn't change throughout program execution pi CONSTANT NUMBER(7,6) := 3.141592;
Numeric Literal A number used directly in the code 25, 5.9
Character Literal A single character enclosed in single quotes 'A'
String Literal A sequence of characters enclosed in single quotes 'John Doe'
Boolean Literal One of TRUE, FALSE, or NULL TRUE, FALSE, NULL
Date Literal A date value enclosed in single quotes '01-JAN-2023'

Credits: Image by storyset