Các hàng giới hạn của Oracle

Cac Hang Gioi Han Cua Oracle



Giới hạn hàng là một tính năng mạnh mẽ và phổ biến được thực hiện bởi hầu hết các công cụ cơ sở dữ liệu quan hệ. Giới hạn hàng đề cập đến số hàng mà câu lệnh SQL SELECT có thể trả về.

Trong hầu hết các trường hợp, số lượng giới hạn tối đa được đặt bởi công cụ cơ sở dữ liệu. Tuy nhiên, chúng tôi có thể ghi đè giá trị này trong truy vấn của mình bằng các kỹ thuật khác nhau. Trước khi thay đổi số hàng được trả về bởi câu lệnh SQL SELECT, bạn nên xem xét các tài nguyên sẵn có trong hệ thống của mình.







Giới hạn hàng là một tính năng có giá trị vì nhiều lý do. Thứ nhất, nó giúp ngăn các truy vấn trả lại quá nhiều dữ liệu, điều này có thể sử dụng hết các tài nguyên có giá trị và gây ra một số vấn đề về hiệu suất.



Thứ hai, nó có thể giúp ngăn chặn các cuộc tấn công SQL injection bằng cách giới hạn lượng dữ liệu mà kẻ tấn công có thể trích xuất từ ​​cơ sở dữ liệu.



Bài đăng này sẽ thảo luận về một định dạng ngắn để giới hạn số lượng bản ghi được trả về từ một truy vấn Oracle nhất định. Hãy nhớ rằng không có mệnh đề LIMIT trong cơ sở dữ liệu Oracle như bạn sẽ thấy trong các cơ sở dữ liệu khác như MySQL, PostgreSQL, v.v.





Oracle ROWNUM

Để chúng tôi triển khai mệnh đề giống như giới hạn, chúng tôi sử dụng hàm rownum trong SQL. Hàm này trả về số hàng trong một kết quả nhất định.

Ví dụ sử dụng:

Giả sử chúng ta có một bảng chứa thông tin cơ sở dữ liệu như trong hình sau:



Vấn đề:

Giả sử chúng ta chỉ quan tâm đến năm hàng đầu tiên của bảng.

Dung dịch:

Chúng ta có thể sử dụng truy vấn như trong đoạn mã sau:

chọn * từ cơ sở dữ liệu ROWNUM <= 5;

Trong truy vấn trước, chúng tôi xác định một câu lệnh có điều kiện để đảm bảo rằng số hàng được trả về nhỏ hơn hoặc bằng 5. Điều này buộc số lượng bản ghi từ truy vấn dừng lại ở con số năm.

Một ví dụ đầu ra như sau:

Phần kết luận

Hàm ROWNUM của Oracle là một công cụ mạnh mẽ để giới hạn số lượng hàng được trả về trong một truy vấn SQL của Oracle. Nó có thể được sử dụng theo nhiều cách khác nhau để kiểm soát số lượng hàng được truy vấn trả về và đảm bảo rằng chỉ dữ liệu phù hợp nhất mới được trả về.