Для чего предназначены запросы? Языки запросов

Базы данных занимают все больше места в нашей жизни. Их используют в компаниях и банках, магазинах и на складах. Сталкиваясь с ними в повседневной жизни, многие хотят научиться управлению базами. Поэтому в статье мы познакомим читателя с понятием запросов.

Что такое запросы

Запросы в базе данных – это специальные команды, с помощью которых меняют данные в таблицах и получают из них нужную информацию. Эти команды могут применяться как к таблицам, так и к другим объектам БД – индексам, триггерам, представлениям, а также к БД в целом. При этом СУБД (системы управления базами данных) разрешают производить изменения как в таблице целиком, так и в отдельных записях и группах строк.

Какие бывают запросы

Виды команд зависят от того, для чего предназначены запросы и что за действия они выполняют. Основных типов операций два:

  • на выборку;
  • на действие.

Второй тип включает в себя команды, выполняющие изменения в БД: вставка, замена и удаление полей или строк. Все операции также делят на такие типы:

  • по образцу (QBE – Query by example);
  • SQL (Structured Query Language).

Первый вид использует специальный "Конструктор запросов". Такой мастер создания команд есть в СУБД Access. Он позволяет создавать запросы пользователям без специальных знаний.

SQL-запрос формирует программист, используя специальные инструкции.

Запросы из БД

Языки

Основным языком практически во всех СУБД является SQL. Это гибкая система команд, позволяющая получить необходимую информацию из таблиц, отвечающую указанным условиям. С помощью этого языка можно как делать выборку, так и вносить изменения в объекты БД.

Для обработки документов в формате XML – расширяемом языке разметки – задействованы специальные языки запросов. Это XQuery и XPath, последний служит для запросов к элементам документов.

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

Наиболее востребованная операция в БД – это получение данных из таблиц, для чего предназначены запросы на выборку. Эти команды позволяют посмотреть нужные данные из БД согласно введенным условиям. Для этого пользователь "Конструктора запросов" или программист указывает список полей (столбцов), которые он хочет получить, присваивает им наименования, расставляет в нужном порядке.

Команда может быть безусловной либо с заданными параметрами. В первом случае пользователю будет возвращен массив данных, состоящий из всех строк таблицы. Во втором – только те строки, которые отвечают введенному требованию. Таким образом можно задавать ограничения – устанавливать фильтр на необходимые данные.

Полученную информацию можно также отсортировать по одному или нескольким полям, объединить строки по какому-то признаку, произвести подсчеты с использованием функций. Это агрегатные функции, подсчитывающие количество, сумму, среднее арифметическое значение полей и другие итоги.

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

Попробуем сделать выборку в Access, для чего предназначены запросы в "Конструкторе". Создадим в нашей базе данных таблицу "Студенты".

Код Имя студента Фамилия студента Дата рождения Факультет Курс
1 Иван Иванов 16.05.1999 Технологический 3
2 Сергей Козлов 19.01.1999 Экономический 3
3 Валерий Пяткин 22.12.2000 Экономический 2
4 Тимофей Трещоткин 01.05.2001 Юридический 1

Открываем вкладку "Создание" и выбираем пункт «Конструктор запросов». Добавляем таблицу "Студенты". Для выбора нужных полей дважды кликаем на них. Внизу окна добавляем сортировку, если она необходима, и дополнительные условия отбора.

Конструктор выборки

После нажатия на кнопку «Выполнить» вкладки «Конструктор» в окне появляются результаты выборки.

Результаты выборки

Такие же результаты можно получить с использованием SQL-запроса. Переход в режим SQL происходит по контекстному пункту меню. Наша операция здесь выглядит так:

SELECT Студенты.[Имя студента], Студенты.[Фамилия студента], Студенты.[Дата рождения]

FROM Студенты

ORDER BY Студенты.[Имя студента];

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

Запросы на добавление

Этот тип операций используется для вставки новых строк в существующую таблицу БД. Можно добавлять конкретные значения полей, а можно извлекать информацию из одной таблицы и добавлять ее в другую. Как извлекать данные, мы уже знаем, давайте посмотрим, как добавить строки.

Создадим еще одну таблицу «Новые студенты» и добавим в нее 2 записи:

Код Имя Фамилия Дата рождения
1 Юрий Семенов 11.12.2002
2 Алексей Торопов 13.08.2002

А теперь вставим эти данные в таблицу «Студенты» с помощью "Конструктора запросов". Для этого на вкладке "Конструктор" выберем пункт «Добавить», а в открывшемся окне укажем таблицу «Студенты», в которую будут вставляться данные. В окне запроса добавим таблицу «Новые студенты», из которой будем брать записи. Выберем поля, информация из которых будет добавлена в таблицу «Студенты»:

Конструктор добавления

И выполним запрос. Таблица стала выглядеть так.

Результаты добавления

В режиме языка запросов SQL на добавление принимает вид:

INSERT INTO Студенты ( [Имя студента], [Фамилия студента], [Дата рождения] )

SELECT [Новые Студенты].Имя, [Новые Студенты].Фамилия, [Новые Студенты].[Дата рождения]

FROM [Новые Студенты];

Запросы на изменение

Часто возникает необходимость внести изменения в уже существующие записи таблицы, для чего предназначены запросы на изменение данных. По аналогии с предыдущими операциями, эта может выполняться как над всеми строками, так и только над теми, что соответствуют критериям отбора.

Сейчас в таблице «Студенты» есть две записи с пустыми полями «Факультет» и «Курс» - недавно добавленные строки. Давайте сделаем в них изменения и внесем нужные данные в эти столбцы.

Студент Семенов поступил на первый курс юридического факультета. В Конструкторе запросов выбираем тип команд «Обновление» и добавляем нужные данные и условие изменения записей. Нам нужно изменить два поля, поэтому вносим данные для изменения в двух столбцах параметров запроса – поле «Факультет» таблицы «Студенты» должно принять значение «Юридический», поле «Курс» этой же таблицы – значение «1». В третьем столбце вносим условие, по которому отбирать данные для изменения. Фамилия студента таблицы «Студенты» должна быть «Семенов».

Конструктор обновления

В режиме SQL видим:

UPDATE Студенты SET Студенты.Факультет = "Юридический", Студенты.Курс = 1

WHERE Студенты.[Фамилия студента]="Семенов";

Выполняем операцию и получаем результат.

Результаты изменения

Запросы на удаление

И наконец бывают ситуации, когда часть записей оказываются ненужными и их следует удалить, для чего в СУБД предназначены запросы на удаление строк. Приведем пример такой команды, удалив недавно добавленную запись из таблицы «Студенты» - учащегося Алексея Торопова.

В "Конструкторе запросов" выбираем тип «Удаление» и формируем команду с помощью условий:

Конструктор удаления

В режиме SQL видим текст:

DELETE

FROM Студенты

WHERE Студенты.[Фамилия студента]="Торопов";

Выполнив команду, получаем результат в таблице:

Результаты удаления

Таким образом, мы на практике изучили, для чего предназначены запросы в БД. Их разнообразие больше и применение шире, чем описано в данной статье. Если вас заинтересует тема баз данных, вы можете продолжить изучение самостоятельно.