SQL-запросы с предикатом ALL, TOP, DISTINCT, DISTINCTROW

  • Jul 26, 2021
click fraud protection

Предикат включается между предложением и первым именем поля для извлечения, возможные предикаты:

  • ВСЕ: Возвращает все поля в таблице
  • ВЕРШИНА: Возвращает определенное количество записей из таблицы
  • ОТЧЕТЛИВЫЙ: Пропускать записи, выбранные поля которых полностью совпадают
  • DISTINCTROW: Пропускать повторяющиеся записи на основе всей записи, а не только выбранных полей.

ВСЕ (вместо него можно использовать *):

Рекламные объявления

Если ни один из предикатов не включен, предполагается ВСЕ. Компонент Database Engine выбирает все записи, удовлетворяющие условиям оператора SQL. Использовать этот предикат неудобно, поскольку мы заставляем ядро ​​базы данных анализировать структура таблицы, чтобы узнать содержащиеся в ней поля, гораздо быстрее указать список полей желанный.

Рекламные объявления

ВЫБРАТЬ ВСЕ ИЗ Сотрудники;

ВЫБРАТЬ * DESDE Сотрудники;

Рекламные объявления

ВЕРШИНА

Возвращает определенное количество записей, которые попадают между началом или концом диапазона, указанного в предложении ORDER BY. Предположим, мы хотим получить имена первых 25 студентов 1994 учебного года:

Рекламные объявления

- ВЫБРАТЬ ВЕРХ 25 Имя, Фамилия DESDE Студенты

- СОРТИРОВАТЬ ПО Примечание DESC;

Рекламные объявления

Если пункт не включен СОРТИРОВАТЬ ПО, запрос вернет произвольный набор из 25 записей из таблицы «Студенты». Предикат ВЕРШИНА он не выбирает между равными ценностями. В приведенном выше примере, если 25-й класс и 26-й средний балл равны, запрос вернет 26 записей. Вы можете использовать зарезервированное слово ПРОЦЕНТОВ для возврата определенного процента записей, которые попадают в начало или конец диапазона, указанного в предложении СОРТИРОВАТЬ ПО. Предположим, что вместо первых 25 студентов мы хотим 10 процентов курса:

- ВЫБРАТЬ ВЕРХ 10 ПРОЦЕНТОВ Имя Фамилия DESDE Студенты СОРТИРОВАТЬ ПО Примечание DESC;

Значение, которое следует за ВЕРШИНА должно быть целым числом без знака.ВЕРШИНА это не влияет на возможное обновление запроса.

ОТЧЕТЛИВЫЙ

Пропустить записи, содержащие повторяющиеся данные в выбранных полях. Чтобы значения каждого поля, перечисленные в заявлении ВЫБРАТЬ включенный в запрос должен быть уникальным.

Например, несколько сотрудников, перечисленных в таблице «Сотрудники», могут иметь одинаковую фамилию. Если две записи содержат Лопес в поле Фамилия, следующий оператор SQL возвращает одну запись:

- ВЫБРАТЬ ОТЛИЧИТЕЛЬНЫЙ Фамилия DESDE Сотрудники;

Другими словами, предикат ОТЧЕТЛИВЫЙ возвращает те записи, поля которых указаны в предложении ВЫБРАТЬ иметь другое содержание. Результат запроса, в котором используется ОТЧЕТЛИВЫЙ он не подлежит обновлению и не отражает последующих изменений, внесенных другими пользователями.

DISTINCTROW

Возвращает разные записи из таблицы; В отличие от предыдущего предиката, который просматривал только содержимое выбранных полей, он делает это в содержимом полной записи, независимо от полей, указанных в пункт ВЫБРАТЬ.

- ВЫБРАТЬ DISTINCTROW Фамилия DESDE Сотрудники;

Если таблица сотрудников содержит две записи: Антонио Лопес и Марта Лопес, пример предиката ОТЧЕТЛИВЫЙ возвращает одну запись со значением Lopez в поле «Фамилия», поскольку в этом поле не выполняется поиск дубликатов. Этот последний пример возвращает две записи со значением Lopez в фамилии, поскольку не дубликаты ищутся во всей записи.

instagram viewer