Чаще всего для справки требуются не все записи, а только часть из них, удовлетворяющая какому-то условию. Это условие называется условием выбора. АВТОР НАЗВАНИЕ ДЕНЬ 15/03/2004 Беляев А.Р. Человек-амфибия ОСАДКИ Снег Кервуд Д. Бродяга севера ТЕМПЕРАТУРА -3,5 Тургенев И.С. Повести и рассказы ДАВЛЕНИЕ 746 Олеша Ю.К. Избранное ВЛАЖНОСТЬ 67 Беляев А.Р. Звезда КЭЦ Тынянов Ю.Н. Кюхля Толстой Л.Н. Повести и рассказы В командах СУБД условие выбора записывается в форме логического выражения. Логическое выражение, подобно математическому выражению, выполняется (вычисляется), но в результате получается не число, а логическое значение: истина (true) или ложь (false). Логическая величина – это всегда ответ на вопрос, истинно ли данное высказывание. Высказывания и их логические значения Логические выражения 1. 2. 3. 4. 5. 6. 7. 8. ОСАДКИ = «дождь» ДАВЛЕНИЕ > 740 ВЛАЖНОСТЬ <> 100 ПОЛКА < 5 АВТОР = «Толстой Л.Н.» ФАМИЛИЯ = «Русанов» ЦВЕТОВОДСТВО ТАНЦЫ Высказывания Значение БД «Погода» 1. Идет дождь Ложь 2. Давление больше 740 мм рт. ст. 3. Влажность не менее 100% Истина Ложь БД «Библиотека» 4. Книга стоит ниже пятой полки 5. Автор книги – Толстой Л.Н. Истина Ложь БД «Факультативы» 6. Фамилия ученика – Русанов 7. Ученик занимается цветоводством 8. Ученик занимается танцами Истина Ложь Истина Шесть первых выражений называются отношениями. Знаки отношений: = равно; > больше; <> не равно; < меньше; <= меньше или равно; >= больше или равно Отношение «равно» истинно для двух символьных величин, если их длины одинаковы и все соответствующие символы совпадают. Следует учитывать, что пробел – это тоже символ. Например, отношение АВТОР = «Беляев А.Р.» не будет истинным ни для одной записи нашей таблицы, поскольку в таблице везде между фамилией и инициалами стоит один пробел, а в данном отношении – два. Символьные величины можно сопоставлять и в отношениях <, >, >=, <=. Здесь упорядоченность слов (последовательность символов) определяется по алфавитному принципу. Вот фрагмент орфографического словаря, содержащий последовательно расположенные в нем слова: квартет, компонент, конверт, конвульсия. Между отношения: этими словами истинны квартет < компонент компонент < квартет конверт < конвульсия следующие Значения полей типа «дата» при выполнении отношений сравниваются в соответствии с календарной последовательностью: 3/12/1998 < 23/04/2001 24/09/2004 > 23/09/2004 В некоторых СУБД используется тип «время» со следующим форматом значений: ЧЧ:ММ:СС (часы, минуты, секунды). При выполнении учитывается хронологическая последовательность: 12:53:08 > 03:40:00 23:05:12 < 23:05:13 В примерах 7 и 8 нет никаких знаков отношений. Дело в том, что поля с именами ЦВЕТОВОДСТВО и ТАНЦЫ имеют логический тип. Поэтому в каждой записи их значения – это логические величины «ложь», «истина». Одна величина логического типа – простейшая форма логического выражения. Следовательно, условие выбора может содержать в своей записи в том числе имя логического поля. 1) .выбрать ДЕНЬ где ОСАДКИ = «дождь» (запрос о датах всех дождливых дней) 2).выбрать ДЕНЬ, ВЛАЖНОСТЬ где давление >745 (дата и влажность, когда атмосферное давление выше 745 мм.рт.ст.) 3) .выбрать АВТОР, НАЗВАНИЕ где АВТОР >= «О» (название книг и фамилии и инициалы авторов, фамилии которых начинаются с буквы «О» и далее по алфавиту) 4).выбрать ФАМИЛИЯ где ТАНЦЫ (список фамилий всех учеников, посещающих танцы) Выражение, состоящее из имени поля логического типа или одного отношения, будем называть простым логическим выражением. Многие СУБД позволяют в отношениях использовать арифметические выражения. Арифметические выражения могут включать в себя числа, имена полей числового типа, знаки арифметических операций, круглые скобки. Требуется получить список учеников, у которых сумма баллов по гуманитарным предметов больше, чем по естественным: .выбрать УЧЕНИК где РУССКИЙ + ИСТОРИЯ + МУЗЫКА > АЛГЕБРА + ХИМИЯ + ФИЗИКА Следующая команда запрашивает фамилии учеников, у которых оценка по алгебре выше их среднего балла: .выбрать УЧЕНИК гд АЛГЕБРА > (РУССКИЙ + АЛГЕБРА + ХИМИЯ + ФИЗИКА + ИСТОРИЯ + МУЗЫКА)/6