Jump to content

Где (SQL)

А WHERE Предложение в SQL указывает, что оператор языка манипулирования данными SQL (DML) должен влиять только на строки , соответствующие указанным критериям. Критерии выражаются в виде предикатов. WHERE Предложения не являются обязательными предложениями операторов SQL DML, но могут использоваться для ограничения количества строк, на которые влияет оператор SQL DML или возвращаемых запросом. Вкратце, предложение SQL WHERE используется для извлечения только таких результатов из оператора SQL, например: SELECT, INSERT, UPDATE, или DELETE заявление. [1]

WHERE является зарезервированным словом SQL .

The WHERE Предложение используется вместе с операторами SQL DML и принимает следующую общую форму:

SQL-DML-Statement
FROM table_name 
WHERE predicate

все строки, для которых предикат в WHERE имеет значение True, на них влияет (или возвращает) инструкция или запрос SQL DML. Строки, для которых предикат имеет значение False или Unknown ( NULL ), не затрагиваются оператором или запросом DML.

Следующий запрос возвращает только те строки из таблицы mytable , где значение в столбце mycol больше 100.

SELECT *
FROM   mytable
WHERE  mycol > 100

Следующее DELETE Оператор только те строки удаляет из таблицы mytable , в которых столбец mycol имеет значение NULL или значение, равное 100.

DELETE
FROM   mytable
WHERE  mycol IS NULL OR mycol = 100

Предикаты

[ редактировать ]

Простые предикаты используют один из операторов =, <>, >, >=, <, <=, IN, BETWEEN, LIKE, IS NULL или IS NOT NULL.

При желании предикаты можно заключать в круглые скобки. Ключевые слова AND и OR может использоваться для объединения двух предикатов в новый. Если применяется несколько комбинаций, для группировки комбинаций можно использовать круглые скобки, чтобы указать порядок оценки. Без скобок, AND оператор имеет более сильную привязку, чем OR.

В следующем примере из таблицы mytable удаляются строки , где значение mycol больше 100, а значение item равно строковому литералу Hammer:

DELETE
FROM   mytable
WHERE  mycol > 100 AND item = 'Hammer'

IN найдет любые значения, существующие в наборе кандидатов.

SELECT ename WHERE ename IN ('Montreal', 'Quebec')

Все строки соответствуют предикату, если их значение является одним из возможных значений. Это то же самое поведение, что и

SELECT ename WHERE ename='value1' OR ename='value2'

за исключением того, что последний может позволить сравнивать несколько столбцов, каждый из которых IN пункт нет. Для большего числа кандидатов IN менее многословен.

BETWEEN найдет любые значения в пределах диапазона.

SELECT ename WHERE ename BETWEEN 'value1' AND 'value2'
SELECT salary from emp WHERE salary BETWEEN 5000 AND 10000

Все строки соответствуют предикату, если их значение находится между значениями «значение1» и «значение2» включительно.

НРАВИТЬСЯ

[ редактировать ]

LIKE найдет строку, соответствующую определенному описанию.

  • Конечный подстановочный знак
    • Найдите любую строку, начинающуюся с буквы «S».
      SELECT ename FROM emp WHERE ename LIKE 'S%';
      
  • Ведущий подстановочный знак
    • Найдите любую строку, оканчивающуюся на букву «S».
      SELECT ename FROM emp WHERE ename LIKE '%S';
      
  • Несколько подстановочных знаков
    • Найдите любую строку, содержащую где угодно букву «S».
      SELECT ename FROM emp WHERE ename LIKE '%S%';
      
  • Подстановочный знак из одного символа
    • Найдите любую строку, содержащую букву «А», за которой следует любой одиночный символ, за которым следует буква «Е».
      SELECT ename FROM emp WHERE ename LIKE '%A_E%';
      
  • Классы персонажей [2]
    • Найдите любую строку, начинающуюся с буквы, цифры или символа «_».
      SELECT ename FROM emp WHERE ename LIKE '[a-zA-Z0-9_]%';
      

Предикат LIKE обычно выполняет поиск без обычного повышения производительности индексов. Вместо этого использование '=', '<>' и т. д. повысит производительность. Чувствительность к регистру (например, «S» и «s») может различаться в зависимости от продукта или конфигурации базы данных.

ПОХОЖО НА

[ редактировать ]

Он используется в PostgresSQL , который поддерживает регулярные выражения со следующим синтаксисом: [3]

string [NOT] SIMILAR TO pattern [ESCAPE escape-character]

Он работает аналогично оператору LIKE, упомянутому выше.

  1. ^ «Предложение SQL WHERE – что следует знать новичкам» .
  2. ^ Microsoft Technet, дата обращения 21 ноября 2013 г.
  3. ^ «9.7. Сопоставление с образцом» . Документация PostgreSQL . 11 мая 2023 г. Проверено 10 июня 2023 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4a8d1b875077bb69dcaafc9f2ad8d347__1687472940
URL1:https://arc.ask3.ru/arc/aa/4a/47/4a8d1b875077bb69dcaafc9f2ad8d347.html
Заголовок, (Title) документа по адресу, URL1:
Where (SQL) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)