Using Substitution Variables – Sử dụng biến tạm thời trong SQL

Trong SQL, substitution variables là các biến tạm thời mà bạn có thể sử dụng trong các câu lệnh SQL để làm cho câu lệnh trở nên linh hoạt và tương tác hơn. Các biến này thường được sử dụng trong các môi trường SQL tương tác như SQL*Plus của Oracle hoặc các công cụ quản lý cơ sở dữ liệu có khả năng nhận đầu vào từ người dùng.

Using Substitution Variables – Sử dụng biến tạm thời trong SQL

Cách sử dụng Substitution Variables

1. SQL*Plus của Oracle

Trong SQL*Plus, substitution variables được biểu diễn bằng cách sử dụng dấu & hoặc &&.

  • &: Yêu cầu người dùng nhập giá trị mỗi khi biến xuất hiện.
  • &&: Yêu cầu người dùng nhập giá trị chỉ một lần, sau đó sẽ sử dụng lại giá trị đó trong toàn bộ phiên làm việc.

Ví dụ với &:

SELECT *
FROM TAB1
WHERE id = '&id';

Khi bạn chạy câu lệnh này, SQL*Plus sẽ yêu cầu bạn nhập giá trị cho biến id.

Ví dụ với &&:

SELECT *
FROM TAB1
WHERE Id = '&&id';

Khi bạn chạy câu lệnh này lần đầu tiên, SQL*Plus sẽ yêu cầu bạn nhập giá trị cho biến id. Sau đó, giá trị này sẽ được sử dụng cho tất cả các lần sử dụng &&id trong phiên làm việc hiện tại. (bạn chỉ cần nhập 1 lần đầu thôi, từ lần sau hệ thống sẽ lấy biến đã được lưu trữ ra sử dụng.)

2. Sử dụng Substitution Variables trong PL/SQL Developer hoặc SQL Developer

Trong các công cụ như PL/SQL Developer hoặc SQL Developer, bạn cũng có thể sử dụng substitution variables theo cách tương tự.

SELECT *
FROM TAB1
WHERE Id = &emp_id;

Khi bạn chạy câu lệnh này, công cụ sẽ yêu cầu bạn nhập giá trị cho biến emp_id.

Đặt giá trị mặc định cho Substitution Variables

Bạn có thể đặt giá trị mặc định cho substitution variables để tránh việc phải nhập giá trị mỗi lần.

DEFINE emp_id = 100;
SELECT *
FROM TAB1
WHERE Id = &emp_id;

Trong ví dụ này, giá trị mặc định của emp_id là 100. Nếu bạn muốn thay đổi giá trị, bạn có thể làm như sau:

UNDEFINE emp_id;
DEFINE emp_id = 200;
SELECT *
FROM TAB1
WHERE Id = &emp_id;

Sử dụng trong câu lệnh UPDATE hoặc DELETE

Bạn cũng có thể sử dụng substitution variables trong các câu lệnh khác như UPDATE hoặc DELETE.

Ví dụ UPDATE:

UPDATE TAB1
SET Salary = Salary * 1.1
WHERE Id = '&id';

Khi chạy câu lệnh này, SQL*Plus sẽ yêu cầu bạn nhập giá trị cho biến id.

Ví dụ DELETE:

DELETE FROM TAB1
WHERE Id = &emp_id;

Khi chạy câu lệnh này, SQL*Plus sẽ yêu cầu bạn nhập giá trị cho biến emp_id.

Tóm lại nhé:

Sử dụng substitution variables là một cách hiệu quả để làm cho các câu lệnh SQL trở nên linh hoạt và tương tác hơn. Bằng cách cho phép người dùng nhập các giá trị vào thời điểm chạy, bạn có thể viết các câu lệnh tổng quát hơn mà không cần phải sửa đổi mã nguồn mỗi khi có thay đổi. Điều này đặc biệt hữu ích trong các môi trường phát triển và thử nghiệm cơ sở dữ liệu.

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận