На Горох
Информатика, 9 класс

§ 8. Запросы на добавление, изменение и удаление данных

"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.

Объяснение темы В оглавлении: § 8. Запросы на добавление, изменение и удаление данных

Кратко о теме

Запросы на добавление, изменение и удаление помогают управлять записями в базе данных без ручного редактирования каждой строки. С их помощью можно перенести выбранные данные в таблицу, заменить значения полей или удалить ненужные записи. Главное — заранее определить, какие именно записи должны быть затронуты, и проверить отбор. Если в запросе на изменение или удаление пропустить условие, он может повлиять на всю таблицу.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Запрос на добавление — запрос, который добавляет в таблицу новые записи, отобранные из другой таблицы или другого запроса. Он нужен, когда данные подготовлены в одном месте, а их требуется перенести в основную таблицу. Например, так можно внести сведения о новых участниках.

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

Запрос на удаление — запрос, который удаляет из таблицы все записи, удовлетворяющие заданному условию. Он нужен, чтобы убрать сведения, которые больше не должны храниться в таблице. До выполнения следует определить, какие именно записи подходят под условие, поскольку удаление может затронуть сразу много строк.

Запрос на выполнение — запрос, который изменяет данные базы: добавляет, изменяет или удаляет записи. Его результатом становится изменение содержимого таблиц, а не только показ отобранных данных. Поэтому такой запрос применяют после проверки настроек и ожидаемого результата.

Как это устроено

Операцию выбирают по тому, какой результат нужен. Если в таблице должны появиться новые записи, используют добавление; если нужно исправить значения уже существующих, выбирают изменение; если записи следует убрать — удаление. Различие важно: запрос на добавление не заменяет сведения в существующей записи, а запрос на изменение не создаёт новую. Когда сначала ясно сформулирована цель, меньше риск применить не тот тип запроса.

Для добавления указывают таблицу-источник, откуда берутся сведения, и целевую таблицу, куда они попадут. Затем выбирают поля и задают соответствие между ними: например, название поля с именем в источнике должно вести в поле имени в целевой таблице. Это нужно потому, что данные хранятся по столбцам с разным назначением и, возможно, разными типами. Записи источника также можно отобрать условием, чтобы перенести не все данные, а только нужную группу.

Запрос на изменение работает в два этапа: сначала условие отбора определяет подходящие записи, затем выбранным полям присваиваются новые значения. Например, можно найти учеников прежнего класса и изменить поле с номером класса. Условие ограничивает действие запроса, чтобы остальные записи остались прежними. Если условие не задано, подходящими окажутся все записи таблицы, поэтому изменятся значения у всех.

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

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

Сравнение запросов, изменяющих данные

СвойствоНа добавлениеНа изменениеНа удаление
Что происходит с даннымиСоздаются новые записиЗаменяются значения выбранных полейЗаписи удаляются
Какие записи затрагиваютсяОтобранные записи источникаЗаписи, подходящие под условиеЗаписи, подходящие под условие
Какие таблицы участвуютТаблица-источник и целевая таблицаТаблица с изменяемыми даннымиТаблица с удаляемыми данными
Что задаётся в запросеИсточник, целевая таблица, поля и их соответствиеУсловие отбора, изменяемые поля и новые значенияТаблица и условие отбора
Результат выполненияВ целевой таблице появляются записиВ выбранных записях меняются значенияВыбранных записей больше нет в таблице

Сначала найдите в таблице строку «Что происходит с данными»: она помогает выбрать подходящий тип запроса по цели. Затем сравните, какие записи и таблицы участвуют, и проверьте, что именно нужно задать. Особенно внимательно смотрите на условие отбора и соответствие полей при добавлении.

Разбор задач

Добавление новых участников

Условие. Нужно добавить в таблицу «Участники» записи о новых учениках из таблицы «Новые участники». Одного переноса таблицы целиком может быть недостаточно: в источнике могут оказаться сведения, которые уже внесены. Поэтому требуется выбрать подходящие записи и правильно распределить значения по полям.

  1. Определяем цель: нужно создать новые записи, значит, выбираем запрос на добавление.
  2. Назначаем «Новые участники» источником, а «Участники» целевой таблицей.
  3. Сопоставляем одноимённые поля, например имя с именем и класс с классом; проверяем, что типы данных подходят.
  4. Настраиваем отбор только тех учеников, которых ещё нет в целевой таблице, и проверяем результат до выполнения.

Ответ. Запрос добавит в «Участники» только выбранные новые записи. Поля источника будут записаны в соответствующие поля целевой таблицы.

Изменение класса учеников

Условие. Нужно изменить класс учеников, переведённых в следующий класс, указав в условии их прежний класс. Чтобы не поменять номер класса у всех учеников, в запросе требуется ограничить отбор. Кроме того, нужно заранее определить новое значение поля.

  1. Выбираем запрос на изменение, поскольку записи уже существуют, а меняется значение поля.
  2. Указываем прежний класс в условии отбора, чтобы запрос нашёл нужных учеников.
  3. Для поля «Класс» задаём новое значение, соответствующее следующему классу.
  4. Создаём выборку с тем же условием и проверяем, что в ней только нужные ученики; затем выполняем запрос.

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

Удаление отменённых заказов

Условие. Нужно удалить из таблицы «Заказы» записи о заказах, отменённых до указанной даты. Важно не удалить действующие заказы или отмены, которые произошли позже. Поэтому сначала проверяем границы отбора, а не сразу запускаем удаление.

  1. Выбираем запрос на удаление, так как подходящие записи нужно убрать из таблицы.
  2. Задаём условие по статусу отмены и указанной дате, учитывая, что означает формулировка «до даты».
  3. Выполняем обычную выборку с тем же условием и просматриваем найденные заказы.
  4. Если выборка содержит только нужные записи, выполняем запрос на удаление.

Ответ. Из таблицы исчезнут только заказы, которые соответствуют условию отмены и даты. Проверка выборки позволяет заметить слишком широкое условие до удаления данных.

Типичные ошибки

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

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

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

Сразу выполнить запрос без предварительной проверки. Ошибка в условии может изменить или удалить множество записей. Спешка создаёт ложную уверенность, что запрос затронет только один нужный случай. Сначала просмотрите обычную выборку с тем же условием и проверьте каждую отображённую запись.

Связь с другими темами

Чтобы работать с такими запросами, нужно понимать устройство реляционной базы: таблица состоит из записей и полей, а у полей есть типы данных. Эти знания помогают выбрать нужные столбцы и правильно сопоставить их при добавлении. Условия отбора знакомы по запросам на выборку: здесь они определяют, какие записи будут изменены или удалены. Такие операции применяют при ведении баз данных и автоматизации повторяющихся действий с таблицами.

Что запомнить

  • Запрос на добавление создаёт новые записи в целевой таблице.
  • Запрос на изменение меняет значения полей в отобранных записях.
  • Запрос на удаление убирает отобранные записи из таблицы.
  • Условие отбора определяет, какие записи затронет запрос.
  • Без условия запрос на изменение или удаление может затронуть всю таблицу.
  • Перед выполнением запроса проверьте, какие записи он выберет.

Частые вопросы по теме

Чем запрос на изменение отличается от запроса на добавление?

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

Что произойдёт, если не задать условие в запросе на удаление?

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

Можно ли сначала увидеть записи, которые затронет запрос?

Да. Создайте обычную выборку с тем же условием и просмотрите результат. Так можно проверить, какие записи попадут под действие запроса.

Зачем при добавлении сопоставлять поля таблиц?

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

Можно ли отменить выполнение запроса, если он изменил данные не так, как ожидалось?

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

Спросить по теме параграфа

§ 8. Запросы на добавление, изменение и удаление данных

Учебник

Оглавление →
Предмет
Информатика
Класс
9 класс
Учебник
"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.