Запрос на выборку данных

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Запро́с на вы́борку да́нных — объект баз данных, используемый для осуществления эффективного поиска и обработки данных, содержащихся в этой базе.

Краткое описание[править]

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

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

Файл:Запрос из Access.png
Диалоговое окно Мастера запросов при формировании запроса из СУБД Access

Например, в реляционной СУБД Access существует пять категорий запросов к базе данных, а именно:

  • Запрос на выборку;
  • Запрос с параметрами;
  • Перекрёстный запрос;
  • Запрос на изменение;
  • Запрос SQL.

Запрос на выборку подразумевает извлечение данных из одной или нескольких таблиц базы данных Access и отображение результатов выборки в виде таблицы. Следует отметить, что извлечённая таблица не записывается в базу данных, а содержится в оперативной памяти компьютера, поэтому, если эта таблица нужна в дальнейшем, нужно предусмотреть способ её сохранения в постоянной памяти компьютера. Таблица, полученная в результате обработки запроса на выборку, является динамической.

Для работы с СУБД Access предусмотрен специальный, визуальный, дружелюбный к пользователю интерфейс, в котором запрос на выборку данных можно осуществить через Мастер запросов (интерфейс манипулирования запросами с базой данных Access). В нём можно выбрать Тип запроса, нужную таблицу и Доступные поля с целью сформировать Выбранные поля для получения в результате обработки запроса динамической таблицы, содержащей структурированные данные из Доступных полей. Осуществив запрос, пользователь получает нужную ему таблицу данных, извлечённых из общей базы данных. Более сложные запросы можно сформировать с помощью Конструктора запросов. Подробные инструкции по работе с этими инструментами содержатся в файлах помощи по СУБД Access. Формирование запроса из СУБД Access в Мастере запросов показано на рисунке. Манипуляции с данными делятся на поиск, сортировку и фильтрацию данных. СУБД Access позволяет работать и с многотабличными базами данных. Возможна организация использования стека для организации рекурсивных вызовов.


В языке SQL, используемом при работе с множеством СУБД, выделяют три группы операторов, называемых подъязыками SQL, для манипулирования данными из баз данных[1]:

  • DDL (Data Definition Language) — язык определения данных;
  • DCL (Data Control Language) — язык управления доступом к данным;
  • DML (Data Manipulation Language) — язык манипулирования данными.

В данном случае, при рассмотрении запросов на выборку данных, интересен язык манипулирования данными DМL. Это язык декларативного типа, то есть текст запроса не содержит алгоритма или инструкции к способу извлечения данных из базы данных.

Например, SQL-запрос вида Select * From W Where W.z≤W.q требует произвести выборку из таблицы W только тех ее строк, в которых значение поля z меньше либо равно значения поля q, при этом алгоритм операции в запросе не описывается.

В языке DML содержится четыре составных оператора формирования запросов:

  • SELECT — обеспечивает выборку множества строк таблиц, удовлетворяющих заданным условиям (иногда — их обработку;
  • INSERT — обеспечивает вставку или добавление в таблицы новых строк с заданными значениями их атрибутов;
  • UPDATE — обновляет значения атрибутов в строках таблиц, удовлетворяющих заданным ограничениям;
  • DELETE — удаляет из таблиц строки, удовлетворяющие заданным ограничениям.

С помощью оператора SELECT производится выборка строк таблиц, DELETE — удаление строк таблиц, UPDATE — обновление строк таблиц перед вставкой с помощью оператора INSERT в динамическую таблицу. Оператор SELECT включает шесть разделов: SELECT, FROM, WHERE, ORDER BY, GROUP DY и HAVING (обязательными являются только SELECT и FROM). Описание структуры запросов содержится в документации к языку SQL.

Примеры запросов (одна строка — один запрос):

SELECT * FROM Список товаров; {выборка всех строк и всех столбцов таблицы Список товаров}

SELECT Наименования, Цена, Количество, Остаток FROM Список товаров; {выборка всех строк и четырех столбцов таблицы}

SELECT Список товаров, Цена*Количество AS ЦенаПартииТоваров FROM Список Товаров WHERE Количество> Остаток; {выборка товаров, количество которых превышает остаток}

SELECT Код_Заказа, ДатаРазмещения FROM Заказы WHERE Заказы. ДатаРазмещения>#01-01-2024#; {выборка заказов, размещенных позднее 1 января 2024 г.}

SELECT DISTINCT Клиент, Телефон FROM Клиенты WHERE Клиент Like «*RosManufacturer*»; {выборка имен и номеров телефонов клиентов, имена которых включают набор текстовых символов RosManufacturer}


Следует помнить:

Отметим, что в трехзначной логике таблица истинности имеет вид:

true OR unknown = true
true AND unknown = unknown
unknown OR unknown = unknown
unknown AND unknown = unknown
false OR unknown = unknown
false AND unknown = false
NOT unknown = unknown

Знание таблицы истинности в трехзначной логике помогает при создании логических выражений в рамках SQL-модели.


Примечания[править]

  1. Волк В. К. Базы данных. Проектирование, программирование, управление и администрирование. — СПб.: Лань, 2020.

Литература[править]

  • Голицына О. Л., Максимов Н. В., Попов И. И. Базы данных: учебное пособие. — М. : ФОРУМ : ИНФРА-М, 2008.
  • Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: учебное пособие. — М. : Бином-Пресс, 2007.
  • Чигарина Е. И. Проектирование и реализация баз данных средствами СУБД ACCESS: методические указания. — Самара : Изд-во СГАУ, 2009.

Ссылки[править]

Рувики

Одним из источников, использованных при создании данной статьи, является статья из википроекта «Рувики» («ruwiki.ru») под названием «Запрос на выборку данных», расположенная по адресу:

Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC-BY-SA 4.0 и более поздних версий.

Всем участникам Рувики предлагается прочитать материал «Почему Циклопедия?».