sql >> Database teknologi >  >> RDS >> SQLite

SQLite grænse

Oversigt :i denne tutorial lærer du, hvordan du bruger SQLite LIMIT klausul for at begrænse antallet af rækker, der returneres af en forespørgsel.

Introduktion til SQLite LIMIT klausul

LIMIT klausulen er en valgfri del af SELECT udmelding. Du bruger LIMIT klausul for at begrænse antallet af rækker, der returneres af forespørgslen.

For eksempel en SELECT erklæring kan returnere en million rækker. Men hvis du blot skal bruge de første 10 rækker i resultatsættet, kan du tilføje LIMIT klausul til SELECT sætning for at hente 10 rækker.

Det følgende illustrerer syntaksen for LIMIT klausul.

SELECT
	column_list
FROM
	table
LIMIT row_count;Code language: SQL (Structured Query Language) (sql)

row_count er et positivt heltal, der angiver antallet af returnerede rækker.

For eksempel for at få de første 10 rækker i tracks tabel, bruger du følgende sætning:

SELECT
	trackId,
	name
FROM
	tracks
LIMIT 10;Code language: SQL (Structured Query Language) (sql)

Prøv det

Hvis du vil have de første 10 rækker startende fra de 10 rækker i resultatsættet, bruger du OFFSET søgeord som følgende:

SELECT
	column_list
FROM
	table
LIMIT row_count OFFSET offset;Code language: SQL (Structured Query Language) (sql)

Eller du kan bruge følgende stenografiske syntaks for LIMIT OFFSET klausul:

SELECT
	column_list
FROM
	table
LIMIT offset, row_count;Code language: SQL (Structured Query Language) (sql)

For eksempel for at få 10 rækker startende fra de 11 rækker i tracks tabel, bruger du følgende sætning:

SELECT
	trackId,
	name
FROM
	tracks
LIMIT 10 OFFSET 10;Code language: SQL (Structured Query Language) (sql)

Prøv det

Du finder ofte anvendelser af OFFSET i webapplikationer til paginering af resultatsæt.

SQLite LIMIT og ORDER BY klausul

Du bør altid bruge LIMIT klausul med ORDER BY klausul. Fordi du ønsker at få et antal rækker i en specificeret rækkefølge, ikke i en uspecificeret rækkefølge.

ORDER BY klausulen vises før LIMIT klausul i SELECT udmelding. SQLite sorterer resultatsættet før det får antallet af rækker angivet i LIMIT klausul.

SELECT
   column_list
FROM
   table
ORDER BY column_1
LIMIT row_count;Code language: SQL (Structured Query Language) (sql)

For at få de 10 største numre efter størrelse, bruger du f.eks. følgende forespørgsel:

SELECT
	trackid,
	name,
	bytes
FROM
	tracks
ORDER BY
	bytes DESC
LIMIT 10;Code language: SQL (Structured Query Language) (sql)

Prøv det

For at få de 5 korteste spor, sorterer du sporene efter længden angivet i millisekunders kolonne ved hjælp af ORDER BY klausul og få de første 5 rækker ved hjælp af LIMIT klausul.

SELECT
	trackid,
	name,
	milliseconds
FROM
	tracks
ORDER BY
	milliseconds ASC
LIMIT 5;Code language: SQL (Structured Query Language) (sql)

Prøv det

Få den n højeste og den laveste værdi

Du kan bruge ORDER BY og LIMIT klausuler for at få de n rækker med højeste eller laveste værdi. For eksempel vil du måske gerne vide det næstlængste spor, det tredjemindste spor osv.

For at gøre dette skal du bruge følgende trin:

  1. Brug først ORDER BY for at sortere resultatsættet i stigende rækkefølge, hvis du vil have den n laveste værdi, eller faldende rækkefølge, hvis du vil have den n højeste værdi.
  2. For det andet skal du bruge LIMIT OFFSET klausul for at få den n højeste eller den n laveste række.

Følgende sætning returnerer det næstlængste spor i tracks tabel.

SELECT
	trackid,
	name,
	milliseconds
FROM
	tracks
ORDER BY
	milliseconds DESC
LIMIT 1 OFFSET 1;Code language: SQL (Structured Query Language) (sql)

Prøv det

Følgende sætning får det tredjemindste spor på tracks tabel.

SELECT
	trackid,
	name,
	bytes
FROM
	tracks
ORDER BY
	bytes
LIMIT 1 OFFSET 2;Code language: SQL (Structured Query Language) (sql)

Prøv det

I denne øvelse har du lært, hvordan du bruger SQLite LIMIT klausul for at begrænse antallet af rækker, der returneres af forespørgslen.


  1. Hvordan laver man en case-sensitive GROUP BY?

  2. Sådan logger du forespørgsler i PostgreSQL

  3. Svarende til explode() for at arbejde med strenge i MySQL

  4. PSQLEundtagelse:ResultSet er ikke placeret korrekt, måske skal du ringe næste gang