Ниже подробное решение и пошаговые инструкции по созданию базы данных в MS Access, проектированию таблицы и применению обновляющего и удаляющего запросов. Примеры подойдут для общего школьного уровня.
- Создание базы данных
- Открой MS Access.
- Выбери Создать -> Blank Database.
- Введите имя базы данных, например: SchoolDB.accdb.
- Нажми Создать. Появится пустая база данных с новой таблицей по умолчанию.
- Проектирование таблицы Цель: создать таблицу, которая будет использоваться для обновления и удаления данных.
Переключись на режим Конструктор (Design View) или Таблица (Table) в зависимости от версии.
Создай новую таблицу и добавь поля:
- StudentID: Data Type = AutoNumber, Primary Key (Ключевой первичный уникальный идентификатор). Это будет уникальный идентификатор каждого ученика.
- FirstName: Short Text
- LastName: Short Text
- Class: Short Text (например, "9A", "10B")
- Score: Number (целое или вещественное, в зависимости от используемой шкалы)
Сохрани таблицу под названием Students.
Удостоверься, что Primary Key установлен на поле StudentID.
- Внесение примера данных (для наглядности)
- Открой таблицу в режиме Таблица (Datasheet View) и добавь несколько записей, например:
- John, Doe, 9A, 75
- Jane, Smith, 9A, 62
- Alex, Brown, 9B, 48
- Maria, Garcia, 9A, 90
- Обновляющий запрос (Update) — как применить Цель примера: увеличить баллы на 5 для всех учеников в классе 9A.
Вариант A — через меню Access (UI):
- Create -> Query Design.
- Добавь таблицу Students и закрой окно добавления.
- В ленте на вкладке DESIGN выбери Update (кнопка Update).
- В строке Field помести: Score
- Таблица: Students
- В строке Update To введи: [Score] + 5
- В строку Criteria введи: "9A" в поле Class (для фильтра по классу). Например:
- Field: Score | Table: Students | Update To: [Score] + 5
- Field: Class | Table: Students | Criteria: "9A"
- Сохрани запрос под именем IncreaseScore9A.
- Запусти запрос (Run). Внесенные изменения применятся к всем записям с Class = "9A".
Вариант B — через SQL view:
- Create -> Query Design -> переключись в View -> SQL View.
- Введи следующий SQL: UPDATE Students SET Score = Score + 5 WHERE Class = '9A';
- Выполни запрос (Run) и сохрани, например как IncreaseScore9A_SQL.
Пояснения:
- [Score] + 5 увеличивает текущий балл на 5.
- WHERE Class = '9A' ограничивает изменения только записями класса 9A.
- Резервная копия базы перед массовыми обновлениями всегда желательна.
- Удаляющий запрос (Delete) — как применить Цель примера: удалить записи учеников, у которых баллы ниже порога, например меньше 50.
Вариант A — через меню Access (UI):
- Create -> Query Design.
- Добавь таблицу Students.
- В ленте DESIGN выбери Delete.
- В Field помести пару строк (пример с полем Score):
- Field: Score | Table: Students | Criteria: < 50
- Сохрани запрос под именем DeleteLowScores.
- Запусти запрос (Run). Удалятся все записи, у которых Score < 50.
Вариант B — через SQL view:
- Create -> Query Design -> переключись на SQL View.
- Введи SQL: DELETE FROM Students WHERE Score < 50;
- Выполни запрос и сохрани, например как DeleteLowScores_SQL.
- Как проверить результат
- Открой таблицу Students (Datasheet View) и посмотри оставшиеся записи.
- Убедись, что обновления или удаления произошли только по заданным условиям.
- При необходимости можно выполнить SELECT-запрос (простая выборка) для проверки:
- SELECT * FROM Students WHERE Class = '9A';
- SELECT AVG(Score) FROM Students; чтобы увидеть средний балл после изменений.
- Важные заметки и рекомендации
- Всегда делай резервную копию базы перед массовыми обновлениями или удалениями.
- Убедись, что типы данных соответствуют полям (Score – числовой, Class – текстовый и т. д.).
- Если планируешь работать с несколькими таблицами и отношениями, держи в голове принцип referential integrity.
- Для повторного использования удобно сохранять запросы под понятными именами, как IncreaseScore9A или DeleteLowScores.
Если хочешь, могу адаптировать пример под другую предметную область (например, таблица “Products” с полями ProductID, Name, Category, Price, Stock) или под конкретный набор данных, который у тебя есть.