Запрос SQL Select: Отбор строк по условию (WHERE)

WHERE - отбор по условию в SQL
Vovan_ST

Vovan_ST

ИТ специалист со стажем. Автор статьи. Профиль

SQL-запросы, извлекающие из таблицы все строки, полезны при просмотре ба­зы данных и создании отчетов, однако редко применяются для чего-нибудь еще. Обычно требуется выбрать из таблицы и включить в результаты запроса только несколько строк. Чтобы указать, какие строки нужно отобрать, используется предложение WHERE. Ниже показано несколько запросов, в которых встречается это предложение.

Предыдущие статьи:

  1. Простейщие запросы SQL: оператор SELECT
  2. Вычисления в SQL запросах Select
  3. Выборка всех данных из таблицы
  4. SELECT DISTINCT - выборка уникальных значений

Офисы, в которых фактические объемы продаж превысили плановые.

SELECT CITY, SALES, TARGET
    FROM OFFICES
  WHERE SALES > TARGET;

CITY                   SALES          TARGET
------------    ------------    ------------
New York         $692,637.00     $575,000.00
Atlanta          $367,911.00     $350,000.00
Los Angeles      $835,915.00     $725,000.00

Имя, объемы фактических и плановых продаж служащего с идентификатором 105.

SELECT NAME, SALES, QUOTA
    FROM SALESREPS
  WHERE EMPL_NUM = 105;


NAME                   SALES            QUOTA
-----------     ------------     ------------
 Bill Adams      $367,911.00      $350,000.00

Список всех служащих, менеджером которых является Боб Смит (идентификатор 104).

SELECT NAME, SALES
    FROM SALESREPS
  WHERE MANAGER = 104;

NAME                    SALES
------------     ------------
  Bill Adams       $367,911.00
 Dan Roberts       $305,673.00
   Paul Cruz       $286,775.00

Предложение WHERE состоит из ключевого слова WHERE, за которым следует ус­ловие отбора, определяющее, какие именно строки требуется извлечь. В преды­дущем запросе, например, условием отбора являлось выражение manager = 104. На рис. 4 изображено, как работает предложение WHERE. Концептуально все строки в таблице SALESREPS просматриваются одна за другой, и к каждой из них применяется условие отбора. Если в условии отбора встречается имя столбца (как, например, имя MANAGER в предыдущем примере), то используется значение этого столбца из текущей строки. Для каждой из строк условие отбора может иметь од­но из трех перечисленных ниже значений.

  • Если условие отбора имеет значение TRUE, строка будет включена в ре­зультаты запроса. Например, значение столбца MANAGER в строке для Билла Адамса (Bill Adams) соответствует условию отбора, поэтому строка для него включается в результаты запроса.
  • Если условие отбора имеет значение false, то строка исключается из ре­зультатов запроса. Например, значение столбца manager в строке для Сью Смит (Sue Smith) не соответствует условию отбора, поэтому строка для нее исключается из результатов запроса.
  • Если условие отбора имеет значение NULL, то строка исключается из ре­зультатов запроса. Например, значение столбца MANAGER в строке для Сэма Кларка (Sam Clark) равно NULL, поэтому строка для него исключа­ется из результатов запроса.

Отбор строк с помощью предложения where

Рис. 4. Отбор строк с помощью предложения where

Рис. 5 иллюстрирует другой способ рассмотрения роли, выполняемой усло­вием отбора в предложении WHERE. Можно сказать, что условие отбора служит фильтром для строк таблицы. Строки, удовлетворяющие условию отбора, про­ходят через фильтр и становятся частью результатов запроса. Строки, не удов­летворяющие условию отбора, отфильтровываются и исключаются из результа­тов запроса.

Предложение WHERE в роли фильтра

Рис. 5. Предложение WHERE в роли фильтра

Вас заинтересует / Intresting for you:

SQL: Правила выполнения однота...
SQL: Правила выполнения однота... 1453 просмотров Дэйзи ак-Макарова Sat, 31 Jul 2021, 06:47:05
SELECT * - выборка всех столбц...
SELECT * - выборка всех столбц... 1587 просмотров Боба Thu, 24 Jun 2021, 18:54:25
DISTINCT: выборка уникальных з...
DISTINCT: выборка уникальных з... 3907 просмотров Боба Thu, 24 Jun 2021, 19:20:28
Условия отбора в операторе SEL...
Условия отбора в операторе SEL... 26613 просмотров Боба Mon, 28 Jun 2021, 19:18:42
Войдите чтобы комментировать