Логические выражения и условия отбора

Условие отбора — это логическое выражение, которое должно быть истинным для отбираемых записей БД.

Логические выражения представляются на языке мате­матической логики.

1. Логическая величина — это величина, принимающая всего два значения — ИСТИНА (TRUE) или ЛОЖЬ (FALSE). В базах данных поле логического типа — это логическая величина.

2. Логическое выражение — это утверждение, которое может быть либо истинным, либо ложным. Логическое выражение состоит из логических констант, логиче­ских переменных, операций отношения и логических операций.

3. Операции отношения сравнивают значения двух величин. Знаки операций отношения: = (равно), <> (не равно), > (больше), < (меньше), >= (больше или равно), <= меньше или равно). Сравнение числовых величие производится в арифметическом смысле; сравнение символьных величин — с учетом порядка символов в таблице кодировки; величины типа «дата» и «время» сравниваются в смысле их последовательности во времени.

4. Существуют три основные логические операции: отрицание — НЕ (NOT), конъюнкция — И (AND), дизъюнкция — ИЛИ (OR). Они описываются таблицей истинности (здесь ИСТИНА обозначена буквой и, ЛОЖЬ —буквой л):

Таблица А

А В АиВ А или В
И И И И
И Л Л И
Л И Л И
Л Л Л Л

5. Старшинство логических операций: НЕ, И, ИЛИ. Для изменения порядка выполнения операций в логических выражениях могут употребляться круглые скобки.

Пусть значения А, В, С представлены в таблице:

Таблица B

А В С

Тогда в следующей таблице приведены примеры реализации логических выражений табличным методом, применяемым в конструкторе запросов.

Таблица С

  Условие А В С
1. А=1 И B-2 =1 =2  
     
     
2. А=1 ИЛИ А=3 =1    
=3    
     
3. А= 1 ИЛИ В=2 =1    
  =2  
     
4. A=1 ИЛИ В=2 ИЛИ С=3 =1    
  =2  
    =3
5. А-1 И В=2 И C=3 =1 =2 =3
     
     
6. НЕ А=1 <>1    
     
     
7. A=1 И В=2 ИЛИ С=3 =1 =2  
    =3
     
8. A=1 ИЛИ В=2 И С=3 =1    
  =2 =3
     
9. НЕ А=1 ИЛИ В=2 И С=3 <>1    
  =2  
    =3
10. (А=1 ИЛИ В=2) И С=3 =1   =3
  =2  
     
11. В>=А   >=[A]  
     
     
12. В>=А И B>=C   >=[A] AND>=[C]  
     
     
13. A=B ИЛИ A=C =[B] OR=[C]    
     
     
14. C=A+B     =[A]+[B]
     
     

При записи в таблицу фактически произошло раскрытие скобок, и данное логиче­ское выражение заменилось эквивалентным выражением:

А=1 И С=3 ИЛИ В=2 И С=3

Имя поля, заключенное в квадратные скобки, идентифи­цирует значение этого поля в записи.. Например, отношение А=1 вконст­рукторе запроса в столбце А можно записать в двух вариан­тах: 1) [А]=1, 2) =1. Второй вариант короче, поэтому обычно пользуются им. Условие в примере 13 можно было бы запи­сать так: [A]=[B] OR [A]=[C].

Вывод

Условие отбора — это логическое выражение, которое должно быть истинным для отбираемых записей БД.

Условия отбора записываются и проверяются в соответст­вии с правилами математической логики.

В конструкторе запросов условие отбора представляется в табличной форме.

Сначала отбираются записи, удовлетворяющие условиям, записанным в первой строке, затем к ним добавляются запи­си, удовлетворяющие условию из второй строки и так далее.

Вопросы и задания

1. а) Что такое логическое выражение?

б) Какие существуют основные логические операции? Что та­кое таблица истинности?

2. Для таблицы, определите результаты от­бора записей по следующим условиям:

6)А=2 ИЛИ В=2;

в)А=2 И В=1 ИЛИ С=3;

г)А>В;

д) С=А+В;

е)А=1 ИЛИ А=2;

ж) B>1 И B<3.

3. Все условия из предыдущего задания представьте в табличной
форме, то есть па языке конструктора запросов.

4. Запросы по нескольким таблицам к базе данных

Вычисляемые поля

Запрос 3. Получить список всех абитуриентов, живущих в Перми и имеющих медали. В списке указать фамилии, но­мера школ и факультеты, на которые поступают абитуриенты. Отсортировать список в алфавитном порядке по фамилиям.

Для реализации данного запроса информация должна из­влекаться из трех таблиц: «Анкеты», «Факультеты», «Аби­туриенты». Запишем команду на гипотетическом языке за­просов:

.выбор АНКЕТЫ (таблица).ФАМИЛИЯ, Анкеты(таблица).УЧ_ЗАВЕДЕНИЕ, Факультеты (таблица).ФАКУЛЬТЕТ для Анкеты. ГОРОД= "Пермь" и Абитуриенты. МЕДАЛЬ=ДА сортировать Ан­кеты. ФАМИЛИЯ по возрастанию

Здесь снова используются комбинированные имена по­лей, включающие имя таблицы и имя поля, разделенные точкой.

Результатом выполнения данного запроса будет табл. 9:

Таблица 9. Пермяки, имеющие медали

Фамилия Учебное заведение Факультет
Васильева ПТУ №8 Экономический
Круг Школа №102 Экономический

Команда на гипотетическом языке запросов выглядит так:

.выбор АНКЕТА (таблица).РЕГ НОМ, АНКЕТА(таблица).ФАМИЛИЯ,

СУММА: Оценки(таблица).ОЦЕНКА_1 + ОЦЕНКА_2 + ОЦЕНКА_3

сортировать СУММА по убыванию

Значение поля «СУММА» получается путем суммирова­ния оценок по всем экзаменам. По этому же полю можно производить сортировку. Вычисляемое поле представляется на гипотетическом языке запросов так:

<имя поля> : <выражение>

Выражение записывается по традиционным правилам для арифметических выражений, используемых в програм­мировании и в электронных таблицах.

Выражение можно вводить как непосредственно в ячейке конструктора, так и воспользовавшись построителем выра­жений. Окно построителя выражений открывается щелчком по кнопке Логические выражения и условия отбора - student2.ru на панели инструментов.

В результате выполнения этого запроса будет получена следующая табл. 10.

Таблица 10. Суммы баллов

РЕГ НОМ ФАМИЛИЯ СУММА
Васильева
Быков
Елкин
Мухин
Зубова
Анохин
Жакин
Дикий

По вычисляемому полю может быть определено условие отбора. Например, если в условие отбора добавить выраже­ние СУММА > 13, то в итоговую таблицу попадут только пер­вые пять строк.

Вывод

В запросах можно использовать вычисляемые поля. Вы­числяемое поле становится лишь элементом запроса и не включается в таблицы БД.

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

Вопросы и задания

1. Что такое вычисляемое поле? Где его можно использовать?

2. Запишите команды запросов на выборку на гипотетическом языке для перечисленных ниже задач. Везде организуйте сор­тировку по первому полю;

а) получить список всех специальностей, на которых сдается экзамен по русскому языку;

б) получить список всех специальностей, па которых план при­ема больше 40 человек;

в) получить таблицу, содержащую фамилии абитуриентов, название городов, номера школ для абитуриентов, живущих не в Перми и не имеющих медалей;

г) получить таблицу, содержащую фамилии, имена, отчества и стаж работы абитуриентов, поступающих на юридический фа­культет;

д) получить таблицу, содержащую фамилии, специальности, года рождения для тех абитуриентов, которые родились до 1982 года.

3. Запишите команды запросов на выборку на гипотетическом языке для перечисленных ниже задач. Везде организуйте сор­тировку по первому полю:

а) получить таблицу, содержащую фамилии абитуриентов и средние значения оценок, полученных на экзаменах;

б) получить список лишь тех абитуриентов, у которых оценка за первый экзамен больше среднего балла за все экзамены;

в) предположим, что действует следующее правило: на эконо­мический факультет университета принимаются те абитуриенты, у которых сумма баллов за экзамены не меньше 14; на исто­рический факультет — не меньше 13; на юридический факультет — не меньше 12. Получите список принятых на каждый факультет, указав факультеты, специальности, фамилии, имена, отчества. Отсортируйте список по факультету и специа­льности.

5. Реализация выборки
Вычисляемые поля и конструктор запросов

Запрос 4. Получить список всех абитуриентов, поступаю­щих на юридический факультет, имеющих производствен­ный стаж. Указать фамилии, названия городов, специаль­ности и стаж. Упорядочить список по фамилиям.

Таблица 10. ОЦЕНКИ

РЕГ_НОМ Оценка_1 Оценка_2 Оценка_3

Для реализации запроса используется та же схема, что и в предыдущем запросе. Вид конструктора изображен на рис. 17:

Логические выражения и условия отбора - student2.ru

Рис17. Запрос 4 на выборку по параметру (факультет-юридический)

Запрос 5. Получить список всех пермских абитуриентов, имеющих медали. В списке указать фамилии и номера школ, факультеты, на которые поступают абитуриенты.

В конструкторе запросов эта команда будет выглядеть так, как показано на рис. 18.

Логические выражения и условия отбора - student2.ru

Рис. 18. Схема и запрос 5 на выбор

В реализации запроса участвуют таблицы «ФАКУЛЬТЕТЫ», «СПЕЦИАЛЬНОСТЬ», «АНКЕТА», «АБИТУРИЕНТ»,Условия отбора в поле «Город»-Пермь, поле «Медаль»-Да.

Далее надо заполнить бланк конструктора так, как пока­зано на рис. 19

Логические выражения и условия отбора - student2.ru

Рис. 19. Запрос на выборку с использованием вычисляемого поля

Запрос 6. Вывести таблицу со значениями сумм баллов, включив в нее регистрационные номера, фамилии и суммы баллов. Отсортировать таблицу по убыванию суммы.

Этот запрос требует использования вычисляемого поля и в конструкторе имеет вид, представленный на рис.20.

Вычисляемое поле представляется в следующем формате:

<имя поля>:<выражение>

Выражение можно вводить как непосредственно в ячейке конструктора, так и воспользовавшись построителем выра­жений. Окно построителя выражений открывается щелчком по кнопке Логические выражения и условия отбора - student2.ru на панели инструментов.

Правила записи выражений традиционные: они записы­ваются в строку, проставляются все знаки операций, можно использовать круглые скобки. Обратите внимание на то, что составное имя Оценки.[ОЦЕНКА_1] используется только для первого слагаемого. Для остальных подразумевается их принадлежность к таблице «ОЦЕНКИ».

Следующий этап работы — занесение в таблицу «Итоги» информации о поступлении в ВУЗ. В поле «ЗАЧИСЛЕНИЕ» выставляются флажки в записях для принятых в универси­тет абитуриентов.

Запрос 7.Запрос на получение таблицы с итоговыми результатами на языке конструктора запросов он будет как показано на рисунке 20.

Логические выражения и условия отбора - student2.ru

Рис. 20. Запрос на получение итоговых результатов

Компьютерный практикум
Реализация сложных запросов

Задание 1

Создать таблицу «Оценки» и ввести в нее данные, пред­ставленные в табл. 10

Задание 2

Используя конструктор запросов MS Access, выполнить все запросы описанные в «Запросы»

Задание 3

Реализовать в конструкторе запросов следующие зада­ния:

1) получить таблицу, содержащую фамилии абитуриен­тов и средние значения оценок, полученных на экзаме­нах;

2) получить список лишь тех абитуриентов, у которых оценка за первый экзамен больше среднего балла за все экзамены;

3) предположим, что действует следующее правило: на экономический факультет университета принимаются те абитуриенты, у которых сумма баллов за экзамены не меньше 14; на исторический факультет -— не мень­ше 13; на юридический факультет — не меньше 12. Получить список принятых на каждый факультет, указав факультеты, специальности, фамилии, имена, отчества. Отсортировать список по факультету и спе­циальности. Логические выражения и условия отбора - student2.ru Логические выражения и условия отбора - student2.ru

Наши рекомендации