Изберете първите 10 реда в SQL

Izberete P Rvite 10 Reda V Sql



Когато работим в SQL база данни, може да попаднем на случаи, в които трябва да извлечем конкретно подмножество от редове от дадена таблица. Това ни позволява да ограничим ресурсите, необходими за извличане на стойностите от таблицата.

За щастие в SQL имаме достъп до клаузата LIMIT, която ни позволява да контролираме броя на редовете, които се връщат в даден набор от резултати. Тази функция е много полезна, когато имаме работа с голям набор от данни и всъщност не се нуждаем от целия ред, а от подмножество от него. Това може да бъде или получаване на оформлението на данните или презентацията.

В този урок ще научим как можем да използваме и работим с клаузата LIMIT в SQL бази данни, за да посочим броя на редовете, които искаме да извлечем от базата данни.







Изисквания:

Преди да се потопим в работата и използването на клаузата LIMIT в SQL, нека обсъдим някои основни изисквания за този урок.



За да следвате тази публикация, ще ви трябва следното:



  1. MySQL 8.0 и по-нова версия работи с MySQL 5
  2. Достъп до примерната база данни Sakila
  3. Разрешения за заявка на редовете от целевата база данни (достъп за четене)

След като дадените изисквания са изпълнени, можем да продължим с този урок.





SQL ОГРАНИЧЕНИЕ

В SQL клаузата LIMIT ни позволява да ограничим броя на редовете, които се връщат от дадена SQL заявка. Например, в оператор select, вместо да върнем всички редове от таблицата, която може да съдържа над 1000 записа, можем да изберем да прегледаме само първите 10 реда.

Следното показва основния синтаксис на клаузата LIMIT в SQL:



ИЗБЕРЕТЕ col1, col2, ...

ОТ tbl_name

LIMIT num_rows;

В този пример използваме клаузата LIMIT във връзка с оператора SELECT.

От дадения синтаксис „tbl_name“ представлява името на таблицата, от която искаме да извлечем данните.

„num_rows“ ни позволява да посочим максималния брой редове, които се връщат в набора от резултати.

Пример 1: Ограничете броя на редовете

Най-честата и основна роля на клаузата LIMIT е да зададе максималния брой редове, които са включени в набора от резултати.

Да предположим, че искаме да използваме таблицата „film“ от примерната база данни на Sakila. Тъй като обаче не искаме да извличаме всички свързани редове, можем да изберем първите 10 реда, както е показано в следната примерна клауза:

ИЗБЕРЕТЕ * ОТ филм

ОГРАНИЧЕНИЕ 10 ;

След като изпълним дадената заявка, трябва да получим изход, както следва:

  Екранна снимка на автоматично генерирано описание на компютъра

В този пример използваме клаузата LIMIT, за да ограничим набора от резултати до 10 реда. Това извлича първите 10 реда от резултата.

Пример 2: Използване на стойността OFFSET

В някои случаи може да пожелаем да пропуснем или пропуснем определен брой редове. Да предположим например, че искаме да извлечем само пет елемента, но искаме да започнем от позиция 20. Можем да използваме параметъра OFFSET, който ни позволява да кажем на клаузата LIMIT от коя позиция искаме да започнем.

Това е особено полезно, когато трябва да приложите пагинацията в голям набор от данни, както е показано в следния пример:

ИЗБЕРЕТЕ film_id, title, release_year, `length` FROM film

ОГРАНИЧЕНИЕ 10 ИЗМЕСТВАНЕ двадесет ;;

Това трябва да върне 10 реда, започвайки от позиция 20, както следва:

Както можете да видите от дадения резултат, началният „film_id“ започва от позиция 21 и продължава до позиция 30.

Пример 3: Използване на клаузата Order BY

Друго обичайно използване на клаузата LIMIT е в комбинация с клаузата ORDER BY. Това ни позволява да извлечем определен брой редове, които са базирани на определен ред. Това може да включва основно сортиране (възходящо или низходящо) и т.н.

Да предположим например, че искаме да извлечем първите 10 най-дълги филма от таблицата „филми“. Можем да използваме клаузата ORDER BY, за да сортираме стойностите въз основа на дължината и след това да ограничим първите 10 реда.

Пример е следният:

ИЗБЕРЕТЕ f.film_id, f.title, f.length

ОТ филм f

ПОРЪЧКА ПО дължина DESC

ОГРАНИЧЕНИЕ 10 ;

В този случай използваме клаузата ORDER BY, за да подредим редовете в низходящ ред (от най-висок към най-нисък) и след това извличаме първите 10 реда с помощта на клаузата LIMIT.

Резултатът е както следва:

  Таблица на списък Описание, генерирано автоматично със средна степен на сигурност

Ето го!

Заключение

В тази публикация научихме основите и разширените функции на работата с клаузата LIMIT в SQL бази данни.