Ograniczanie wierszy to potężna i powszechna funkcja implementowana przez większość aparatów relacyjnych baz danych. Ograniczenie wierszy odnosi się do liczby wierszy, które może zwrócić instrukcja SQL SELECT.
W większości przypadków maksymalna liczba limitów jest ustalana przez silnik bazy danych. Możemy jednak zastąpić tę wartość w naszym zapytaniu przy użyciu różnych technik. Przed zmianą liczby wierszy, które zwraca instrukcja SQL SELECT, dobrze jest wziąć pod uwagę dostępne zasoby w systemie.
Limit wierszy jest cenną funkcją z kilku powodów. Po pierwsze, pomaga zapobiegać zwracaniu przez zapytania nadmiernej ilości danych, co może zużywać cenne zasoby i powodować pewne problemy z wydajnością.
Po drugie, może pomóc w zapobieganiu atakom polegającym na iniekcji SQL, ograniczając ilość danych, które osoba atakująca może wyodrębnić z bazy danych.
W tym poście omówimy krótki format ograniczania liczby rekordów zwracanych z danego zapytania Oracle. Pamiętaj, że w bazie danych Oracle nie ma klauzuli LIMIT, którą znajdziesz w innych bazach danych, takich jak MySQL, PostgreSQL itp.
Oracle ROWNUM
Aby zaimplementować klauzulę podobną do limitu, używamy funkcji rownum w SQL. Ta funkcja zwraca liczbę wierszy w danym wyniku.
Przykład użycia:
Załóżmy, że mamy tabelę zawierającą informacje o bazie danych, jak pokazano na poniższym obrazku:
Problem:
Załóżmy, że interesuje nas tylko pięć pierwszych wierszy z tabeli.
Rozwiązanie:
Możemy użyć zapytania, jak pokazano w poniższym fragmencie:
wybierz * z baz danych, gdzie ROWNUM <= 5;W poprzednim zapytaniu definiujemy instrukcję warunkową, która zapewnia, że zwracana liczba wierszy jest mniejsza lub równa 5. Wymusza to ograniczenie liczby rekordów z zapytania do pięciu.
Przykładowe dane wyjściowe są następujące:
Wniosek
Funkcja Oracle ROWNUM to potężne narzędzie do ograniczania liczby wierszy zwracanych w zapytaniu Oracle SQL. Może być używany na różne sposoby do kontrolowania liczby wierszy zwracanych przez zapytanie i zapewnia zwracanie tylko najbardziej odpowiednich danych.