Similar presentations:
7 SQL в Microsoft Access
1.
SQL в Microsoft AccessТипы данных → Таблицы → Данные →
Поиск
2.
Литералы: как записываются значенияТекст: '...' (одинарные кавычки)
Числа: 10, -5, 3.14 (без кавычек)
Дата/время: #...# (особенность Access)
Логика: True / False
Null — "значение отсутствует" (не равно
пустой строке '')
SELECT 'Иванов' AS
AS
True AS
10 AS
#2026-02-11#
Null AS
КОММЕНТАРИЙ К ПРИМЕРУ
• Демонстрирует все основные формы записи
значений.
3.
Имена таблиц/полей и квадратные скобкиЕсли имя содержит пробелы, русские буквы
или символы → используем []
SELECT 'Петров П.П.' AS
#2026-02-11# AS
[] также спасает от конфликтов с
зарезервированными словами (например,
[Order])
[] можно ставить и на алиасы (заголовки
результата)
КОММЕНТАРИЙ К ПРИМЕРУ
• Показ [] без таблиц (на алиасах).
True AS
4.
Типы данных Access SQLМинимальный набор (для курса):
TEXT(n) — короткий текст (до 255 символов)
LONGTEXT — длинный текст (Memo)
LONG — целое число (часто для ID и ссылок)
DOUBLE — дробное число
CURRENCY — деньги (финансовый формат)
DATETIME — дата и время
YESNO — Да/Нет (логический)
AUTOINCREMENT — счётчик (авто-ID)
CREATE TABLE
TEXT
LONGTEXT
CURRENCY
DATETIME
AUTOINCREMENT
LONG
DOUBLE
YESNO
КОММЕНТАРИЙ К ПРИМЕРУ
• "Таблица-памятка": как типы реально пишутся в
SQL Access.
5.
Как выбирать тип поля (по смыслу)ID записи → AUTOINCREMENT
Ссылка на другую таблицу (FK) → LONG
Имена/названия/коды → TEXT(n)
Описания/комментарии → LONGTEXT
Денежные суммы → CURRENCY
Даты событий → DATETIME
Флаг/признак → YESNO
Ошибка: хранить числа/даты текстом
(ломается сортировка и фильтры)
SELECT 'AUTOINCREMENT для ID' AS
'LONG для ссылок' AS
'DATETIME для дат' AS
КОММЕНТАРИЙ К ПРИМЕРУ
• Теоретическая памятка без таблиц.
6.
CREATE TABLE: базовый шаблонСоздаёт таблицу и задаёт её поля.
Синтаксис:
Типы берутся из списка Access SQL (см.
CREATE TABLE
LONG
TEXT
CREATE TABLE Имя (Поле Тип, ...)
предыдущие слайды).
КОММЕНТАРИЙ К ПРИМЕРУ
• Универсальный каркас для любых таблиц.
7.
Таблица-справочник (пример): DepartmentsСправочник: "перечень значений", которые
используются в других таблицах.
Классика: ID + Название.
ID справочника хранится в основной таблице
как число (LONG).
CREATE TABLE
AUTOINCREMENT
TEXT
КОММЕНТАРИЙ К ПРИМЕРУ
• Создаём справочник отделов.
• DeptID будет заполняться автоматически.
8.
Основная таблица (пример): EmployeesОсновная таблица хранит сущности/факты.
Используем поля разных типов для
демонстрации.
CREATE TABLE
AUTOINCREMENT
LONG
YESNO
DATETIME
TEXT
CURRENCY
DeptID LONG — ссылка на Departments по
смыслу (Foreign Key).
КОММЕНТАРИЙ К ПРИМЕРУ
• Теперь у нас есть таблица, к которой можно делать
INSERT/SELECT/WHERE.
9.
Важное правило Access: 1 инструкция = 1 запускВ Access-запросе (SQL View) часто нельзя
выполнить "пакет" из нескольких команд за раз.
-- ОШИБКА: Две команды подряд CREATE TABLE
LONG
INSERT INTO
VALUES
Типичная ошибка: вставить CREATE TABLE +
INSERT + DROP одним блоком → сообщение
КОММЕНТАРИЙ К ПРИМЕРУ
"Ошибка синтаксиса в CREATE TABLE".
• Это пример "как НЕ делать".
Правильно: делать 3 отдельных запроса (или
• Две команды в одном запуске в Access часто
запускать по одному).
приводят к синтаксической ошибке.
10.
INSERT: добавление строк (общая форма)Синтаксис:
Поля перечислять желательно всегда
INSERT INTO Таблица (поля) VALUES (значения)
(хороший тон).
AUTOINCREMENT не вставляем вручную
(система сделает сама).
INSERT INTO
'ИТ-отдел'
КОММЕНТАРИЙ К ПРИМЕРУ
• Добавляет одну строку в Departments.
• DeptID назначится автоматически.
VALUES
11.
INSERT в Employees (все типы)Текст: в кавычках '...'
Число: без кавычек
Дата: в решетках #...#
Логика: True / False
INSERT INTO
1
#2025-09-01#
VALUES
'Иванов И.И.'
65000 True
КОММЕНТАРИЙ К ПРИМЕРУ
• Создаёт запись сотрудника.
• DeptID=1 должен соответствовать существующему
отделу.
12.
INSERT…SELECT: массовая вставкаПрименение: загрузка данных из таблицы
импорта или результата другого запроса.
INSERT INTO
SELECT
FROM
Поля в INSERT (...) должны совпадать по
количеству и типам с полями в SELECT.
КОММЕНТАРИЙ К ПРИМЕРУ
• Переносит данные из Employees_Import (если такая
таблица существует).
13.
SELECT: базовый "поиск по таблице"SELECT * — быстрый просмотр всей таблицы.
В реальных задачах лучше выбирать только
нужные поля (для читабельности и скорости).
SELECT
FROM
КОММЕНТАРИЙ К ПРИМЕРУ
• Выводит все поля и все строки таблицы Employees.
14.
SELECT с явными полями и алиасами (AS)AS задаёт заголовок столбца в результате
запроса.
Удобно для отчётов и понятного вывода данных.
Если алиас содержит пробелы, его нужно
брать в [].
SELECT
AS
AS
AS
FROM
КОММЕНТАРИЙ К ПРИМЕРУ
• Столбцы результата будут называться "ФИО",
"Оклад", "Принят".
15.
Вычисляемые поля: арифметикаВ SELECT можно считать новые значения "на
лету".
Арифметика: + - * /.
Это не меняет данные в таблице, только в
результате запроса.
SELECT
FROM
AS
КОММЕНТАРИЙ К ПРИМЕРУ
• Добавляется виртуальный столбец "Оклад +10%".
16.
Конкатенация текста в Access: оператор &В Jet/ACE часто используют & для склейки строк.
Можно склеивать текст + число (Access
SELECT
AS
' (Dept='
FROM
автоматически приведёт тип числа к тексту).
КОММЕНТАРИЙ К ПРИМЕРУ
• Результат будет вида: "Иванов И.И. (Dept=1)".
')'
17.
NULL в выражениях и функция Nz()Null "ломает" многие выражения (результат
любой операции с Null становится Null).
FROM
' '
Nz
''
AS
Nz(поле, значение_если_null) подставляет
замену.
SELECT
Особенно важно для текстовых полей
(телефон, комментарии).
КОММЕНТАРИЙ К ПРИМЕРУ
• Если Phone пустой (Null), выражение не превратится
в Null, а просто подставит пустую строку.
18.
WHERE: фильтрация по условиям (основа поиска)WHERE отбирает строки.
Операторы сравнения: = <> > < >= <=.
Числа сравниваются напрямую.
SELECT
WHERE
70000
FROM
КОММЕНТАРИЙ К ПРИМЕРУ
• Выведет сотрудников с зарплатой 70000 и выше.
19.
Составные условия: AND / OR / NOT + скобкиAND — должны выполниться все условия.
OR — достаточно выполнения одного условия.
При смешивании AND и OR скобки
обязательны для правильной логики.
SELECT
AND
WHERE
True
OR
FROM
КОММЕНТАРИЙ К ПРИМЕРУ
• Ищет активных сотрудников из отдела 1 или 2.
20.
LIKE: поиск по шаблону (маски Access)В Access шаблоны часто такие:
* — любая последовательность символов.
? — один любой символ.
Типовые сценарии: начинается на, содержит,
заканчивается на.
SELECT
FROM
LIKE 'Иван*'
WHERE
КОММЕНТАРИЙ К ПРИМЕРУ
• ФИО начинается на "Иван" (Иван, Иванов,
Иванченко...).
21.
BETWEEN и IN: диапазоны и спискиBETWEEN A AND B удобно для чисел и дат.
IN (...) заменяет длинную цепочку OR.
SELECT
WHERE
#2025-12-31#
FROM
BETWEEN #2025-01-01# AND
КОММЕНТАРИЙ К ПРИМЕРУ
• Сотрудники, принятые в течение 2025 года.
22.
ORDER BY: сортировка результатаСортирует уже найденные строки.
Можно сортировать по нескольким полям.
DESC — убывание (большие сверху), ASC —
возрастание (по умолчанию).
SELECT
DESC
ORDER BY
ASC
FROM
КОММЕНТАРИЙ К ПРИМЕРУ
• Сначала сортирует по отделу.
• Внутри одного отдела — по зарплате (сверху
большие).
23.
TOP: первые N строк (топ-результаты)TOP n ограничивает количество выводимых
строк.
SELECT TOP
ORDER BY
DESC
Имеет смысл почти всегда использовать
вместе с ORDER BY.
КОММЕНТАРИЙ К ПРИМЕРУ
• Топ-5 сотрудников по зарплате.
FROM
24.
UPDATE: изменение данных (строк) по условиюМеняет данные в таблице.
Формула: UPDATE ... SET ... WHERE ...
Важно: Без WHERE изменится вся таблица!
UPDATE
WHERE
SET
КОММЕНТАРИЙ К ПРИМЕРУ
• Увеличивает зарплату на 10% (умножение на 1.10).
• Только для сотрудников отдела 1.
25.
DELETE: удаление записей (строк) по условиюУдаляет строки целиком.
Важно: Без WHERE удалит всё содержимое
DELETE FROM
False
WHERE
таблицы!
КОММЕНТАРИЙ К ПРИМЕРУ
• Удаляет всех неактивных сотрудников.
26.
ALTER TABLE: добавить столбец (стабильный случай)Безопасное изменение структуры: ADD COLUMN.
Старые записи получат Null в новом поле.
ALTER TABLE
TEXT
ADD COLUMN
КОММЕНТАРИЙ К ПРИМЕРУ
• Добавили поле Phone (текстовое) в таблицу
Employees.
27.
Удаление столбца: прямой способ и "железный" обходнойПрямой способ (может не сработать, если
поле в индексе/связи):
ALTER TABLE ... DROP COLUMN ...
-- 1. Прямой (может дать ошибку) ALTER TABLE
DROP COLUMN
-- 2. Обходной (по шагам)
SELECT
INTO
FROM
Обходной способ (работает почти всегда):
миграция структуры через новую таблицу /
КОММЕНТАРИЙ К ПРИМЕРУ
SELECT INTO.
• Обходной: создаём новую таблицу Employees_Tmp
копированием.
• Далее: удаляем старую, создаём новую,
возвращаем данные.
28.
Итог: "минимальный набор команд" для стартаСтруктура: CREATE TABLE, ALTER TABLE ADD
COLUMN
Данные: INSERT, SELECT, UPDATE, DELETE
SELECT TOP
WHERE
60000 ORDER BY
FROM
True AND
DESC
Поиск: WHERE, LIKE, BETWEEN, IN
Оформление: AS, ORDER BY, TOP
Правило Access: 1 инструкция за 1 запуск.
КОММЕНТАРИЙ К ПРИМЕРУ
• Типовой запрос поиска: 10 активных с окладом от
60000, сверху самые большие.
database