Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia_SQL_2.doc
Скачиваний:
11
Добавлен:
09.12.2018
Размер:
154.62 Кб
Скачать

Специальные операторы в условиях (in, between, like)

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

Пример 7.

Выберем сведения о сотрудниках отделов O101, O105, О106 с выводом названия отдела.

1 способ

SELECT [Название отдела], [Код отдела], ФИО, Стаж

FROM Отделы, Штаты

WHERE Отделы.[Код отдела] = Штаты.[Код отдела]

AND [Код отдела]="О101" OR [Код отдела]="О105" OR

[Код отдела]="О106";

2 способ

SELECT [Название отдела], Штаты.[Код отдела], ФИО, Стаж

FROM Отделы, Штаты

WHERE Отделы.[Код отдела] = Штаты.[Код отдела]

AND Штаты .[Код отдела]= IN("О101","О105","О106");

Результат:

Название отдела

Код отдела

ФИО

Стаж

Бухгалтерия

О101

Баркун С.П.

01.01.1995

Бухгалтерия

О101

Мируца Ф.И.

01.12.1992

Бухгалтерия

О101

Мирош С.М.

01.12.1992

Снабжения

О105

Нагар Т.Р.

01.09.1998

Снабжения

О105

Мянд Л.Б.

01.09.1998

Снабжения

О105

Шуст Н.А.

01.09.2000

Маркетинга

О106

Колос П.Л.

01.10.1998

Маркетинга

О106

Протас Е.Д.

01.10.1998

Маркетинга

О106

Нагар И.Т.

01.01.2003

Оператор BETWEEN. Сходен с IN. Вместо перечисления элементов в множестве, как это делается в IN, BETWEEN задает границы, в которые должно попадать значение, чтобы предикат был истинным. Используется ключевое слово BETWEEN, за которым следует начальное значение, ключевое слово AND и конечное значение. BETWEEN требует: первое значение в предложении должно быть первым в соответствии с алфавитным или числовым порядком.

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

Пример 8. Выбрать сведения о сотрудниках, принятых на работу в период с 2000 по 2005 годы, оклады которых находятся в пределах от до 250 000 до 500000 ден. Ед.

SELECT ФИО, Должность, Стаж, [Индивидуальный коэффициент], Оклад

FROM Должности, Штаты

WHERE Должности.[Код должности] = Штаты.[Код должности]

AND Стаж Between #1/1/2000# And #12/31/2005#

AND Оклад Between 250000 And 500000;

ФИО

Должность

Стаж

Индивидуальный

коэффициент

Оклад

Синяк О.М.

Секретарь-референт

05.01.2000

1,5

450000

Грибут Т.Н.

Психолог

20.09.2000

1,3

468000

Колос В.П.

Техник

01.11.2000

1,2

312000

Муха Р.М.

Техник

01.10.2001

1,2

312000

Штуцер П.Д.

Техник

01.01.2002

1,2

312000

Горина Т.А.

Техник

01.08.2003

1,1

286000

Шуст Н.А.

Техник

01.09.2000

1,1

286000

Нагар И.Т.

Техник

01.01.2003

1,1

286000

Оператор LIKE. LIKE применим только к полям типа CHAR, поскольку он используется для поиска подстрок. Т.е. этот оператор осуществляет просмотр строки для выяснения входит ли заданная подстрока в указанное поле. С этой целью используются шаблоны Символ «подчеркивания» ( _ ), Символ процент ( % ) – специальные символы, которые могут заменить собой определенные комбинации из других символов.

Пример 9. Выбрать сведения о сотрудниках, производственного отдела, фамилии которых начинаются на букву С.

SELECT [Название отдела], ФИО, Должность,Адрес

FROM Должности, Отделы, Штаты

WHERE Отделы.[Код отдела] = Штаты.[Код отдела] AND Должности.[Код должности] = Штаты.[Код должности] AND

[Название отдела]="производственный" AND ФИО Like "С*";

Название отдела

ФИО

Должность

Адрес

Производственный

Стокин Д.Д.

Энергетик

Витебск, Бровки 5-124

Производственный

Стриж А.Л.

Главный инженер

Витебск, горького 12-13

1 Вставить Пример 5 Запрос не менее 10 лет с Year(Стаж)

8

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]