Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник SQL (Швыдков).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
441.34 Кб
Скачать

[Оглавление]

Применение BETWEEN … AND /( NOT BETWEEN…AND).

Определяет принадлежность значения выражения указанному диапазону.

Синтаксис

SELECT имена полей

FROM имена таблиц

WHERE выражение [Not] Between значение1 And значение2;

1. Выдать записи, если возраст человека лежит в диапазоне от 22 до 30

Пример

SELECT Фамилия, Возраст

FROM Сотрудники

WHERE Возраст BETWEEN 22 And 30;

Студенты

Фамилия

Возраст

Оценка

Фамилия

Возраст

Смирнов

55

4

Михайлов

28

Михайлов

28

3

Панов

25

Синицын

18

5

Панов

25

3

2. Выдать записи, если возраст человека НЕ лежит в диапазоне от 22 до 30

Пример

SELECT Фамилия], Возраст

FROM Сотрудники

WHERE Возраст NOT BETWEEN 22 And 30;

Студенты

Фамилия

Возраст

Оценка

Фамилия

Возраст

Смирнов

55

4

Смирнов

55

Михайлов

28

3

Синицын

18

Синицын

18

5

Панов

25

3

[Оглавление]

Применение IN (NOT IN).

Проверяет, совпадает ли значение выражения с одним из элементов указанного списка.

Синтаксис

SELECT имена полей

FROM имена таблиц

Where выражение [Not] In (значение1, значение2, . . .)

1. Выдать записи, если возраст человека равен 18 или 55

Пример

SELECT Фамилия, Возраст

FROM Сотрудники

WHERE Возраст IN (18,55);

Студенты

Фамилия

Возраст

Оценка

Фамилия

Возраст

Смирнов

55

4

Смирнов

55

Михайлов

28

3

Синицын

18

Синицын

18

5

Панов

25

3

2. Выдать записи, если возраст человека НЕ равен 18 или 55

Пример

SELECT Фамилия, Возраст

FROM Сотрудники

WHERE Возраст NOT IN (18,55);

Студенты

Фамилия

Возраст

Оценка

Фамилия

Возраст

Смирнов

55

4

Михайлов

28

Михайлов

28

3

Панов

25

3

Синицын

18

5

Панов

25

3

3. Выдать расписание поездов по вокзалам.

Пример

SELECT Вокзал, Направление, День, Время

FROM Расписание

WHERE Вокзал NOT IN (‘Киевский’);

Поясните, какое расписание будет выдано?

[Оглавление]

Оператор Like

Используется для сравнения строкового выражения.

Синтаксис

SELECT имена полей

FROM имена таблиц

WHERE выражение Like "образец"

Элемент

Описание

выражение

Выражение SQL, используемое в предложении WHERE.

образец

Строка, с которой сравнивается выражение.

Дополнительные сведения

Оператор Like используется для нахождения в поле значений, соответствующих указанному образцу. Для аргумента образец можно задавать полное значение (например, Like “Иванов’) или использовать подстановочные знаки для поиска диапазона значений (например, Like “Ив*”).

Оператор Like используется в выражении для сравнения значений поля со строковым выражением. Например, если в запросе SQL ввести Like "C*", запрос возвратит все значения поля, начинающиеся с буквы "C". В запросе с параметрами можно пригласить пользователя указать искомый образец.

В следующем примере возвращаются данные, начинающихся с буквы «Р», за которой следуют любые буквы от «А» до «Д» и три цифры:

Like "Р[А-Д]###"

Следующая таблица содержит примеры использования оператора Like для тестирования выражений с помощью разных образцов.

* - Любое количество, любых символов

? - Один, любой символ

# - Одна, любая цифра

Тип совпадения

Образец

Совпадение (True)

Несовпадение (False)

Несколько знаков

a*a

aa, aBa, aBBBa

aBC

 

*ab*

abc, AABB, Xab

aZb, bac

Специальный знак

a[*]a

a*a

aaa

Несколько знаков

ab*

abcdefg, abc

cab, aab

Одиночный знак

a?a

aaa, a3a, aBa

aBBBa

Одиночная цифра

a#a

a0a, a1a, a2a

aaa, a10a

Диапазон знаков

[a-z]

f, p, j

2, &

Вне диапазона

[!a-z]

9, &, %

b, a

Не цифра

[!0-9]

A, a, &, ~

0, 1, 9

Комб. выражение

a[!b-m]#

An9, az0, a99

abc, aj0

Особенности работы с символами даты

При указании аргумента Условие Отбора, символы дат должны вводиться в американском формате, даже если используется неамериканская версия ядра базы данных Jet. Например, дата 10 мая 1996 года записывается в России как 10.05.96, а в США как 5/10/96. Обязательно заключите даты в символы «решетки» (#), как показано в следующих примерах.

Для отбора записей с этой датой в российской базе данных необходимо использовать следующую инструкцию SQL:

SELECT *

FROM Заказы

WHERE ДатаИсполнения = #5/10/96#;

Кроме того, можно применять функцию DateValue, которая поддерживает международные стандарты, заданные в Microsoft Windows®. Например, для отбора записей в американской базе данных создайте текст программы:

SELECT *

FROM Заказы

WHERE ДатаИсполнения = DateValue('5/10/96');

Для российской базы данных, текст программы будет выглядеть так:

SELECT *

FROM Заказы

WHERE ДатаИсполнения = DateValue('10.5.96');

Пример

SELECT [Наименование товара] AS Товар, Годность

FROM Товары

WHERE Годность <= #5/7/96#;

Товары

Наименование товара

Годность

Товар

Годность

Молоко

5/12/96

Творог

5/5/96

Сметана

5/15/96

Пиво

5/3/96

Творог

5/7/96

Пиво

5/3/96

[Оглавление]

ИТОГОВЫЙ ПРИМЕРЫ

Пусть имеется таблица Товары. Создать итоговую таблицу с наименованием товара и стоимостью не проданного товара при условии, что стоимость непроданного товара должна быть больше ….. .

SELECT Товар, (Количество * Цена) AS Стоимость

INTO Итоговая

FROM Таблица

WHERE (Количество * Цена) > 500

Таблица Итоговая

Товар

Количество

Цена

Товар

Стоимость

Пепси

10

20

Кола

1200

Кола

60

20

Пиво

0

30

[Оглавление]

Статистические функции

Статистические функции готовы к выдаче готовых значений. К статистическим функциям относятся следующие функции:

Синтаксис

  • COUNT(выражение) ……вычисляет количество записей, возвращаемых запросом.

  • SUM(выражение)……… возвращает сумму набора значений, содержащихся в заданном

поле запроса.

  • AVG(выражение) ………вычисляет арифметическое среднее набора чисел,

содержащихся в указанном поле запроса.

  • MIN(выражение)……… возвращают минимальное и максимальное значения из набора MAX(выражение) значений, содержащихся в указанном поле запроса.

[Оглавление]

Функция Count

Вычисляет количество записей, возвращаемых запросом.