SQL, czyli ustrukturyzowany język zapytań, pozwala nam zbierać dane z bazy danych za pomocą zapytań. Umożliwia nam również wstawianie, aktualizowanie i usuwanie tych danych.
W tym poście na blogu skupimy się na tym, jak pobierać dane i ograniczać wyniki za pomocą SQL.
Dlaczego należy ograniczać wyniki zapytań SQL?
Baza danych to zwykle ogromny zbiór danych. Czasami nie musimy pobierać wszystkich wyników. Aby ograniczyć wyniki, możemy zoptymalizować zapytanie.
Ograniczenie wyników zapytań jest ważne dla wydajności bazy danych. Pobieranie dużego wyniku, gdy nie jest wymagane, wiąże się z dodatkowym obciążeniem bazy danych i wpływa na wygodę użytkownika.
Jak ograniczyć wyniki zapytań w SQL
Składnia jest inna dla SQL Server, Oracle i MySQL w celu ograniczenia danych.
- MySQL używa
LIMIT
. - ORACLE używa
FETCH FIRST
. - MS Access i SQL Server używają
TOP
.
Zobaczymy przykłady, jak każdy z nich działa szczegółowo poniżej.
Baza danych demonstracyjnych
Mamy następującą tabelę o nazwie students
z ich szczegółami, jak widać poniżej:
ID | Nazwa | Płeć |
---|---|---|
1 | Ryan | M |
2 | Joanna | F |
3 | Miranda Andersen | F |
4 | Dalia Mata | F |
5 | Lilianna Boyd | F |
6 | Lexie Sharp | M |
7 | Jazlene Cordova | F |
8 | Brycen Werner | M |
9 | Karissa Turner | F |
10 | Aisha Dodson | F |
11 | Aydin Reeves | M |
Jak ograniczyć zapytanie w MySQL
Poniżej znajduje się składnia MySQL.
SELECT (expression)
FROM
table_name
LIMIT 5;
Jako przykład wybierzemy pierwsze 5 rekordów z tabeli.
Skorzystajmy z naszej tabeli students
dla tej demonstracji.
-- fetch top 5 values from table
SELECT * FROM students
LIMIT 5;
Wyjście:
Jak połączyć LIMIT z ORDER BY
Łącząc LIMIT z ORDER BY, możesz uzyskać bardziej znaczące wyniki. Na przykład możemy to wykorzystać, aby znaleźć 5 najlepszych uczniów, którzy zdali na egzaminie więcej niż 70%.
Zamówmy naszą tabelę students
z kolumną name
i wybierz 5 najlepszych z wyniku. Możesz to zrobić w ten sposób:
SELECT * FROM students
order by name
LIMIT 5;
Wyjście:
Jak ograniczyć wyniki – składnia Oracle
Poniżej znajduje się równoważna składnia naszego pierwszego przykładu w Oracle.
SELECT * FROM students
FETCH FIRST 5 ROWS ONLY;
W starszych wersjach Oracle można użyć ROWNUM, aby ograniczyć liczbę wierszy zwracanych przez zapytanie.
Przykład:
SELECT * FROM
students
WHERE ROWNUM < 5;
Jak ograniczyć wyniki w SQL – składnia MS Access
Poniżej znajduje się równoważna składnia naszego pierwszego przykładu w MS Access.
SELECT TOP 5 * FROM students;
Zawijanie
Funkcjonalność LIMIT może być bardzo przydatna do optymalizacji zapytań w połączeniu z sortowaniem. Wydajne zapytania są lżejsze w systemie i szybsze dla użytkownika. Zawsze zaleca się OGRANICZENIE wyników tam, gdzie ma to zastosowanie.