- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Microsoft Access 2007 - Александр Днепров
Шрифт:
Интервал:
Закладка:
Листинг 5.1.
Исходный текст запроса
SELECT Клиенты.Имя, Клиенты.[Телефон], Клиенты.[Адрес]
FROM Клиенты
ORDER BY Клиенты.Рейтинг;
4. Теперь вы можете изменить текст запроса вручную.
• Если вы хотите в результате набора данных скрыть или отобразить поле таблицы, то в строке SELECT удалите или же добавьте название данного поля. Значение какого-либо поля не отображается при условии, что название этого поля таблицы отсутствует в строке SELECT.
• Сортировку данных по одному или нескольким полям таблицы можно выполнить, указав эти поля в строке под название ORDER BY. Если же вы хотите отсортировать данные поля по убыванию, то вам придется подставить слово DESC после названия поля.
• Иногда задают условия отбора для одного или нескольких полей таблицы. Чтобы это сделать, необходимо ввести условия в строке WHERE. Как и в примере с конструктором, когда вы хотите задать несколько взаимоисключающих условий, вам нужно использовать оператор OR. Если же нужно обозначить отрицание, введите оператор NOT. Используя логический оператор AND, вы можете сделать так, чтобы условия выполнялись одновременно.
5. Теперь внесите некоторые изменения в выбранный запрос. Пусть поле Имя выводится первым, а Телефоны – вторым. Поменяем местами имена полей Имя и Телефоны в строке SELECT .
6. Чтобы сохранить выполненное изменение, на панели быстрого доступа нажмите кнопку Сохранить .
7. Щелкните кнопкой мыши на вкладке Конструктор , а затем нажмите кнопку Выполнить . Вы можете увидеть результат измененного запроса (рис. 5.16).
Рис. 5.16. Результат измененного запроса
Ниже будут рассмотрены методы создания сложных запросов.
Сложные запросы
С помощью сложных запросов можно выполнить следующее.
• Представить данные из нескольких связанных таблиц в виде одной.
• Выбрать данные по заданному пользователем условию.
• Создать пользовательские поля запроса, значения которых будут основываться на нескольких полях таблицы.
• Отобрать некоторые записи из таблиц с помощью какого-либо условия.
Запросы с вычисляемыми полями
В таблицах сведений об учениках какой-либо школы можно хранить фамилии, имена, адреса, но не их возраст, так как он меняется с каждым годом. В таком случае достаточно хранить их дату рождения. Возраст школьников можно будет легко получить через запрос, создаваемый пользователем. При создании запроса у вас есть возможность создавать дополнительные поля запроса, значения которых будут основываться на вычислениях значений из других полей таблицы. Такое поле имеет название вычисляемое.
Если вы хотите создать такое поле, вам придется ввести в строку Поле определенное выражение, которое будет вычислять данное значение. В таком выражении придется использовать некоторые ссылки на поля таблицы, их имена заключаются в квадратные скобки. Имя вычисляемого поля следует написать перед выражением, отделив его двоеточием от самого выражения.
Теперь создайте запрос с вычисляемым полем.
1. Откройте желаемую базу данных Microsoft Access 2007 ( Отдел продаж ).
2. Перейдя на вкладку Создание в группе Другие, нажмите кнопку Конструктор запросов . Будет создан новый запрос, и на экране вы увидите окно Добавление таблицы (см. рис. 5.7).
3. Перейдите на вкладку Таблицы и выберите нужную таблицу (например, Клиенты ). Затем нажмите кнопку Добавить , а после этого – кнопку Закрыть . Пустой бланк запроса отобразится на экране.
4. Чтобы создать вычисляемое поле с названием Данные , нажмите на ячейке Поле в столбце бланка запроса и введите следующее: Данные: [Телефон]+” “+[Адрес].
5. Если вы установите флажок Вывод на экран в столбце бланка запроса, то в результате отобразится данное поле запроса.
6. Вы также можете установить сортировку, щелкнув кнопкой мыши на параметре Сортировка в столбце бланка запроса и выбрав вариант По возрастанию в раскрывающемся списке. Измененный бланк запроса будет таким, как показано на рис. 5.17.
Рис. 5.17. Готовый бланк запроса
7. Нажмите кнопку Сохранить на панели быстрого доступа, чтобы сохранить запрос. На экране появится окно ввода имени нового запроса.
8. В поле Имя запроса вы можете ввести название нового запроса. Затем нажмите кнопку ОК .
9. Перейдите на вкладку Конструктор , а затем нажмите кнопку Выполнить . После этого вы можете увидеть результат измененного запроса (рис. 5.18).
Рис. 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).
Рис. 5.19. Пустой бланк запроса, сверху видны структуры таблиц и их связь4. Выберите необходимые поля из двух макетов таблиц двойным щелчком кнопки мыши на названии поля (например, Имя , Телефон , Адрес , Товар , Количество ).
5. Если вы установите флажок Вывод на экран в столбце бланка запроса, отобразится данное поле запроса.
6. Вы также можете установить сортировку, для этого щелкните кнопкой мыши на параметре Сортировка в столбце бланка запроса нужного вам поля. В открывающемся списке выберите нужный вариант сортировки (рис. 5.20).
Рис. 5.20. Настроенный бланк запросаВ листинге 5.2 приведен SQL-текст вашего запроса.
...Листинг 5.2.
Запрос с внутренним соединением таблиц
SELECT Клиенты. Имя, Клиенты. Телефон, Клиенты. Адрес, Заказы. Товар, Заказы. Количество
FROM Клиенты INNER JOIN Заказы ON Клиенты. [Номер (ID)] = Заказы. Клиент;
7. Нажмите кнопку Сохранить на панели быстрого доступа, чтобы сохранить запрос. На экране появится окно ввода имени нового запроса.
8. В поле Имя запроса вы можете ввести название нового запроса. Затем нажмите кнопку ОК .
9. Щелкните кнопкой мыши на вкладке Конструктор , а затем нажмите кнопку Выполнить . Вы сможете увидеть результат измененного запроса (рис. 5.21).
Рис. 5.21. Результат запроса с внутренним соединением таблиц
Внешнее соединение таблиц
Внешние соединения таблиц могут быть двух видов – левые и правые. На языке SQL запрос с левым внешним соединением обозначается LEFT JOIN, а с правым – RIGHT JOIN. Запросы таблиц с левым внешним соединением отображают все записи первой таблицы, несмотря на то что имеются соответствующие им записи во второй таблице. Запросы с правым внешним обозначением работают наоборот.

