Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Неделя 07 Лекция 2 (11).doc
Скачиваний:
2
Добавлен:
13.11.2019
Размер:
196.61 Кб
Скачать

11.5.5. Использование функции starting.

Если в условии поиска нужно, чтобы значение какого-либо символьного столбца или выражения начиналось с определенной подстроки, в условии поиска необходимо указать предложение

<значение> [NOT] STARTING [WITH] <подстрока>

Тогда в результирующий запрос будут включены только те строки, для которых выполняется указанное условие.

ПРИМЕР

Выберем коды, фамилии, имена и отчества читателей, начинающиеся с буквы «И».

SELECT Code, FamilyNamе, Name, Patronymic

FROM Readers

WHERE FamilyNamе STARTING WITH ‘И’;

Результаты выполнения запроса представлены в таблице 11.13.

Таблица 11.13.

Code

FamilyNamе

Name

Patronymic

1

Иванов

Петр

Иванович

3

Ильин

Иван

Петрович

11.5.6. Использование функции containing.

Если нужно, чтобы значение какого-либо символьного столбца или выражения включало в себя (неважно, начиная с какого символа) определенную подстроку, в условии поиска необходимо указать предложение

<значение> [NOT] CONTAINING <значение>

ПРИМЕР

Выберем коды, фамилии, имена и отчества читателей, в фамилии которых содержится последовательность букв «ко».

SELECT Code, FamilyNamе, Name, Patronymic

FROM Readers

WHERE FamilyNamе CONTAINING ‘ко’;

Результаты выполнения запроса представлены в таблице 11.14.

Таблица 11.14.

Code

FamilyNamе

Name

Patronymic

4

Суренко

Дмитрий

Павлович

6

Носенко

Олег

Владимирович

11.5.7. Использование функции upper.

Функция UPPER(<значение>) используется для преобразования букв символьных значений (содержимого столбца, результата вычисления выражения) к заглавным. Обычно эта функция используется в условиях поиска, когда необходимо игнорировать регистр букв. Функция UPPER может фигурировать как в списке столбцов результирующего набора данных (после слова SELECT), так и в условии поиска в предложении WHERE.

ПРИМЕР

Выберем коды, фамилии, имена и отчества читателей, в фамилии которых содержится последовательность букв «ко» не зависимо от того заглавные они или прописные.

SELECT Code, FamilyNamе, Name, Patronymic

FROM Readers

WHERE UPPER(FamilyNamе) CONTAINING ‘КО’;

Результаты выполнения запроса представлены в таблице 11.15.

Таблица 11.15.

Code

FamilyNamе

Name

Patronymic

4

Суренко

Дмитрий

Павлович

5

Коршунова

Наталья

Юрьевна

6

Носенко

Олег

Владимирович

11.5.8. Использование функции like.

Предложение LIKE задает шаблоны сравнения строковых значений. Если необходимо, чтобы сравниваемое значение (значение столбца или результат вычисления строкового выражения) удовлетворяло шаблону, в условии поиска необходимо указать

<значение> [NOT] LIKE < шаблон> [ESCAPE <подшаблон>]

В шаблоне используются специальные символы – "%" и "_". Символ "%" (процент) используется для указания любого значения любой длины и символ "_" (подчеркивание) для указания любого единичного символа. Например:

  • IssuePlace LIKE ‘М%’ – это шаблон означает, что первый символ значения обязательно должен быть символом М, а все остальные символы не представляют интереса и не проверяются;

  • IssuePlace LIKE ‘М___’ – этот шаблон означает, что значение должно иметь длину, равную строго четырем символам, причем первым символом обязательно должен быть символ ‘М’;

  • IssuePlace LIKE ‘%е’ – этот шаблон определяет любую последовательность символов длиной не менее одного символа, причем последним символом обязательно должен быть символ ‘е’;

  • IssuePlace LIKE ‘%Днепропетровская область%’ – этот шаблон означает, что нас интересует любая последовательность символов, включающая подстроку ‘Днепропетровская область’;

  • IssuePlace NOT LIKE ‘М%’ – этот шаблон указывает, что требуются любые строки, которые не начинаются с символа ‘М’.

Если требуемая строка должна включать также служебный символ, используемый в качестве символа подстановки, то следует применить некоторый «escape»-символ, поместив его перед символом подстановки. Например, для проверки значений на соответствие строке ‘15%’ можно воспользоваться таким условием поиска:

LIKE ‘15#%’ ESCAPE ‘#’

ПРИМЕР

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

SELECT Code, Series, Number, IssuePlace

FROM PasportData

WHERE IssuePlace LIKE ‘%Днепропетровская область%’;

Результаты выполнения этого запроса представлены в таблице 11.16

Таблица 11.16.

Code

Series

Number

IssuePlace

3

АБ

87134

Днепропетровская область, село Соленое

7

АЗ

43188

Днепропетровская область, г. Днепродзержинск

12

ИК

45190

Днепропетровская область, село Петропавловка