PL/SQL - Dieu kien

Xin chào các pháp sư tương lai của PL/SQL! Hôm nay, chúng ta sẽ lặn sâu vào thế giới kỳ diệu của các điều kiện trong PL/SQL. Đừng lo lắng nếu bạn là người mới bắt đầu lập trình - tôi sẽ hướng dẫn bạn từng bước trong hành trình này, giống như tôi đã làm cho hàng trăm học sinh trong những năm dạy học của mình. Vậy, hãy lấy một tách cà phê (hoặc trà, nếu đó là sở thích của bạn), và chúng ta cùng bắt đầu!

PL/SQL - Conditions

Điều kiện là gì trong PL/SQL?

Hãy tưởng tượng bạn đang ở một ngã rẽ, và bạn cần quyết định要走哪条路. Đó chính xác là điều mà các điều kiện làm trong lập trình - chúng giúp mã của bạn đưa ra quyết định. Trong PL/SQL, các điều kiện được sử dụng để kiểm soát luồng chương trình của bạn dựa trên một số tiêu chí nhất định.

Tầm quan trọng của các điều kiện

Các điều kiện là những khối xây dựng của logic trong lập trình. Chúng cho phép mã của bạn trở nên thông minh và linh hoạt. Nếu không có điều kiện, chương trình của bạn sẽ giống như một chuyến tàu trên một ray duy nhất - nó chỉ có thể đi theo một hướng. Với các điều kiện, nó giống như có một hệ thống đường ray phức tạp nơi mã của bạn có thể đi theo các hướng khác nhau dựa trên các tình huống khác nhau.

Các loại câu điều kiện trong PL/SQL

Hãy cùng nhìn vào các loại câu điều kiện khác nhau có sẵn trong PL/SQL:

Câu lệnh Mục đích
IF-THEN Thực thi một khối mã nếu điều kiện là đúng
IF-THEN-ELSE Thực thi một khối mã nếu điều kiện là đúng, một khối khác nếu sai
IF-THEN-ELSIF Kiểm tra nhiều điều kiện và thực thi các khối tương ứng
CASE Chọn một trong nhiều khối để thực thi dựa trên một giá trị

Bây giờ, hãy cùng khám phá từng loại này chi tiết hơn.

Câu lệnh IF-THEN

Câu lệnh IF-THEN là hình thức đơn giản nhất của câu điều kiện. Nó giống như nói, "Nếu điều này là đúng, thì làm điều đó."

Cú pháp và Ví dụ

IF dieukien THEN
statements;
END IF;

Hãy xem điều này trong hành động:

DECLARE
v_grade NUMBER := 75;
BEGIN
IF v_grade >= 60 THEN
DBMS_OUTPUT.PUT_LINE('Chúc mừng! Bạn đã vượt qua.');
END IF;
END;

Trong ví dụ này, nếu điểm số là 60 hoặc cao hơn, nó sẽ in ra một thông báo chúc mừng. Nếu nó dưới 60, không có gì xảy ra. Đơn giản phải không?

Câu lệnh IF-THEN-ELSE

Đôi khi, bạn muốn làm một điều nếu điều kiện là đúng, và một điều khác nếu nó sai. Đó là khi câu lệnh IF-THEN-ELSE trở nên hữu ích.

Cú pháp và Ví dụ

IF dieukien THEN
statements1;
ELSE
statements2;
END IF;

Hãy thay đổi ví dụ trước của chúng ta:

DECLARE
v_grade NUMBER := 55;
BEGIN
IF v_grade >= 60 THEN
DBMS_OUTPUT.PUT_LINE('Chúc mừng! Bạn đã vượt qua.');
ELSE
DBMS_OUTPUT.PUT_LINE('Xin lỗi, bạn không vượt qua. Hãy tiếp tục học!');
END IF;
END;

Bây giờ, mã của chúng ta xử lý cả hai kịch bản - vượt qua và không vượt qua. Nó giống như có một kế hoạch B!

Câu lệnh IF-THEN-ELSIF

Nếu bạn có nhiều điều kiện để kiểm tra, câu lệnh IF-THEN-ELSIF sẽ đến cứu giúp.

Cú pháp và Ví dụ

IF dieukien1 THEN
statements1;
ELSIF dieukien2 THEN
statements2;
ELSIF dieukien3 THEN
statements3;
ELSE
statements4;
END IF;

Hãy tạo một hệ thống chấm điểm chi tiết hơn:

DECLARE
v_grade NUMBER := 85;
BEGIN
IF v_grade >= 90 THEN
DBMS_OUTPUT.PUT_LINE('Tuyệt vời! Bạn nhận được A.');
ELSIF v_grade >= 80 THEN
DBMS_OUTPUT.PUT_LINE('Tuyệt vời! Bạn nhận được B.');
ELSIF v_grade >= 70 THEN
DBMS_OUTPUT.PUT_LINE('Tốt lắm! Bạn nhận được C.');
ELSIF v_grade >= 60 THEN
DBMS_OUTPUT.PUT_LINE('Bạn đã vượt qua với điểm D.');
ELSE
DBMS_OUTPUT.PUT_LINE('Xin lỗi, bạn không vượt qua. Hãy tiếp tục học!');
END IF;
END;

Mã này giống như một giáo viên chấm điểm - nó kiểm tra nhiều điều kiện và đưa ra phản hồi phù hợp cho mỗi phạm vi điểm số.

Câu lệnh CASE

Câu lệnh CASE hoàn hảo khi bạn có một biến hoặc biểu thức đơn và bạn muốn so sánh nó với nhiều giá trị có thể.

Cú pháp và Ví dụ

CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE result
END CASE;

Hãy sử dụng CASE để xác định ngày trong tuần:

DECLARE
v_day NUMBER := TO_CHAR(SYSDATE, 'D');
v_message VARCHAR2(20);
BEGIN
v_message := CASE v_day
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
WHEN 7 THEN 'Saturday'
ELSE 'Invalid day'
END;
DBMS_OUTPUT.PUT_LINE('Today is ' || v_message);
END;

Mã này giống như một lịch - nó lấy một số và nói cho bạn biết ngày trong tuần nào nó đại diện.

Điều kiện lồng nhau

Giống như những con búp bê Nga lồng nhau, bạn có thể có các điều kiện bên trong các điều kiện khác. Điều này được gọi là lồng nhau.

Ví dụ về Điều kiện lồng nhau

DECLARE
v_age NUMBER := 25;
v_income NUMBER := 50000;
BEGIN
IF v_age >= 18 THEN
IF v_income > 30000 THEN
DBMS_OUTPUT.PUT_LINE('Bạn đủ điều kiện để nhận thẻ tín dụng.');
ELSE
DBMS_OUTPUT.PUT_LINE('Bạn là người lớn, nhưng cần thu nhập cao hơn để nhận thẻ tín dụng.');
END IF;
ELSE
DBMS_OUTPUT.PUT_LINE('Bạn phải ít nhất 18 tuổi để đăng ký thẻ tín dụng.');
END IF;
END;

Mã này giống như một nhân viên ngân hàng kiểm tra nhiều tiêu chí trước khi phê duyệt một yêu cầu thẻ tín dụng.

Kết luận

Chúc mừng! Bạn đã vừa vượt qua thế giới của các điều kiện trong PL/SQL. Nhớ rằng, các câu điều kiện là như đèn giao thông của mã của bạn - chúng hướng dẫn luồng và đảm bảo rằng mọi thứ chạy mượt mà.

Thực hành là chìa khóa để thành thạo các khái niệm này. Hãy thử tạo ra các kịch bản riêng của bạn và xem bạn có thể sử dụng các câu điều kiện khác nhau để giải quyết vấn đề như thế nào. Trước khi bạn biết, bạn sẽ viết các chương trình PL/SQL phức tạp, thông minh và có thể xử lý mọi tình huống.

Tiếp tục lập mã, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ với nó! Ai biết, có lẽ một ngày nào đó bạn sẽ là người dạy PL/SQL cho một thế hệ học viên mới đầy tham vọng.

Credits: Image by storyset