Hướng dẫn cơ bản về chuỗi trong PL/SQL

Xin chào, những pháp sư PL/SQL tương lai! 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 chuỗi trong PL/SQL. Đừng lo lắng nếu bạn chưa bao giờ viết một dòng mã trước đây - tôi sẽ là người hướng dẫn thân thiện của bạn, và chúng ta sẽ cùng nhau bước từng bước. Cuối cùng của bài hướng dẫn này, bạn sẽ có khả năng manipulates chuỗi như một chuyên gia!

PL/SQL - Strings

什么是字符串?

Trước khi chúng ta đi sâu vào, hãy bắt đầu từ những điều cơ bản. Trong lập trình, một chuỗi đơn giản là một序列 các ký tự. Nó có thể là một từ, một câu hoặc thậm chí cả một đoạn văn. Hãy tưởng tượng nó là bất kỳ văn bản nào bạn có thể gõ trên bàn phím.

Khai báo biến chuỗi

Trong PL/SQL, chúng ta cần phải khai báo các biến trước khi sử dụng chúng. Điều này giống như giới thiệu bản thân trước khi bắt đầu một cuộc trò chuyện - đó chỉ là phép lịch sự!

Khai báo cơ bản biến chuỗi

Hãy bắt đầu với cách đơn giản nhất để khai báo một biến chuỗi:

DECLARE
my_name VARCHAR2(50) := 'John Doe';
BEGIN
DBMS_OUTPUT.PUT_LINE('Tên của tôi là: ' || my_name);
END;

Trong ví dụ này:

  • Chúng ta sử dụng từ khóa DECLARE để bắt đầu khai báo biến.
  • my_name là tên của biến của chúng ta.
  • VARCHAR2(50) có nghĩa là nó là một chuỗi có độ dài biến thiên và có thể chứa tối đa 50 ký tự.
  • := là toán tử gán, tương tự như dấu bằng.
  • 'John Doe' là giá trị ban đầu chúng ta gán cho my_name.

Khi chúng ta chạy đoạn mã này, nó sẽ выводить: "Tên của tôi là: John Doe"

Sử dụng các loại chuỗi khác nhau

PL/SQL cung cấp nhiều loại chuỗi khác nhau. Hãy cùng nhìn qua một vài loại:

DECLARE
v_varchar2 VARCHAR2(20) := 'Xin chào, Thế giới!';
v_char CHAR(10) := 'Định dạng    ';
v_long LONG := 'Đây là một chuỗi dài có thể chứa tối đa 32.760 ký tự';
BEGIN
DBMS_OUTPUT.PUT_LINE('VARCHAR2: ' || v_varchar2);
DBMS_OUTPUT.PUT_LINE('CHAR: ' || v_char);
DBMS_OUTPUT.PUT_LINE('LONG: ' || v_long);
END;

Đây là những gì đang xảy ra:

  • VARCHAR2 là loại phổ biến nhất, lưu trữ chuỗi có độ dài biến thiên.
  • CHAR là cho chuỗi có độ dài cố định. Lưu ý cách nó thêm dấu cách vào phần còn lại.
  • LONG có thể lưu trữ chuỗi rất dài, nhưng nó ít linh hoạt hơn trong một số thao tác.

Hàm và toán tử chuỗi trong PL/SQL

Bây giờ chúng ta đã biết cách khai báo chuỗi, hãy cùng nhau vui vẻ với chúng!

Nối chuỗi

Nối chuỗi chỉ là một từ ngữ sang trọng để chỉ "kết hợp các chuỗi lại với nhau". Trong PL/SQL, chúng ta sử dụng toán tử ||:

DECLARE
first_name VARCHAR2(20) := 'Jane';
last_name VARCHAR2(20) := 'Smith';
full_name VARCHAR2(41);
BEGIN
full_name := first_name || ' ' || last_name;
DBMS_OUTPUT.PUT_LINE('Tên đầy đủ: ' || full_name);
END;

Điều này sẽ выводить: "Tên đầy đủ: Jane Smith"

Hàm chuỗi

PL/SQL cung cấp một kho tàng các hàm内置 để manipulates chuỗi. Hãy cùng khám phá một số hàm hữu ích nhất:

Hàm Mô tả Ví dụ
UPPER Chuyển đổi chuỗi thành chữ hoa UPPER('hello') trả về 'HELLO'
LOWER Chuyển đổi chuỗi thành chữ thường LOWER('WORLD') trả về 'world'
INITCAP Viết hoa chữ cái đầu tiên của mỗi từ INITCAP('john doe') trả về 'John Doe'
LENGTH Trả về độ dài của chuỗi LENGTH('OpenAI') trả về 6
SUBSTR Trích xuất một phần của chuỗi SUBSTR('HelloWorld', 1, 5) trả về 'Hello'
TRIM Loại bỏ ký tự chỉ định từ đầu/cuối TRIM(' Hello ') trả về 'Hello'
REPLACE Thay thế tất cả các lần xuất hiện của một substring REPLACE('JACK and JILL','J','BL') trả về 'BLACK and BLILL'

Hãy xem chúng trong hành động:

DECLARE
v_string VARCHAR2(50) := '  hello, world!  ';
BEGIN
DBMS_OUTPUT.PUT_LINE('Ban đầu: ' || v_string);
DBMS_OUTPUT.PUT_LINE('UPPER: ' || UPPER(v_string));
DBMS_OUTPUT.PUT_LINE('LOWER: ' || LOWER(v_string));
DBMS_OUTPUT.PUT_LINE('INITCAP: ' || INITCAP(v_string));
DBMS_OUTPUT.PUT_LINE('LENGTH: ' || LENGTH(v_string));
DBMS_OUTPUT.PUT_LINE('SUBSTR: ' || SUBSTR(v_string, 3, 5));
DBMS_OUTPUT.PUT_LINE('TRIM: ' || TRIM(v_string));
DBMS_OUTPUT.PUT_LINE('REPLACE: ' || REPLACE(v_string, 'o', '0'));
END;

Đoạn mã này sẽ выводить:

Ban đầu:   hello, world!
UPPER:   HELLO, WORLD!
LOWER:   hello, world!
INITCAP:   Hello, World!
LENGTH: 16
SUBSTR: hello
TRIM: hello, world!
REPLACE:   hell0, w0rld!

Kết hợp tất cả lại

Bây giờ, hãy kết hợp những gì chúng ta đã học vào một ví dụ phức tạp hơn:

DECLARE
v_sentence VARCHAR2(100) := 'Con mèo nhanh màu nâu nhảy qua con chó lười';
v_word VARCHAR2(20);
v_count NUMBER;
BEGIN
-- Đếm số lượng từ
v_count := LENGTH(v_sentence) - LENGTH(REPLACE(v_sentence, ' ', '')) + 1;
DBMS_OUTPUT.PUT_LINE('Số lượng từ: ' || v_count);

-- Trích xuất và viết hoa từ thứ 4
v_word := INITCAP(SUBSTR(v_sentence,
INSTR(v_sentence, ' ', 1, 3) + 1,
INSTR(v_sentence, ' ', 1, 4) - INSTR(v_sentence, ' ', 1, 3) - 1));
DBMS_OUTPUT.PUT_LINE('Từ thứ 4 là: ' || v_word);

-- Thay thế 'fox' bằng 'cat' và 'dog' bằng 'mouse'
v_sentence := REPLACE(REPLACE(v_sentence, 'fox', 'cat'), 'dog', 'mouse');
DBMS_OUTPUT.PUT_LINE('Câu đã thay đổi: ' || v_sentence);
END;

Ví dụ này minh họa:

  1. Đếm từ bằng cách đếm khoảng trắng
  2. Trích xuất một từ cụ thể sử dụng SUBSTRINSTR
  3. Thay thế nhiều từ trong một câu

Output:

Số lượng từ: 9
Từ thứ 4 là: Nâu
Câu đã thay đổi: Con mèo nhanh màu nâu nhảy qua con chó lười

Và thế là xong! Bạn đã chính thức bước vào thế giới kỳ diệu của chuỗi trong PL/SQL. Nhớ rằng, thực hành làm nên hoàn hảo, vì vậy đừng ngại thử nghiệm với các hàm này và tạo ra những cuộc phiêu lưu manipulates chuỗi của riêng bạn.

Trước khi bạn biết, bạn sẽ viết được các truy vấn phức tạp và gây ấn tượng với bạn bè bằng kỹ năng PL/SQL của mình. Hãy tiếp tục viết mã và chúc bạn may mắn trong việc manipulates chuỗi!

Credits: Image by storyset