КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Использование IN
Использование 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 Выдать сведения о блюдах на основе яиц, крупы и овощей
SELECT * FROM Блюда WHERE Основа IN (Яйца Крупа Овощи);
Результат: БЛ Блюдо В Основа Выход Труд -- ---------------- - ------ ----- ---- 1 Салат летний З Овощи 200. 3 3 Салат витаминный З Овощи 200. 4 16 Драчена Г Яйца 180. 4 17 Морковь с рисом Г Овощи 260. 3 19 Омлет с луком Г Яйца 200. 5 20 Каша рисовая Г Крупа 210. 4 21 Пудинг рисовый Г Крупа 160. 6 23 Помидоры с луком Г Овощи 260. 4
Рассмотренная форма IN является в действительности просто краткой записью последовательности отдельных сравнений, соединенных операторами OR. Предыдущее предложение эквивалентно такому: SELECT * FROM Блюда WHERE Основа=Яйца OR Основа=Крупа OR Основа=Овощи;
Можно задать и NOT IN (не принадлежит), а также возможность использования IN (NOT IN) с подзапросом, о чем будет рассказано в главе 3.
Дата добавления: 2015-05-10; Просмотров: 1208; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |