Mysql
 sql >> база данни >  >> RDS >> Mysql

ROW_NUMBER в SQL – Изберете Най-добър пример в SQL и SQL Server

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

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

Защо трябва да ограничавате резултатите от SQL заявките?

Базата данни обикновено е огромна колекция от данни. Понякога не е необходимо да извличаме всички резултати. За да ограничим резултатите, можем да оптимизираме заявката.

Ограничаването на резултатите от заявките е важно за производителността на DB. Извличането на голям резултат, когато не се изисква, води до допълнително натоварване на базата данни и оказва влияние върху потребителското изживяване.

Как да ограничим резултатите от заявките в SQL

Синтаксисът е различен за SQL Server, Oracle и MySQL за ограничаване на данните.

  • MySQL използва LIMIT .
  • ORACLE използва FETCH FIRST .
  • MS Access и SQL Server използват TOP .

Ще видим примери за това как работи всеки един от тях в подробности по-долу.

Демонстрационна база данни

Имаме следната таблица с име students с техните подробности, както можете да видите по-долу:

ID Име Пол
1 Райън М
2 Джоана F
3 Миранда Андерсен F
4 Далия Мата F
5 Лилиана Бойд F
6 Лекси Шарп М
7 Jazlene Cordova F
8 Брайсен Вернер М
9 Кариса Търнър F
10 Айша Додсън F
11 Айдън Рийвс М

Как да ограничим заявка в MySQL

По-долу е синтаксисът за MySQL.

SELECT  (expression)
FROM 
    table_name
LIMIT 5;

Като пример ще изберем първите 5 записа от таблицата.

Нека използваме нашата таблица students за тази демонстрация.

-- fetch top 5 values from table

SELECT * FROM students
LIMIT 5;

Изход:

Как да комбинирате LIMIT с ORDER BY

Когато комбинирате LIMIT с ORDER BY, можете да получите по-значими резултати. Например можем да използваме това, за да намерим първите 5 студенти, които са отбелязали повече от 70% на изпита си.

Нека поръчаме нашата маса students с колоната name и изберете първите 5 от резултата. Можете да направите това по следния начин:

SELECT * FROM students
order by name
LIMIT 5;

Изход:

Как да ограничим резултатите – синтаксис на Oracle

По-долу е еквивалентният синтаксис за първия ни пример в Oracle.

SELECT * FROM students
FETCH FIRST 5 ROWS ONLY;

В по-старите версии на Oracle можете да използвате ROWNUM, за да ограничите броя на редовете, върнати от заявка.

Пример:

SELECT * FROM 
students 
WHERE ROWNUM < 5;

Как да ограничим резултатите в SQL – синтаксис MS Access

По-долу е еквивалентният синтаксис за първия ни пример в MS Access.

SELECT TOP 5 * FROM students;

Приключване

Функционалността LIMIT може да бъде много мощна за оптимизиране на заявки, когато се комбинира със сортиране. Ефективните заявки са по-леки за системата и бързи за потребителя. Винаги се препоръчва да ОГРАНИЧИТЕ резултатите, където е приложимо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция SUM() в MySQL

  2. MySQL ПРИ АКТУАЛИЗИРАНЕ НА ДУБЛИРАН КЛЮЧ за множество редове, вмъкване в една заявка

  3. Стъпки за инсталиране на Mysql56 на linux

  4. Общ преглед на клъстерния Kubernetes оператор Percona XtraDB

  5. Извикване на функция-член execute() на булев вход