Limit SQL

Limit SQL
Klauzule limitu i przesunięcia w SQL pozwalają ograniczyć liczbę rekordów zwracanych przez instrukcję wyboru.

W tym artykule przyjrzy się użyciu klauzul limitów i przesunięcia w SQL.

NOTATKA: Dobrze jest pamiętać, że limit SQL i klauzule przesunięcia nie są częścią standardu ANSI SQL. Jest to jednak szeroko stosowane przez główne silniki bazy danych.

Składnia

Składnia klauzul limitów i przesunięcia jest jak pokazano poniżej:

WYBIERAĆ
col1, col2,… coln
Z
NAZWA TABELI
Zamów według nazwy kolumnowej
Odsunięcie odliczania limitu;

Wartość limitu określi liczbę wierszy/rekordów zwróconych z zapytania.

Wartość przesunięcia umożliwia pominięcie określonych wierszy przed rozpoczęciem pobierania dopasowania rekordów.

NOTATKA: Wartość przesunięcia nie jest wymagana. Jeśli brakuje, zapytanie pobiera rekordy z pierwszego rzędu.

Przykład
Załóżmy, że masz przykładową tabelę i dane, jak pokazano w pytaniu poniżej:

Utwórz pracowników tabeli (
ID szeregowy klucz podstawowy,
Full_name Varchar (255),
e -mail varchar (255),
Departament Varchar (100),
data start_date,
Aktywny bool,
kategoria varchar (50)
);
Wstaw do pracowników (Full_name, e -mail, dział, start_date, aktywny, kategoria)
Wartości
(„Meghan Edwards”, „[email protected] ', „Game Development”, „2016-06-22”, True, „Dev-G1”),
(„Sam Davis”, „[email protected] ', „Game Development”, „2014-01-04”, false, „dev-g1”),
(„Taylor Miller”, „[email protected] ', „Game Development”, „2019-10-06”, True, „Dev-G1”),
(„Wilson Smitty”, „Smitty_wilson@przykład.net ', „baza danych programista”, „2016-12-23”, true, „dev-db1”),
(„Barbara Moore”, „[email protected] „,„ Dewabase Developer ”,„ 2015-12-23 ”, true,„ dev-db1 ”),
(„Raj Chan”, „[email protected] ', „Database Developer”, „2017-12-23”, false, „dev-db1”),
(„Susan Brown”, „[email protected] ', „DevOps Engineer”, „2011-12-23”, true, „dev-ups1”),
(„Marial Anderson”, „Anderson@przykład.Org ', „DevOps Engineer”, „2015-12-23”, true, „dev-ups1”),
(„Nancy Thomas”, „[email protected] ', „DevOps Engineer”, „2014-12-23”, false, „dev-ups1”);

Możesz wyświetlić wszystkie rekordy w tabeli za pomocą zapytania, jak pokazano:

Wybierz * od pracowników;

Powinno to zwrócić wszystkie wiersze, jak pokazano:

Załóżmy, że chcemy pierwszych 3 rekordów. W tym celu możemy użyć klauzuli limitu jako:

Wybierz * z limitu pracowników 3;

Powyższe zapytanie powinno zwrócić pierwsze trzy wiersze, zaczynając od 1. Wyjście jest tak, jak pokazano:

Co jeśli chcesz odzyskać następujące trzy elementy? Możemy użyć klauzuli limitu i przesunięcia, jak pokazano poniżej:

Wybierz * Z pracowników Ogranicz 3 przesunięcie 3;

Powyższe zapytanie zwróci trzy elementy zaczynające się od czwartego rzędu (włącznie). Jeśli masz identyfikator dla swoich wierszy, dane wyjściowe powinny być opisowe, jak pokazano:

Zakończenie

Jak pokazano w tym artykule, klauzule limitu i przesunięcia są cechą bezpieczeństwa, która uniemożliwia pobieranie tysięcy, jeśli nie milionów rekordów w jednym zapytaniu. Dlatego dobrze jest wykorzystać tę funkcję do prostej paginacji i ładnej wydajności.