SQL — предложение TOP, LIMIT, FETCH FIRST
Язык структурированных запросов — это компьютерный язык, который мы используем для взаимодействия с реляционной базой данных. SQL — это инструмент для организации, управления и извлечения архивных данных из компьютерной базы данных. Т
Предложение SQL-SELECT TOP:
Предложение SELECT TOP возвращает только выбранное количество (или) процент выбранных строк, присутствующих в записи. Это ценно на огромных таблицах с большим количеством записей. Возврат бесчисленных записей может повлиять на выполнение.
Примечание. Не все системы баз данных поддерживают предложение SELECT TOP.
Ключевое слово TOP используется с сопутствующими системами баз данных:
- SQL-сервер
- МС доступ
Давайте разберемся в этом на примере.
Шаг 1: Создание базы данных в SQL Server. Используйте приведенный ниже оператор SQL для создания базы данных с именем testdb:
Запрос:
CREATE DATABASE testdb;
Шаг 2: Использование базы данных. Используйте приведенный ниже оператор SQL, чтобы переключить контекст базы данных на testdb:
Запрос:
USE testdb;
Шаг 3: Определение таблицы
Запрос:
CREATE TABLE Employee ( EmpId INTEGER PRIMARY KEY, EmpName VARCHAR(225) NOT NULL, Email VARCHAR(225) NOT NULL, Address VARCHAR(225) NOT NULL, Salary MONEY NOT NULL );
Шаг 4: Добавление данных в таблицу
Запрос:
INSERT INTO Employee(EmpId,EmpName,Email,Address,Salary) VALUES(1,"Rama","rama@gmail.com","Ahmedabad",2000), (2,"Kalam","Kalam@gmail.com","Delhi",1500), (3,"Komal","komal@gmail.com","Hyderabad",2000), (4,"Karan","kar@gmail.com","Kota",6500), (5,"Hardik","har@gmail.com","Mumbai",8500), (6,"chaitu","chai@gmail.com","Bhopal",5500);
Шаг 5: Мы можем использовать приведенный ниже оператор, чтобы увидеть все содержимое созданной таблицы:
Запрос:
SELECT * FROM Employee;
Выход:
Теперь мы видим Top Count с условием where.
Синтаксис:
SELECT column1, column2, … TOP count
FROM table_name
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]];
В приведенном выше синтаксисе условия WHERE являются необязательными условиями, которые должны быть истинными для выбора записей. Выражение ORDER BY — это необязательный оператор в запросе, используемый для возврата результата либо в возрастающем, либо в убывающем порядке в соответствии с ключевым словом (ASC или DESC). Счетчик TOP используется с оператором SELECT для ограничения количества строк в результирующем наборе.
Давайте разберемся с этим, используя несколько примеров запросов. Сопровождающий оператор SQL выбирает начальные 4 записи из таблицы:
Запрос:
SELECT TOP 4* FROM Employee;
Выход:
Оператор TOP можно использовать в таких ситуациях, как приведенный выше запрос, где нам нужно найти записи первых 4 сотрудников из таблицы.
Запрос:
SELECT TOP 4* FROM Employee ORDER BY Salary DESC;
Выход:
Здесь из приведенного выше запроса оператор TOP выбирает 4 лучших сотрудника с максимальной зарплатой, и ему не нужно использовать какие-либо условные операторы. ORDER BY Salary DESC отсортирует записи в порядке убывания, и, используя TOP 4, мы получим первые 4 строки из отсортированного результата.
Мы также можем включить некоторые ситуации, используя предложение WHERE в приведенном выше запросе. Предположим, мы не хотим, чтобы в нашем наборе результатов были сотрудники, чья зарплата меньше 2000, и хотим, чтобы первые 2 сотрудника имели низкие баллы.
Запрос:
SELECT TOP 2* FROM Employee WHERE Salary>2000 ORDER BY Salary;
Выход:
Приведенный выше запрос выберет всех сотрудников в соответствии с заданным условием (т.е. будут выбраны все сотрудники, кроме сотрудника, чья зарплата меньше 2000), затем результат будет отсортирован по зарплате в порядке возрастания (ключевое слово ORDER BY сортирует записи в в порядке возрастания по умолчанию). Наконец, приведенный выше запрос вернет первые две строки.
ВЕРХНИЙ ПРОЦЕНТ SQL:
Ключевое слово PERCENT используется для выбора первичных n процентов всех строк. Например,
Запрос:
SELECT TOP 50 PERCENT* FROM Employee;
Выход:
Здесь приведенный выше запрос выберет первые 50% записей о сотрудниках из общего числа записей (т. е. будут возвращены первые 3 строки).
SQL TOP PERCENT с предложением WHERE:
Мы также можем включить некоторые ситуации, используя TOP PERCENT с предложением WHERE в приведенном выше запросе.
Запрос:
SELECT TOP 50 PERCENT* FROM Employee WHERE Salary<5000;
Выход:
Приведенный выше запрос выберет 50% лучших записей из общего числа записей из таблицы в соответствии с заданным условием, так что он вернет только 50% лучших записей с сотрудником, чья зарплата меньше 5000 (т.е. , будет возвращено 2 строки)
Предложение SQL LIMIT:
Мы просто используем команду LIMIT, чтобы ограничить количество результатов, которые вернут нам количество строк. Предложение LIMIT используется с сопутствующими системами баз данных:
- MySQL
- PostgreSQL
- SQLite
Поскольку предложение LIMIT не поддерживается в SQL Server, нам нужно создать таблицу в MySQL/PostgreSQL/SQLite. Следуя приведенным выше шагам (SQL Server), мы можем создать таблицу в базе данных MySQL.
CREATE TABLE Employee ( EmpId INTEGER PRIMARY KEY, EmpName VARCHAR(225) NOT NULL, Email VARCHAR(225) NOT NULL, Address VARCHAR(225) NOT NULL, Salary MONEY NOT NULL ); INSERT INTO Employee(EmpId,EmpName,Email,Address,Salary) VALUES(1,"Rama","rama@gmail.com","Ahmedabad",2000), (2,"Kalam","Kalam@gmail.com","Delhi",1500), (3,"Komal","komal@gmail.com","Hyderabad",2000), (4,"Karan","kar@gmail.com","Kota",6500), (5,"Hardik","har@gmail.com","Mumbai",8500), (6,"chaitu","chai@gmail.com","Bhopal",5500); Select * from employee
Выход:
Теперь давайте посмотрим, как здесь использовать лимитный запрос. Для этого мы используем SELECT с LIMIT в MySQL.
Запрос:
SELECT * FROM Employee LIMIT 2;
Выход:
В приведенном выше запросе оператор LIMIT ограничивает количество возвращаемых записей. Здесь он возвращает первые 2 строки из таблицы.
SQL LIMIT с предложением WHERE:
Сопровождающий запрос выбирает начальные 4 записи из таблицы Employee с заданным условием.
Запрос:
SELECT * FROM Employee WHERE Salary=2000 LIMIT 2;
Выход:
Приведенный выше запрос выберет всех сотрудников в соответствии с наложенным условием (т.е. он выберет ограниченные 2 записи из таблицы, где зарплата равна 2000). Наконец, приведенный выше запрос вернет первые две строки.
LIMIT SQL с предложением OFFSET:
Ключевое слово OFFSET используется для указания начальных строк, откуда следует выбирать строки. Например,
Запрос:
SELECT * FROM Employee LIMIT 2 OFFSET 2;
Выход:
Здесь приведенный выше запрос выбирает 2 строки с начала из третьей строки (т. е. OFFSET 2 означает, что начальные 2 строки исключаются или избегаются).
SQL FETCH FIRST n ROWS ONLY Предложение:
В системе баз данных Oracle используется условие FETCH FIRST n ROWS ONLY.
Запрос:
SELECT * FROM Employee FETCH FIRST 3 ROWS ONLY;
Выход:
Здесь приведенный выше запрос будет извлекать первые 3 строки только из таблицы. Мы также можем включить некоторые ситуации, используя предложение FETCH FIRST PERCENT и WHERE в приведенном выше запросе.
SQL FETCH ПЕРВЫЙ ПРОЦЕНТ:
Запрос:
SELECT * FROM Employee FETCH FIRST 50 PERCENT ROWS ONLY;
Выход:
Здесь приведенный выше запрос извлекает первые 50% от общего числа строк (т. е. 3 строки) из таблицы.
SQL FETCH FIRST с предложением WHERE:
Запрос:
SELECT * FROM Employee WHERE Salary=2000 FETCH FIRST 1 ROWS ONLY;
Выход:
Здесь приведенный выше запрос извлекает первую 1 строку из таблицы с условием, что зарплата равна 2000 (т. е. он возвращает только 1 строку).