Сложные запросы
Сложные запросы
С помощью сложных запросов можно выполнить следующее.
• Представить данные из нескольких связанных таблиц в виде одной.
• Выбрать данные по заданному пользователем условию.
• Создать пользовательские поля запроса, значения которых будут основываться на нескольких полях таблицы.
• Отобрать некоторые записи из таблиц с помощью какого-либо условия.
Запросы с вычисляемыми полями
В таблицах сведений об учениках какой-либо школы можно хранить фамилии, имена, адреса, но не их возраст, так как он меняется с каждым годом. В таком случае достаточно хранить их дату рождения. Возраст школьников можно будет легко получить через запрос, создаваемый пользователем. При создании запроса у вас есть возможность создавать дополнительные поля запроса, значения которых будут основываться на вычислениях значений из других полей таблицы. Такое поле имеет название вычисляемое.
Если вы хотите создать такое поле, вам придется ввести в строку Поле определенное выражение, которое будет вычислять данное значение. В таком выражении придется использовать некоторые ссылки на поля таблицы, их имена заключаются в квадратные скобки. Имя вычисляемого поля следует написать перед выражением, отделив его двоеточием от самого выражения.
Теперь создайте запрос с вычисляемым полем.
1. Откройте желаемую базу данных Microsoft Access 2007 ( Отдел продаж ).
2. Перейдя на вкладку Создание в группе Другие, нажмите кнопку Конструктор запросов . Будет создан новый запрос, и на экране вы увидите окно Добавление таблицы (см. рис. 5.7).
3. Перейдите на вкладку Таблицы и выберите нужную таблицу (например, Клиенты ). Затем нажмите кнопку Добавить , а после этого – кнопку Закрыть . Пустой бланк запроса отобразится на экране.
4. Чтобы создать вычисляемое поле с названием Данные , нажмите на ячейке Поле в столбце бланка запроса и введите следующее: Данные: [Телефон]+” “+[Адрес].
5. Если вы установите флажок Вывод на экран в столбце бланка запроса, то в результате отобразится данное поле запроса.
6. Вы также можете установить сортировку, щелкнув кнопкой мыши на параметре Сортировка в столбце бланка запроса и выбрав вариант По возрастанию в раскрывающемся списке. Измененный бланк запроса будет таким, как показано на рис. 5.17.
Рис. 5.17. Готовый бланк запроса
7. Нажмите кнопку Сохранить на панели быстрого доступа, чтобы сохранить запрос. На экране появится окно ввода имени нового запроса.
8. В поле Имя запроса вы можете ввести название нового запроса. Затем нажмите кнопку ОК .
9. Перейдите на вкладку Конструктор , а затем нажмите кнопку Выполнить . После этого вы можете увидеть результат измененного запроса (рис. 5.18).
По двум и более таблицам базы данных можно создать запрос двумя способами. Практический пример данной ситуации представлен в следующем разделе.
Внутреннее соединение таблиц
В работе бывает так, что нужно соединить несколько таблиц. Соединения бывают разными.
• Внутреннее соединение – соединение также называют эквисоединением – один из самых распространенных типов соединения, которое может связывать записи в таблицах базы данных отношением равенства.
Access 2007 может автоматически создавать эквисоединения при наличии двух условий:
– если в таблице есть поля с идентичными именами, а также согласованными типами, причем хотя бы одно из этих полей должно быть ключевым;
– данное соединение было задано пользователем в окне Схема данных .
• Внешнее соединение – соединение, использующееся для создания запроса, который объединяет все записи из одной таблицы и записи из другой таблицы (но только те, в которых связанные поля совпадают).
• Соединение по отношению – тета-соединение необходимо использовать в том случае, если вы хотите связать данные любым отношением. Причем такое соединение не выводится в окне Конструктора и в окне Схемы данных .
• Рекурсивное соединение – еще один вид соединения для совмещения данных в одной таблице. Создается при добавлении в запрос копии таблицы, поля похожих таблиц связываются.
В Microsoft Access 2007 используются некоторые слова языка SQL:
• INNER JOIN – для указаний внутренних соединений;
• LEFT JOIN или RIGHT JOIN – для указания внешних соединений;
• WHERE поле1=поле2 – внутреннее соединение;
• WHERE поле1>поле2 – соединение по отношению.
Выполните следующие действия, чтобы создать запрос с внутренним соединением таблиц.
1. Откройте желаемую базу данных Microsoft Access 2007 ( Отдел продаж ).
2. Перейдя на вкладку Создания в группе Другие , нажмите кнопку Конструктор запросов . Будет создан новый запрос, и на экране вы увидите окно Добавление таблицы (см. рис. 5.7).
3. Перейдите на вкладку Таблицы и выберите нужную (например, Клиенты ), нажмите кнопку Добавить . После этого выберите другое имя таблицы (например, Заказы ) и также нажмите кнопку Добавить . По окончании данной процедуры нажмите кнопку Закрыть . Пустой бланк запроса отобразится на экране, в верхней части которого вы увидите структуры таблиц и их связь (рис. 5.19).
4. Выберите необходимые поля из двух макетов таблиц двойным щелчком кнопки мыши на названии поля (например, Имя , Телефон , Адрес , Товар , Количество ).
5. Если вы установите флажок Вывод на экран в столбце бланка запроса, отобразится данное поле запроса.
6. Вы также можете установить сортировку, для этого щелкните кнопкой мыши на параметре Сортировка в столбце бланка запроса нужного вам поля. В открывающемся списке выберите нужный вариант сортировки (рис. 5.20).
В листинге 5.2 приведен SQL-текст вашего запроса.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
4.2.1 Сложные командные строки
4.2.1 Сложные командные строки Каждая командная строка выполняется в своей собственной подоболочке, таким образом, команды cd в командной строке влияют только на строку, в которой они записаны. Любую строку в make-файле можно расширить на множество строк, указывая в конце
6.6. Сложные переходы
6.6. Сложные переходы Рассмотренное выше понятие перехода является вполне достаточным для большинства типичных расчетно-вычислительных задач. Однако современные программные системы могут реализовывать очень сложную логику поведения отдельных своих компонентов. Может
Сложные запросы: выручат скобки
Сложные запросы: выручат скобки Вы можете строить сколь угодно сложные конструкции и подставлять в каждый из операторов вместо отдельного слова целые выражения. Чтобы «Яндекс» верно понимал вас, заключайте выражения в круглые скобки. Если вы ищете описание мумие, но не
Сложные выражения JavaScript
Сложные выражения JavaScript Сложные выражения получили свое название благодаря тому, что все они состав- лены из нескольких простых выражений. Сложные выражения выполняются специальным образом и служат для особых целей — в основном, для управления процессом выполнения
Как рисуются сложные контуры
Как рисуются сложные контуры Контуры сложных фигур рисуются в три этапа.1. Web-обозреватель ставится в известность, что сейчас начнется рисование контура сложной фигуры.2. Рисуются отдельные линии, прямые и кривые, составляющие сложный контур.3. Web-обозреватель ставится в
Сложные объемные тела
Сложные объемные тела Вы уже научились создавать твердотельные примитивы, однако реальные объекты обычно имеют более сложную форму. Такие сложные конструкции представляют собой сочетания трехмерных примитивов, созданные путем применения теоретико-множественных
11.1.3. Более сложные конструкторы
11.1.3. Более сложные конструкторы По мере усложнения объектов у них появляется все больше атрибутов, которые необходимо инициализировать в момент создания. Соответствующий конструктор может оказаться длинным и запутанным, его параметры даже не будут помещаться на одной
11.2. Более сложные механизмы
11.2. Более сложные механизмы Не все в модели ООП, реализованной в Ruby, одинаково очевидно. Что-то сложнее, что-то применяется реже. Линия раздела для каждого программиста проходит в разных местах. В этой части главы мы попытались собрать те средства, которые не так просты или
Сложные объемные тела
Сложные объемные тела Вы уже научились создавать твердотельные примитивы, однако реальные объекты обычно имеют более сложную форму. Такие сложные конструкции представляют собой сочетания трехмерных примитивов, созданные путем применения теоретико-множественных
Сложные команды.
Сложные команды. Для дешифровки сообщения, оставляя подпись на нем нетронутой:pgp –d ciphertextfileДля создания удостоверяющей подписи отдельно от документа:pgp –sb textfile [-u your_userid]Для отделения удостоверяющей подписи от подписанного сообщения:pgp –b
Глава 17 Сложные приемы
Глава 17 Сложные приемы • Выполнение и оптимизация• Экран загрузки• Защита от копирования• Список лучших игроков• Определение версии Flash-плагинаХотя в предыдущих главах речь шла о сотнях алгоритмов ActionScript, многое осталось «за кадром». Мы не стали для иллюстрации этих
Сложные проблемы
Сложные проблемы Сборщик мусора сталкивается со следующими проблемами, вызванными практическими ограничениями на размещение объектов в современной ОО-среде:[x]. ОО-подпрограммы могут вызывать внешние программы, в частности, С-функции, которые могут, в свою очередь,
Более сложные трансформации
Более сложные трансформации От простого — к сложному. Это вечный путь познания. Последуем им и мы.Сложные трансформации графики (вращение, сдвиг, изменение размеров и пр.) выполняются во Flash 8 с помощью особого инструмента, называемого Free Transform (Трансформатор). Чтобы
Более сложные эффекты
Более сложные эффекты Закончив с эффектами простейшими, перейдем к более сложным и более, если так можно сказать, эффектным. Их побольше — целых
Сложные выражения ActionScript
Сложные выражения ActionScript Рассмотрение основных понятий ActionScript мы закончили. Можно приступать к изучению более сложных вопросов. И начнем мы с написания так называемых сложных выражений.Сложные выражения получили свое название благодаря тому, что все они составлены из