- •Часть 2
- •Лабораторная работа № 9. Макросы вAccess. Первое знакомство
- •Вводные замечания
- •Макрокоманды для работы с данными
- •Макрокоманды для управления Access
- •Макрокоманды для управления объектами
- •Макрокоманды для импорта и экспорта данных
- •Макрокоманды для решения задач программирования
- •Задание
- •Лабораторная работа № 10. Связывание макросов с событиями, отладка макросов, макрогруппы, связь с меню
- •События базы данных
- •События, связанные с клавиатурой и мышью
- •События данных
- •События управления объектами
- •События печати
- •Лабораторная работа № 12. Работа с приложениями и программами. Оформление меню
- •Инструкция выбора select
- •Задание условий в предложении where
- •Применение агрегатных функций и вложенных запросов в инструкции Select
- •Вложенные запросы в инструкции выбора
- •Задание Контрольные вопросы Лабораторная работа № 14. Работа с инструкциямиDdLиDmLязыкаSql
- •Инструкции определения данных (ddl)
- •Создание индекса инструкцией Create Table
- •Создание индекса инструкцией Create Index
- •Создание индекса инструкцией Alter Table
- •Инструкции манипулирования данными (dml)
- •Задание
- •Контрольные вопросы
- •Оглавление
Задание условий в предложении where
В выражении условий предложения WHERE могут быть использованы логические операторы And, Or и Not или операторы сравнения:
- Предикаты сравнения { =, <>, >,<, >=,<= }, которые имеют традиционный смысл.
- Предикат Between A and В — принимает значения между А и В. Предикат истинен, когда сравниваемое значение попадает в заданный диапазон, включая границы диапазона. Одновременно в стандарте задан и противоположный предикат Not Between A and В, который истинен тогда, когда сравниваемое значение не попадает в заданный интервал, включая его границы.
- Предикат вхождения в множество IN (множество) истинен тогда, когда сравниваемое значение входит в множество заданных значений. При этом множество значений может быть задано простым перечислением или встроенным подзапросом. Одновременно существует противоположный предикат NOT IN (множество), который истинен тогда, когда сравниваемое значение не входит в заданное множество.
- Предикаты сравнения с образцом LIKE и NOT LIKE. Предикат LIKE требует задания шаблона, с которым сравнивается заданное значение, предикат истинен, если сравниваемое значение соответствует шаблону, и ложен в противном случае. Предикат NOT LIKE имеет противоположный смысл.
По стандарту в шаблон могут быть включены специальные символы:
-символ подчеркивания (_) — для обозначения любого одиночного символа;
- символ процента (%) — для обозначения любой произвольной последовательности символов;
- остальные символы, заданные в шаблоне, обозначают самих себя.
- Предикат сравнения с неопределенным значением IS NULL. Понятие неопределенного значения было внесено в концепцию баз данных позднее. Неопределенное значение интерпретируется в реляционной модели как значение, неизвестное на данный момент времени. При появлении дополнительной информации это значение в любой момент времени может быть заменено на некоторое конкретное значение. При сравнении неопределенных значений не действуют стандартные правила сравнения: одно неопределенное значение никогда не считается равным другому неопределенному значению. Для выявления равенства значения некоторого атрибута неопределенному значению применяют стандартные специальные предикаты:
<имя атрибута>IS NULL и <имя атрибута> IS NOT NULL.
Если в данном кортеже (в данной строке) указанный атрибут имеет неопределенное значение, то предикат IS NULL принимает значение «Истина» (TRUE), а предикат IS NOT NULL — «Ложь» (FALSE), в противном случае предикат IS NULL принимает значение «Ложь», а предикат IS NOT NULL принимает значение «Истина».
Введение Null - значений вызвало необходимость модификации классической двузначной логики и превращения ее в трехзначную. Все логические операции, производимые с неопределенными значениями, подчиняются этой логике в соответствии с заданной таблицей истинности:
А |
В |
Not A |
А В |
A В |
TRUE |
TRUE |
FALSE |
TRUE |
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
Null |
FALSE |
Null |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
Null |
TRUE |
Null |
FALSE |
Null |
TRUE |
Null |
Null |
TRUE |
Null |
FALSE |
Null |
Null |
FALSE |
Null |
Null |
Null |
Null |
Null |
- Предикаты существования EXIST и не существования NOT EXIST. Эти предикаты относятся к встроенным подзапросам, и подробнее мы рассмотрим их, когда коснемся вложенных подзапросов.
В условиях поиска могут быть использованы все рассмотренные ранее предикаты.
Инструкция Select позволяет создавать новую таблицу с загруженными выбранными записями. Для этого в строку запроса нужно добавить предложение INTO. Следующая инструкция создает новую таблицу Служащие1, загружая в нее записи из таблицы Служащие:
Select * INTO Служащие1 From Служащие;
Такие запросы можно использовать для архивирования записей, резервного копирования таблиц или создания копий данных для экспорта в другую базу данных.
При создании таблицы таким способом поля в новой таблице наследуют типы данных и размеры каждого поля исходных таблиц запроса, но никакие другие свойства полей или таблиц не переносятся. Поэтому, если, например, в новой таблице должен быть первичный ключ, его нужно определить заново.