
- •Нормализация. 1нф, 2нф, 3нф.
- •Сравнение технологий bde и ado.
- •Индексирование бд. Правила индексирования.
- •Работа с sql-запросами в ms Access.
- •Использование фразы having. Использование фразы having
- •9. Выборка вычисляемых значений. Исключение дубликатов. Исключение дубликатов
- •10. Запросы с использованием нескольких таблиц.
- •Фраза group by
- •12. Связанные таблицы. Ключи. Виды ключей.
- •13. Типы данных в sql.
- •14. Сетевая модель данных. Файл – сервер и клиент – сервер.
- •15. Обзор визуальных компонентов среды делфи, необходимых для работы с бд.
- •16. Предложение select. Область применения. Формат записи. О предложении select
- •18. Фраза where. Операторы сравнения.
- •19. Агрегатные функции в sql.
- •20. Реляционная модель данных.
- •21. Предложение delete. Удаление единственной записи. Удаление множества записей.
- •23. Предложение insert. Вставка единственной записи. Вставка множества записей.
- •24. Иерархическая модель данных.
- •25. Обзор не визуальных компонентов делфи, необходимых для работы с бд.
- •26. Модель данных.
- •27. Фразы between, in, like. Использование between
- •Использование in
27. Фразы between, in, like. Использование between
С помощью BETWEEN ... AND ... (находится в интервале от ... до ...) можно отобрать строки, в которых значение какого-либо столбца находятся в заданном диапазоне.
Например, выдать перечень продуктов, в которых содержание белка лежит в диапазоне от 10 до 50:
SELECT Продукт, Белки ¦Результат: Продукт Белки
FROM Продукты ¦ -------- -----
WHERE Белки BETWEEN 10 AND 50;¦ Майонез 31.
¦ Сметана 26.
¦ Молоко 28.
¦ Морковь 13.
¦ Лук 17.
Можно задать и NOT BETWEEN (не принадлежит диапазону между), например:
SELECT Продукт, Белки, Жиры ¦Результат: Продукт Белки Жиры
FROM Продукты ¦ -------- ----- ----
WHERE Белки NOT BETWEEN 10 AND 50 ¦ Говядина 189. 124.
AND Жиры > 100; ¦ Масло 60. 825.
¦ Яйца 127. 115.
BETWEEN особенно удобен при работе с данными, задаваемые интервалами, начало и конец которых расположен в разных столбцах.
Для примера воспользуемся таблицей “минимальных окладов” (табл. 2.1), величина которых непосредственно связана со студенческой стипендией. В этой таблице для текущего значения минимального оклада установлена запредельная дата окончания 9 сентября 9999 года.
Таблица 2.1
Минимальные оклады оплаты труда
+------------------------------------+
¦ Миноклад ¦ Начало ¦ Конец ¦
+----------+------------+------------¦
¦ 2250 ¦ 01-01-1993 ¦ 31-03-1993 ¦
¦ 4275 ¦ 01-04-1993 ¦ 30-06-1993 ¦
¦ 7740 ¦ 01-07-1993 ¦ 30-11-1993 ¦
¦ 14620 ¦ 01-12-1993 ¦ 30-06-1994 ¦
¦ 20500 ¦ 01-07-1994 ¦ 09-09-9999 ¦
+------------------------------------+
Если, например, потребовалось узнать, какие изменения минимальных окладов производились в 1993/94 учебном году, то можно выдать запрос:
SELECT Начало, Миноклад
FROM Миноклады
WHERE Начало BETWEEN '1-9-1993' AND '31-8-1994'
и получить результат:
Начало Миноклад
---------- --------
01-12-1993 14620
01-07-1994 20500
Отметим, что при формировании запросов значения дат следует заключать в апострофы, чтобы СУБД не путала их с выражениями и не пыталась вычитать из 31 значение 8, а затем 1994.
Для выявления всех значений минимальных окладов, которые существовали в 1993/94 учебном году, можно сформировать запрос:
SELECT *
FROM Миноклады
WHERE Начало BETWEEN '1-9-1993' AND '31-8-1994'
OR Конец BETWEEN '1/9/1993' AND '31/8/1994'
Миноклад Начало Конец
-------- ---------- ----------
7740 01/07/1993 30/11/1993
14620 01/12/1993 30/06/1994
20500 01/07/1994 09/09/9999
Наконец, для получения значения "минимального оклада" на 15-5-1994 можно сформировать запрос:
SELECT Миноклад ¦ Результат: Миноклад
FROM Миноклады ¦ --------
WHERE '15-05-1994' BETWEEN Начало AND Конец ¦ 14620