SQL Where: способы применения и примеры
Одним из самых распространенных языков программирования для работы с базами данных считается SQL. Конструкции языка позволяют не только создать базу, но и проводить с ней разнообразные манипуляции на изменение данных или их выборку.
Для выбора данных с базы используется конструкция Select [набор данных] from [имя таблицы]. Как показывает опыт, в 80 % случаев использования запросов на выборку данных нужно применять разнообразные условия — параметры. Для этого в язык, как дополнение к запросу, его усложнение, введено условие SQL-Where.
Способы применения условия Where
Довольно часто программисту необходимо отобрать, в основном для предоставления отчета, данные, хранимые в базе. Для этого может быть недостаточно построить простой запрос на выборку. Как правило, необходимо еще учитывать разнообразные условия, параметры выборки, которых может быть довольно много, или проверять. входят ли данные в очерченный диапазон или находятся в определенной таблице.
Конструкция SQL-Where может быть использована для задания условий выборки данных или для проверки вхождения данных в выборку или стороннюю таблицу.
Использование Where для задания параметров выборки
Если нужно задать определенные параметры для выбора с базы отчетных данных, синтаксис конструкции SQL-Where можно организовать довольно просто. Для этого можно пользоваться следующими правилами:
Нужно простроить стандартный запрос, с помощью конструкции Select * from.
Определить с помощью ключевой конструкции Join, с каких таблиц будет делаться выбор.
С помощью конструкции Where задать перечень параметров для выборки.
Такого рода запросы довольно просты в построении и не вызывают трудностей даже у новичков.
Использование конструкции для проверки вхождения
Если программисту поставлена задача не только выбрать из таблицы данные по условию, но и проверить их вхождение в одну или несколько таблиц другого плана, конструкция SQL-Where будет незаменима.
С помощью синтаксиса этой конструкции можно построить те же условия, но с вложенными запросами, которые будут проверять вхождение выбираемых строк в набор сторонних таблиц базы данных.
Как правило, для таких целей формируется временная таблица, в которую записывается весь необходимый, для проверки вхождения набор данных.
Примеры использования Where
Сейчас будут приведены примеры Where SQL. Для начал представим, что есть две таблицы с данными — Tovar и TovarAmount. В первой имеются названия продаваемого товара, цена, дата продажи и клиент, который приобрел товар. Во второй указано наличие товара, а если точнее, какой есть в наличии.
Примером запроса с параметром, который укажет все товары, проданные за определенное количество дней, будет конструкция следующего характера:
Select * from Tovar
Where T_Date >= ‘12/01/2016’ and T_Date<= ‘’12/07/1016 and T_PriceOut >0
Такого плана запрос вернет список товаров, данных с таблицы, которые были проданы за первые семь дней декабря, на что указывает одно из условий выборки: T_PriceOut >0.
Если же рассмотреть условие вывода товаров, которые есть в наличии, то конструкция будет такого плана:
Select * from Tovar
Where T_Tovar in (select TA_Tovar where TA_ Amount >0)
Вложенных условий в Where может быть много, но стоит упомянуть, что чем больше условий накладывается, тем дольше будет работать запрос. Именно это стало причиной использования временных таблиц. Намного быстрее сформировать несколько таких, а потом сравнить данные в них, чем строить условие с несколькими уровнями проверки данных.