Для чего предназначены запросы? языки запросов
Содержание:
- Запрос с параметром
- Запросы на выборку
- Управляющие запросы
- Технология работы с СУБД Access
- Типы данных
- Перекрестные запросы
- Вставка рисунка или объекта
- Типы данных в Access
- Запросы на удаление
- Какие бывают запросы
- Формы
- Запрос на объединение таблиц
- Основные ключи и взаимосвязи таблиц
- Таблицы в БД Access
- Как используются запросы?
- Создание запроса с несколькими таблицами
- Запрос на объединение таблиц
Запрос с параметром
Хотите узнать какие 35 инструментов нужно знать, чтобы научиться создавать базы данных в Аксесс?
Бывает, что в неизменной формуле запроса меняется переменная (дата, процент увеличения, надбавка и т. д.). Вместо того, чтобы каждый раз переписывать меняющееся число в одной и той же формуле, предложим программе каждый раз выводить диалоговое окно для введения конкретной цифры, даты или другой переменной.
Для поля, которое предполагается использовать как параметр, введите в ячейку строки «Условие отбора» выражение с текстом приглашения, заключенным в квадратные скобки.
Например, нам часто нужны сведения по сотрудникам, фамилия которых начинается с определённой буквы. Можно сделать около 30 запросов (для почти всех букв русского алфавита), чтобы получать требуемые данные, но это займёт много времени для создания запросов, загромоздит базу данных и вызовет путаницу. Вместо этого создадим один запрос для формирования списка сотрудников, который будет нас спрашивать, с какой буквы начинающиеся фамилии мы хотим видеть. В поле «Условие отбора» введём: Like & «*». На самом деле, если введём букву «С», условие будет читаться Access как Like «С*». Знак амперсанда «&» указывает на необходимость сцепления введённой буквы с остальными символами искомой ячейки, так как «*» обозначает любое количество символов после «С».
Например, выражение Between And запросит ввести начальную и конечную даты и выдаст все записи, содержащиеся в этом диапазоне (программа распознает разные форматы, например: 01.01.2010 или 01,01,2010 или 01/01/2010). Но для этого в режиме конструктора через меню Запрос – Параметры (можно вызвать через контекстное меню) надо вызвать диалоговое окно «Параметры запроса». В столбце «Параметр» указать правильно название, например , а в столбце «Тип данных» указать требуемый тип, в нашем случае «Дата/время». Как правило, указываются параметры для числовых и полей дата/время.
Ещё пример: Like «. » & & «. ». Программа попросит ввести номер месяца года и выдаст все записи, относящиеся к этому месяцу. Если в параметре ввести знак звёздочки «*», то будут выбраны дни рождений за все месяцы.
Запрос может не работать, если формат даты в условии задан 00.00.0000, а в настройках панели управления установлен 00/00/0000. Тогда надо вместо точек добавить ещё по одному вопросу.
Запросы на выборку
Создание запросов в Access данного вида предполагает построение таблицы, содержащей такие же структурные элементы, как и обычная. Она создается на базе фактических данных.
Результаты представляют собой динамический набор данных, в связи с чем при закрытии набора записи «исчезают», оставаясь в первоначальных таблицах. Сохранение данных запросов означает сохранение их структуры.
Данные запросы формируются указанием полей и таблиц, их содержащих, включаемых в запрос, описанием рассчитываемых полей, совершаемых групповых операций над первоначальными записями, и формированием условий отбора (например, с какой по какую дату осуществлялась реализация определенной группы товаров).
Создание запросов в MS Access данного вида предполагает, что их можно создать вручную или при помощи «Мастера создания запросов».
Для определения полей и таблиц, включаемых в запрос, переходим в режим конструктора.
Для перехода в режим конструктора в Access 2013 нужно в области навигации кликнуть контекстной кнопкой мыши на имени формы и выбрать «Конструктор». Нажав ALT+F8, можно вызвать «Список полей», из которых поля можно перетащить непосредственно в форму.
Управляющие запросы
Создаются, когда необходимо автоматически изменить большие объёмы информации. С помощью управляющих запросов можно обновлять данные, добавлять или удалять записи, создавать новые таблицы. Рекомендуется сразу создавать запрос на выборку и, лишь убедившись, что она правильно работает, преобразовать его в запрос на действие.
Создание таблицы
Создаёт таблицу, содержащую необходимые данные, извлекая требуемые записи из одной таблицы и добавляя их во вновь созданную. Можно этот запрос использовать для создания резервной копии данных или архивных записей.
Есть возможность создания новой таблицы в другой базе данных, выбрав свойство «Другая база данных» и введя имя базы в поле «Имя файла».
Таблица, созданная при помощи запроса, не наследует свойства полей и первичный ключ родительской таблицы.
Перед выполнением запроса можно посмотреть, что получится, отобразив запрос в режиме таблицы. Создание физической таблицы произойдёт только после нажатия кнопки «Запуск».
Можно включить в новую таблицу вычисляемое поле. При создании таблицы поле станет заполненным данными.
Для создания архивной таблицы надо скопировать исходную таблицу и затем вставить её из буфера, скопировав при этом только структуру (без данных) таблицы.
Обновление
Позволяет изменять (обновлять) соответствующие значения в таблицах (одной или нескольких). Сразу создаётся обычный запрос на выборку и только затем на его основе запрос на обновление.
Добавление
Запрос на добавление извлекает записи из одной таблицы и добавляет их в конец другой (других). Можно применить, если надо добавить большое количество новых записей (новые поставщики и потребители и т. д.). Запрос выполняется один раз, иначе одни и те же записи будут добавлены неоднократно. Запрос хорош, когда в архивную таблицу добавляются записи, которые будут затем удалены из таблицы-поставщика.
Удаление
Удаляет указанные записи в таблицах (одной или нескольких).
Перед выполнением запроса на удаление надо создать такой же запрос на выборку. Лишь убедившись, что отобраны нужные записи, меняем тип запроса «Выборка» на «Удаление».
При удалении связанных записей из главной таблицы (при установленном флажке каскадного удаления) Access выдаёт некорректное сообщение, например, что будет удалена одна запись, даже если в подчинённой таблице вместе с этой записью будут удалены сотни и тысячи связанных записей (т. е. выдаётся сообщение о количестве удаляемых записей в главной таблице).
Технология работы с СУБД Access
Разработка СУБД в Access выполняется при помощи следующих пунктов:
-
Определить цель разработки базы данных. Необходимо определить назначение, узнать, в каком направлении двигаться — как предполагают использовать базу данных, какие результаты хотят получить, какие функции должны быть реализованы.
-
Определить примерное количество таблиц в базе данных — информацию необходимо систематизировать и “разложить все по полочкам”. Не следует добавлять слишком много полей в одну таблицу: лучше распределить данные на две и связать их. Каждая таблица должна содержать только одну тему.
-
Определить все поля и их типы данных в таблицах. Данные в ячейках должны соответствовать типам, чтобы в дальнейшем не возникло проблем с вычислениями, группировкой и сортировкой.
-
Определить соотношения таблицы-поля.
-
Обозначить первичные и (при необходимости) вторичные ключи в таблицах.
-
Построить схему данных для БД, отражающую связи между таблицами. Максимизировать взаимодействие между данными при помощи этих связей.
-
Усовершенствовать структуру, наглядно посмотрев на всю имеющуюся информацию и ее возможную систематизацию.
-
Воспользоваться анализом самого Access для очередной проверки.
Создание СУБД в Access возможно двумя способами:
-
использовать мастера БД для создания необходимых объектов;
-
создать пустую БД, дополняя ее новыми объектами самостоятельно.
MS Access позволяет расширить базу данных уже после ее создания, но основную структуру необходимо продумать заранее: такие вещи, как типы данных, впоследствии, особенно после заполнения таблицы, поменять будет невозможно.
Продуманную схему данных можно реализовать при помощи соответствующей вкладки в СУБД. Каждый из видов связи наглядно показывается в Access. Связи можно видоизменять или даже удалять.
Типы данных
Поля баз данных в Microsoft Access могут иметь такие типы данных, как:
-
Текстовый. Самый простой тип поля. Несмотря на название, может содержать как буквы, так и цифры, символы и прочее. Поэтому ограничения имеет только по длине — не более 255 знаков. Удобно для использования, если не требуется дальнейших расчетов между ячейками, поэтому, если в поле вводятся только числа, лучше использовать соответствующий ему тип.
-
Поле МЕМО. Тот же текстовый тип, хранящий большие объемы информации (до 64 кбайт, то есть до 64 тысяч символов). Из-за этой характеристики МЕМО не может быть использован в качестве ключа или индекса.
-
Числовой. Цифровое поле, имеющее подтипы, выбор которых зависит от желаемой точности вычислений и т. д. До 8 байт или 16 — для кодов репликации.
-
Счетчик. Поле, не требующее заполнения — значения (числа по возрастанию), автоматически заносится в таблицу, позволяя данным в ячейках оставаться уникальными. Проще говоря, счетчик нумерует записи в базе данных. Удобно использовать в качестве ключа 4 байта, 16 — для кодов репликации.
-
Логический. Используется только для значения — 0 (нет) и минус 1 (да). Можно настроить разные варианты записи — галочка или выбор вручную (размер — 1 байт).
-
Дата/время. Название типа данных говорит само за себя. Вывод в поле данных возможен в семи различных форматах. 8 байт.
-
Денежный. Определяет значения валют. Данный тип данных появился для предотвращения округления в вычислениях. Также 8 байт.
-
Поле объекта OLE. Принимает объекты разных форматов — графические, аудио и т. д. Размер — до одного гигабайта.
-
Гиперссылка. Адреса интернет-страниц, сайтов. До 64 тыс. символов.
- Мастер подстановок. Заранее предполагает связанные таблицы. Позволяет выбрать значение из другой таблицы или из поля со списком. При этом тип выбранного значения устанавливается автоматически. Имеет размер первичного ключа. Не более 4 байт.
Перекрестные запросы
Данные виды применяют с целью объединения в перекрестную таблицу денежных или числовых данных, хранящихся в исходной таблице. Перекрестный запрос в Access создается при помощи мастера запроса, используя инструкции которого, можно легко создать данный вид. По своей сути перекрестный запрос похож на сводные таблицы Excel.
Перекрестная таблица создается при указании заголовков строк, столбцов, значений и групповой операции.
Схема построения данного типа таблицы сводится к следующему. С помощью СУБД осуществляется группировка данных по групповым полям. Данная операция проводится над числами в поле значений. В ячейку таблицы, находящуюся на пересечении столбца и строк, помещается итоговое значение этой группы.
Перекрестные запросы в Access, как правило, применяют для создания отчетов и диаграмм.
Вставка рисунка или объекта
Создание других таблиц для этой базы данных — аналогичное.
Создайте еще 5 таблиц самостоятельно.
Вставка в запись рисунка или объекта
Рисунок или объект добавляется из имеющегося файла либо создается в приложении OLE (например, в MS Paint), а затем вставляется в текущую запись.
Рассмотрим размещение объекта OLE на примере поля Фотография начальника в таблице Преподаватели. Фотографии хранятся в формате графического редактора Paint в файлах с расширением .bmp. Если рисунка в вашем файле нет, то создайте его самостоятельно и сохраните.
- В окне базы данных установите курсор на таблице Преподаватели и нажмите кнопку Открыть
- Заполните строки (записи) открывшейся таблицы данными в соответствии с названиями столбцов (полей)
- Для размещения поля Фотография начальника выполните внедрение объекта OLE в файл базы данных. Установите курсор в соответствующее поле таблицы. Выполните команду меню Вставка|Объект
- В окне Вставка объекта выберите тип объекта Paintbrush Picture и установите флажок Создать из файла
- В этом окне можно ввести имя файла, содержащего фотографию.
- Для просмотра внедренного объекта установите курсор в соответствующее поле и дважды щелкните кнопкой мыши
- Чтобы вернуться из программы Paint, выполните команду Файл|Выход и возврат к таблице Преподаватели.
Размещение данных типа МЕМО в таблице
В таблице ПРЕДМЕТ предусмотрено поле ПРОГРАММА, которое будет содержать длинный текст – краткую программу курса. Для такого поля выберите тип данных ПолеМЕМО.
Типы данных в Access
Каждое поле имеет тип данных. Тип определяет данные, которые могут храниться в нём (допустим, вложенные файлы или большие объёмы текста):
Хоть тип данных и является свойством поля, он отличается от других свойств:
• задаётся не в области «Свойства поля», а на бланке таблицы;
• определяет, какие другие свойства существуют у этого поля;
• его нужно указывать при создании поля.
Если хотите создать новое поле в Access, нужно ввести данные в новый столбец, используя режим таблицы. В результате Access автоматически определит тип данных для вашего поля с учётом введённого вами значения. Если значение не будет относиться к определённому типу, Access выберет текстовый тип. В случае необходимости вы сможете его изменить через ленту.
Запросы на удаление
И наконец бывают ситуации, когда часть записей оказываются ненужными и их следует удалить, для чего в СУБД предназначены запросы на удаление строк. Приведем пример такой команды, удалив недавно добавленную запись из таблицы «Студенты» — учащегося Алексея Торопова.
В «Конструкторе запросов» выбираем тип «Удаление» и формируем команду с помощью условий:
В режиме SQL видим текст:
Выполнив команду, получаем результат в таблице:
Таким образом, мы на практике изучили, для чего предназначены запросы в БД. Их разнообразие больше и применение шире, чем описано в данной статье. Если вас заинтересует тема баз данных, вы можете продолжить изучение самостоятельно.
Какие бывают запросы
Виды команд зависят от того, для чего предназначены запросы и что за действия они выполняют. Основных типов операций два:
- на выборку;
- на действие.
Второй тип включает в себя команды, выполняющие изменения в БД: вставка, замена и удаление полей или строк. Все операции также делят на такие типы:
- по образцу (QBE – Query by example);
- SQL (Structured Query Language).
Первый вид использует специальный «Конструктор запросов». Такой мастер создания команд есть в СУБД Access. Он позволяет создавать запросы пользователям без специальных знаний.
SQL-запрос формирует программист, используя специальные инструкции.
Формы
Используются в качестве средства для ввода новой информации в таблицу. Преимуществом форм становится их удобный для пользователя вид — разработчик может использовать макет формы или создать совершенно новую. На этот объект можно поместить кнопки, переключатели и многое другое
В числе прочих особое внимание приковывает к себе кнопочная форма, представляющая собой модифицированный диспетчер задач, составляемый пользователем “под себя”. На нее можно поместить основные функции работы с базой данных — вход, выход, заполнение таблиц, просмотр данных
Обычные формы можно также включить в кнопочную.
Запрос на объединение таблиц
Запрос извлекает данные из нескольких таблиц, имеющих одинаковые поля. Самый простой способ извлечения записей из связанных таблиц.
При объединении таблиц, связанных отношением «один-ко-многим», поле первичного ключа таблицы «один» используется для отображения связанных записей из таблицы, представляющей сторону «многие».
Когда таблицы объединены, можно легко создать запрос, извлекающий данные из нескольких таблиц.
Программа переводит графический запрос в запрос SQL – универсальный язык запросов.
Собственный язык Access JetSQL имеет отличия от ANSI SQL.
Хотя большинство запросов создаются в режиме конструктора, Access хранит их в формате SQL (структурированном языке запросов). Чтобы увидеть режим SQL, надо выбрать Вид-Режим SQL.
Основные ключи и взаимосвязи таблиц
При создании таблицы, программа автоматически наделяет каждую запись уникальным ключом. По умолчанию в ней есть колонка имён, которая расширяется, по мере внесения новых данных. Именно эта колонка и является первичным ключом. Помимо таких, основных ключей, база данных также может содержать поля, связанные с информацией, содержащейся в другой таблице.
Например, у вас есть две таблицы, содержащие взаимосвязанную информацию. К примеру, они называются «День» и «План». Выбрав в первой таблице поле «понедельник», вы сможете связать его с каким-либо полем в таблице «План» и при наведении курсора на одно из этих полей, вы увидите информацию и связанные ячейки.
Подобные взаимосвязи облегчат читаемость вашей базы данных и наверняка увеличат её удобство и эффективность.
Чтобы создать взаимосвязь, перейдите во вкладку «Работа с базами данных» и в области «Отношения» выберите кнопку «Схема данных». В появившемся окне вы увидите все обрабатываемые базы данных
Следует обратить ваше внимание на то, что в базах данных должны быть специальные поля, предназначенные для внешних ключей. На нашем примере, если во второй таблице вы хотите отобразить день недели или число, оставьте пустое поле, назвав его «День»
Также настройте формат полей, т. к. он должен быть одинаков для обеих таблиц.
Затем, открыв две таблицы, перетащите поле, которое вы хотите связать, в специально приготовленное поле для внешнего ключа. Появится окно «Изменение связей», в котором вы увидите отдельно выделенные поля. Чтобы обеспечить изменение данных в обеих связанных полях и таблицах, поставьте галочку напротив пункта «Обеспечение целостности данных».
Таблицы в БД Access
Таблицы в БД похожи на обычную электронную таблицу, ведь и там, и там мы видим информацию, расположенную в столбцах и строках. Разница лишь в том, что в базах данных информация структурирована. Кстати, выполнить импорт обычной электронной таблицы в таблицу БД, как правило, не вызывает затруднений.
Строки в таблице — это записи, содержащие блоки информации. Каждая запись состоит как минимум из одного поля, причём поля соответствуют столбцам.
Как правило, реляционная база данных, например Access, включает в себя несколько таблиц. Если база данных спроектирована хорошо, в каждой таблице есть сведения о конкретном объекте, к примеру о товарах либо сотрудниках. Как мы уже сказали, таблица состоит из строк (записей) и столбцов (полей). В свою очередь, поля содержат разные типы данных: числа, даты, текст, гиперссылки:
- Это запись, содержащая конкретные данные о конкретном работнике.
- Это поле (столбец), содержащее данные об одном из аспектов элемента нашей таблицы (у нас это имя).
- Тут мы видим значение поля.
Как используются запросы?
Запросы гораздо более мощные, чем простые поиски или фильтры, которые вы могли бы использовать для поиска данных в таблице. Это связано с тем, что запросы могут извлекать информацию из нескольких таблиц. Например, если вы можете использовать поиск в таблице клиентов, чтобы найти имя одного клиента в вашей компании или фильтр в таблице заказов, чтобы просмотреть только заказы, размещенные за последнюю неделю, ни один из них не позволит вам просматривать как клиентов, так и заказы на один раз. Однако вы можете легко запустить запрос, чтобы найти имя и номер телефона каждого клиента, совершившего покупку за последнюю неделю. Хорошо спроектированный запрос может предоставить информацию, которую вы, возможно, не сможете найти, просто просмотрев данные в ваших таблицах.
Когда вы запускаете запрос, результаты представлены вам в таблице, но при его разработке вы используете другое представление. Это называется представлением Query Design , и оно позволяет увидеть, как ваш запрос объединяется.
Создание запроса с несколькими таблицами
Теперь, когда мы запланировали наш запрос, мы готовы его спроектировать и запустить. Если вы создали письменные планы для своего запроса, обязательно обращайтесь к ним часто в процессе разработки запроса.
Чтобы создать запрос с несколькими таблицами:
- Выберите команду « Конструктор запросов» на вкладке « Создать » на ленте.
В появившемся диалоговом окне « Показать таблицу » выберите каждую таблицу, которую вы хотите включить в свой запрос, затем нажмите « Добавить» . После того, как вы добавили все нужные таблицы, нажмите « Закрыть» . Когда мы планировали наш запрос, мы решили, что нам нужна информация из таблицы Customers и Orders , поэтому мы добавим их.
Таблицы появятся в панели «Связывание объектов» , которая связана линией соединения . Дважды щелкните тонкий раздел линии соединения между двумя таблицами, чтобы изменить направление соединения.
Регистрация Свойства диалоговое окно. Выберите вариант, чтобы выбрать направление вашего соединения.
- Выберите вариант 2: для объединения слева направо . В нашем запросе левая таблица — таблица Customers , поэтому выбор этого означает, что все наши клиенты, которые соответствовали нашим критериям местоположения, независимо от того, разместили ли они заказ, будут включены в наши результаты. Мы не хотим выбирать этот вариант для нашего запроса.
- Выберите вариант 3: для запроса справа налево . Поскольку наш правильный стол является нашей таблицей Orders , выбор этого параметра позволит нам работать с записями для всех заказов и только для клиентов, разместивших заказы. Мы выберем этот вариант для нашего запроса, потому что это именно те данные, которые мы хотим видеть.
В окнах таблицы дважды щелкните имена полей, которые вы хотите включить в свой запрос. Они будут добавлены в дизайнерскую сетку в нижней части экрана.
В нашем примере мы будем включать большинство полей из таблицы Customers : имя , фамилия , адрес , город , штат , почтовый индекс и номер телефона . Мы также будем включать идентификационный номер из таблицы Orders .
Установите критерии поля , введя требуемые критерии в строке критериев каждого поля. Мы хотим установить два критерия:
- Во-первых, чтобы найти клиентов, которые не живут в Роли, мы будем вводить Not In («Raleigh») в поле City.
- Во-вторых, чтобы найти клиентов , которые имеют телефонный номер , начинающийся с кодом 919 , мы вводим Like ( «919 *») в номер телефона поле.
После того, как вы установили критерии, запустите запрос, нажав команду « Выполнить» на вкладке « Дизайн запросов ».
Результаты запроса будут отображаться в представлении Datasheet запроса , которое выглядит как таблица. Если вы хотите, сохраните запрос, нажав команду « Сохранить» на панели быстрого доступа. Когда появится запрос на его имя, введите нужное имя и нажмите «ОК» .
Новые статьи
- Проектирование собственной базы данных в Access — 21/08/2018 15:16
- Форматирование форм в Access — 21/08/2018 15:11
- Создание форм в Access — 21/08/2018 15:05
- Изменение таблиц в Access — 21/08/2018 14:58
- Дополнительные параметры отчета в Access — 21/08/2018 14:48
- Создание отчетов в Access — 21/08/2018 14:42
- Дополнительные параметры дизайна запроса в Access — 21/08/2018 14:36
Предыдущие статьи
- Сортировка и фильтрация записей в Access — 21/08/2018 04:37
- Работа с формами в Access — 21/08/2018 04:25
- MS Access — Работа с таблицами, создание, удаление, настройка внешнего вида — 20/04/2018 17:18
- MS Access — Управление базами данных и объектами — 30/03/2018 16:18
- Начало работы в Access. Знакомство с Access 2010 — 10/02/2018 18:24
- MS Access: Введение в объекты — Таблицы, формы, запросы и отчеты — 07/02/2018 08:32
- MS Access: Что такое база данных? Отличие Access от Excel. — 03/02/2018 18:18
Запрос на объединение таблиц
Запрос извлекает данные из нескольких таблиц, имеющих одинаковые поля. Самый простой способ извлечения записей из связанных таблиц.
При объединении таблиц, связанных отношением «один-ко-многим», поле первичного ключа таблицы «один» используется для отображения связанных записей из таблицы, представляющей сторону «многие».
Когда таблицы объединены, можно легко создать запрос, извлекающий данные из нескольких таблиц.
Программа переводит графический запрос в запрос SQL – универсальный язык запросов.
Собственный язык Access JetSQL имеет отличия от ANSI SQL.
Хотя большинство запросов создаются в режиме конструктора, Access хранит их в формате SQL (структурированном языке запросов). Чтобы увидеть режим SQL, надо выбрать Вид-Режим SQL.