Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Con trỏ trong SQL là gì và cách triển khai nó như thế nào?

Con trỏ trong SQL tạo thành một phần không thể thiếu của bất kỳ cơ sở dữ liệu nào về cơ bản giúp người dùng duyệt qua cơ sở dữ liệu mà không gặp nhiều rắc rối. Thông qua phương tiện của bài viết này về Con trỏ trong SQL, tôi sẽ cung cấp cho bạn tất cả các chi tiết cần thiết mà bạn cần phải có trước khi bạn bắt đầu làm quen với nó.

Dưới đây là các chủ đề tôi sẽ thảo luận trong bài viết này:

  • Con trỏ trong SQL là gì?
  • Các loại con trỏ SQL
  • Cú pháp của con trỏ SQL
  • Vòng đời con trỏ

Con trỏ trong SQL là gì?

Con trỏ trong SQL là một đối tượng cho phép duyệt qua các hàng của bất kỳ tập kết quả nào. Với điều này, bạn có thể xử lý một hàng riêng lẻ của cơ sở dữ liệu được trả về bởi một truy vấn. Nó là vùng làm việc tạm thời hoặc vùng ngữ cảnh được tạo trong hệ thống bộ nhớ trong quá trình thực thi câu lệnh SQL, nơi lưu trữ dữ liệu được truy xuất từ ​​cơ sở dữ liệu và hỗ trợ thao tác với nó. Bạn có thể coi đó là sự sắp xếp của các hàng cùng với một con trỏ trỏ đến hàng hiện tại. Con trỏ là một đối tượng cơ sở dữ liệu có thể chứa nhiều hơn một hàng nhưng nó chỉ có thể xử lý một hàng tại một thời điểm. Tập hợp các hàng được giữ bởi các lưu giữ con trỏ được gọi là hoạt động đặt. Do đó, bạn có thể kiểm soát bản ghi của một bảng theo kỹ thuật singleton, tức là một hàng tại bất kỳ thời điểm nào.

Bây giờ bạn đã quen với con trỏ trong SQL là gì, bây giờ chúng ta hãy tiếp tục và xem xét các kiểu khác nhau của nó.

Các loại con trỏ SQL

SQL cung cấp hai loại con trỏ mà tôi đã liệt kê bên dưới:

  1. Con trỏ ngầm

Bất cứ khi nào các thao tác DML như INSERT, UPDATE và DELETE được xử lý trong cơ sở dữ liệu, các con trỏ ngầm sẽ được tạo tự động và được sử dụng bởi framework. Những loại con trỏ này được sử dụng để xử lý nội bộ và không thể được kiểm soát hoặc tham chiếu từ một vùng mã khác. Con trỏ ngầm trong SQL chỉ giữ các hàng bị ảnh hưởng bởi thao tác và chỉ có thể tham chiếu đến con trỏ gần đây nhất bằng cách sử dụng các thuộc tính con trỏ được hiển thị bên dưới trong bảng.

Thuộc tính Mô tả
% FOUND Nó sẽ trả về TRUE trong trường hợp câu lệnh INSERT, UPDATE hoặc DELETE ảnh hưởng đến một hoặc nhiều hàng hoặc câu lệnh SELECT INTO trả về một hoặc nhiều hàng. Trong các trường hợp khác, nó sẽ trả về FALSE.
% NOTFOUND Về mặt kỹ thuật, nó đối lập với thuộc tính% FOUND. Nó trả về TRUE trong trường hợp câu lệnh INSERT, UPDATE hoặc DELETE không ảnh hưởng đến bất kỳ hàng nào hoặc câu lệnh SELECT INTO trả về không có hàng nào. Nếu không, nó chỉ trả về FALSE.
% ISOPEN Thuộc tính này sẽ luôn trả về FALSE cho các con trỏ ngầm vì con trỏ SQL tự động đóng ngay sau khi câu lệnh SQL liên quan được thực thi.
% ROWCOUNT Nó trả về tổng số hàng bị ảnh hưởng bởi câu lệnh INSERT, UPDATE hoặc DELETE hoặc các hàng được trả về bởi câu lệnh SELECT INTO.
  1. Con trỏ rõ ràng

Loại con trỏ này được tạo ra bất cứ khi nào người dùng xử lý dữ liệu thông qua một khối SQL. Nói chung, việc sử dụng truy vấn SELECT kích hoạt việc tạo ra một con trỏ rõ ràng và có thể chứa nhiều hàng nhưng chỉ xử lý một hàng tại một thời điểm. Loại con trỏ này được sử dụng để giữ các bản ghi có trong một cột. Điều này cho phép các lập trình viên tạo một vùng ngữ cảnh được đặt tên để thực thi các hoạt động DML của họ nhằm kiểm soát tốt hơn. Ngoài ra, nó cần được xác định trong khối SQL và đến lượt nó được tạo cho một truy vấn CHỌN bằng cách sử dụng mã đó.

Để hiểu rõ hơn về con trỏ, bây giờ chúng ta hãy xem cú pháp của con trỏ trong SQL là gì.

Cú pháp của Con trỏ SQL

Dưới đây là cú pháp chung để tạo con trỏ rõ ràng.

CURSOR cursorName IS selectStatement;

Tại đây:

cursorName - Tên này thể hiện tên hợp lệ cho con trỏ

selectStatement - Điều này thể hiện một truy vấn chọn sẽ trả về nhiều hàng

Bây giờ chúng ta hãy tiếp tục bài viết này và xem vòng đời của con trỏ SQL.

Vòng đời con trỏ

Về cơ bản có 5 giai đoạn trong vòng đời của con trỏ trong SQL mà tôi đã liệt kê bên dưới:

  1. Khai báo
DECLARE cursorName CURSOR
FOR selectStatement;

Bước này sẽ giúp bạn chỉ định tên và kiểu dữ liệu của con trỏ và câu lệnh SELECT sẽ xác định tập kết quả của nó.

  1. Mở
OPEN cursorName;

Bước này sẽ cho phép bạn mở và điền con trỏ bằng cách thực thi nó.

  1. Tìm nạp
FETCH NEXT FROM cursor INTO variableList;

Bước này sẽ truy xuất một hàng từ con trỏ và lưu trữ nó thành một hoặc nhiều biến.

[Tùy chọn] CheckStatus

WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM cursorName;
END;

Hàm này trả về trạng thái của câu lệnh FETCH cuối cùng được thực thi trên con trỏ. Trong trường hợp hàm này trả về 0 thì có nghĩa là hoạt động FETCH đã thành công. Để tìm nạp tất cả các hàng từ con trỏ, mệnh đề WHILE được sử dụng.

  1. Đóng
CLOSE cursorName;

Bước này sẽ giúp bạn đóng con trỏ sau khi hoàn tất các thao tác.

  1. Phân bổ thỏa thuận
DEALLOCATE cursor_name;

Bước này sẽ giúp định vị con trỏ và giải phóng dung lượng bộ nhớ.

Với điều này, tôi muốn kết thúc bài viết này về Con trỏ trong SQL. Tôi hy vọng bài viết này đã giúp bạn trong việc bổ sung giá trị kiến ​​thức của bạn. Để biết thêm thông tin về SQL hoặc Cơ sở dữ liệu, bạn có thể tham khảo danh sách đọc toàn diện của chúng tôi tại đây: Cơ sở dữ liệu Edureka .

Kiến thức cơ bản về SQL cho người mới bắt đầu | Học SQL | Hướng dẫn SQL cho người mới bắt đầu | Edureka

Video Edureka về ‘Kiến thức cơ bản về SQL cho người mới bắt đầu’ này sẽ giúp bạn hiểu kiến ​​thức cơ bản về SQL và cả các truy vấn SQL rất phổ biến và cần thiết.

Nếu bạn muốn được đào tạo có cấu trúc về MySQL, hãy xem Đào tạo chứng chỉ MySQL DBA của chúng tôi đi kèm với đào tạo trực tiếp do người hướng dẫn hướng dẫn và trải nghiệm dự án thực tế. Khóa đào tạo này sẽ giúp bạn hiểu sâu về MySQL và giúp bạn đạt được thành thạo về chủ đề này.

Bạn có câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của ” Con trỏ trong SQL ”Và tôi sẽ liên hệ lại với bạn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối PowerShell với Salesforce.com

  2. Thực tế chuyện gì đang xảy ra với Seek đó?

  3. Tại sao việc sử dụng Unit Test là một khoản đầu tư lớn vào Kiến trúc chất lượng cao

  4. Cách xóa hàng trong SQL

  5. Bộ xử lý AMD EPYC trong Máy ảo Azure