Читаем SQL: быстрое погружение полностью

В предыдущих примерах для поиска необходимого текста мы использовали оператор =. SQL также позволяет искать фрагменты текстовой строки с помощью оператора LIKE. Это особенно полезно, когда мы не знаем, как именно было записано в базе данных текстовое значение. Кроме того, бывают случаи, когда текстовое значение было написано с ошибками. Если понадобится найти все счета, выставленные в городах, название которых начинается с буквы T, в условии WHERE придется изменить параметры.

Оператор LIKE использует подстановочные знаки, представленные символом % (символ процента). То, что следует за знаком =, это единственное значение, которое вы увидите в своем наборе результатов. С помощью оператора LIKE и подстановочного знака вы можете определить варианты ввода.

Примечание

Подстановочные знаки всегда заключаются в одинарные кавычки. Не заключенный в кавычки символ % — это просто арифметический оператор (показан ранее в этой главе в таблице операторов). Текстовый поиск не чувствителен к регистру. При использовании в запросе строчной или заглавной буквы результаты будут одинаковы.

С помощью подстановочного знака можно задать любое количество символов любого типа. Как показано в примере ниже, запрос ищет любые счета, выставленные в городах на букву T. В результат теперь попали Торонто и Тусон.

SELECT

InvoiceDate,

BillingAddress,

BillingCity,

Total

FROM

invoices

WHERE

BillingCity LIKE 'T%'

ORDER BY

Total

Рис. 50

Добавление еще одного символа % перед буквой T изменит условие поиска на поиск счета, выставленного в городе, название которого содержит букву T.

SELECT

InvoiceDate,

BillingAddress,

BillingCity,

Total

FROM

invoices

WHERE

BillingCity LIKE '%T%'

ORDER BY

Total

Рис. 51

Примечание

Разумеется, при этом в результатах появятся и города, названия которых начинаются или заканчиваются строчной буквой t. Символ % может представлять любую букву (буквы), включая строчную t.

Оператор LIKE также используется для исключения результатов, соответствующих указанным параметрам. Для этого необходимо поставить ключевое слово NOT перед оператором LIKE, и вы сможете исключить записи из результата запроса.

SELECT

InvoiceDate,

BillingAddress,

BillingCity,

Total

FROM

invoices

WHERE

BillingCity NOT LIKE '%T%'

ORDER BY

Total

Из примеров видно, что существует множество способов использования оператора с подстановочными знаками. Рассмотрим наиболее распространенные.

Рис. 52

Рис. 53

Примечание

Символ % можно интерпретировать как «что угодно». Например, когда вы указываете '%T%', вы имеете в виду: «Меня не беспокоит, какие символы содержатся в строке до или после буквы T (буква T при этом не первая и не последняя)».

<p id="_8_xhtml_2523toc_marker_8_5"><strong>Фильтрация записей по дате</strong></p>

Используя все знания как о числах, так и о тексте, вы сможете теперь выполнить поиск счета, выставленного в определенную дату. Рассмотрим следующий пример:

SELECT

InvoiceDate,

BillingAddress,

BillingCity,

Total

FROM

invoices

WHERE

InvoiceDate = '2009-01-03 00:00:00'

ORDER BY

Total

Рис. 54

Обратите внимание на способ написания даты. При указании даты в запросе важно сначала проанализировать, каким образом дата хранится в запрашиваемой таблице. Как вы знаете из главы 1, для этого надо перейти на вкладку Browse Data (Просмотр данных), выбрать таблицу invoices и проанализировать формат, в котором столбец InvoiceDate хранит даты. В нашей базе данных даты хранятся в формате гггг-мм-дд 00:00:00. Затем перейдите на вкладку Database Structure (Структура базы данных) и проанализируйте поле InvoiceDate таблицы invoices. Вы видите, что в столбце Type даты имеют тип данных DATETIME.

В условии WHERE дата, как и текст, заключена в одинарные кавычки. При работе с датами используйте те же операторы, что и при работе с числами: =, >, <, BETWEEN и т. д.

<p id="практические_задания_7">Практические задания</p>

• Получите все счета, выставленные в период с 1 января 2009 г. по 31 декабря 2009 г.

• Найдите 10 самых крупных счетов, полученных после 5 июля 2009 г.

<p id="_8_xhtml_2523toc_marker_8_6"><strong>Функция DATE()</strong></p>

При работе с датами в SQL можно использовать ряд функций, которые помогают получать более точные результаты. Из предыдущего примера видно, что столбец InvoiceDate таблицы invoices имеет тип данных DATETIME. Поэтому, когда мы указывали значение даты в услови WHERE, мы включали время (2009-01-03 00:00:00). Функция DATE()позволяет исключить время при указании параметров даты.

SELECT

InvoiceDate,

BillingAddress,

BillingCity,

Total

FROM

Invoices

WHERE

DATE(InvoiceDate) = '2009-01-03'

ORDER BY

Total

Рис. 55

Результат этого запроса идентичен результату предыдущего запроса. Однако использование функции DATE() позволяет получить результат быстрее, когда параметры времени либо отсутствуют, либо не актуальны.

Примечание

В SQL доступно множество функций. Функция DATE () особенно полезна при использовании условия WHERE для сортировки записей по дате. В главе 7 мы более подробно рассмотрим другие функции.

<p id="_8_xhtml_2523toc_marker_8_7"><strong>Использование операторов AND и OR с двумя отдельными полями</strong></p>
Перейти на страницу:

Все книги серии Библиотека программиста

Программист-фанатик
Программист-фанатик

В этой книге вы не найдете описания конкретных технологий, алгоритмов и языков программирования — ценность ее не в этом. Она представляет собой сборник практических советов и рекомендаций, касающихся ситуаций, с которыми порой сталкивается любой разработчик: отсутствие мотивации, выбор приоритетов, психология программирования, отношения с руководством и коллегами и многие другие. Подобные знания обычно приходят лишь в результате многолетнего опыта реальной работы. По большому счету перед вами — ярко и увлекательно написанное руководство, которое поможет быстро сделать карьеру в индустрии разработки ПО любому, кто поставил себе такую цель. Конечно, опытные программисты могут найти некоторые идеи автора достаточно очевидными, но и для таких найдутся темы, которые позволят пересмотреть устоявшиеся взгляды и выйти на новый уровень мастерства. Для тех же, кто только в самом начале своего пути как разработчика, чтение данной книги, несомненно, откроет широчайшие перспективы. Издательство выражает благодарность Шувалову А. В. и Курышеву А. И. за помощь в работе над книгой.

Чед Фаулер

Программирование, программы, базы данных / Программирование / Книги по IT

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных