- •Языки манипулирования реляционными данными (Data Manipulation Languages, dml)
- •1). Реляционная алгебра.
- •2). Реляционное исчисление.
- •3). Языки, ориентированные на преобразования.
- •4). Графически языки.
- •Язык структурированных запросов sql (Structured Query Language)
- •Однотабличные запросы-выборки
- •Многотабличные запросы-выборки
- •1). Задание соединения таблиц в предложении where.
- •2). Задание соединения таблиц в предложении from.
- •3). Подчиненные запросы.
- •4). Запросы объединения.
- •Вычисляемые поля.
- •1). Комбинирование значений в текстовых полях.
- •2). Расчет числовых значений и дат.
- •3). Вычисление итоговых значений.
- •4). Подчиненные запросы.
- •Запросы с параметрами.
- •Запросы-изменения
- •1). Запрос на создание таблицы.
- •2). Запрос на добавление записей.
- •3). Запрос на обновление.
- •4). Запрос на удаление.
- •Язык определения реляционных данных (Data Definition Language, ddl)
Запросы-изменения
SQL позволяет не только извлекать данные по запросам пользователей, но и модифицировать данные:
вносить новые данные;
изменять существующие данные;
удалять данные.
1). Запрос на создание таблицы.
SELECT INTO – создание новой базовой таблицы, а не виртуальной как в случае запроса-выборки.
– определяются поля и записи, которые помещаются в новую таблицу.
Пример: Создать таблицу, содержащую план вылетов в Москву и в Киев с указанием номера рейса, пункта назначения и плановой даты вылета.
Ответ: План вылетов
-
Рейс
Город
Дата
12345
Москва
16.10.19
12345
Москва
17.10.19
12345
Москва
18.10.19
67890
Киев
16.10.19
67890
Киев
18.10.19
89898
Москва
16.10.19
SELECT Рейс.[Номер рейса] AS Рейс, [Пункт назначения] AS Город, [Плановая дата] AS Дата
INTO [План вылетов]
FROM Рейс INNER JOIN Вылет ON Рейс.[Номер рейса] = Вылет.[Номер рейса]
WHERE [Пункт назначения] = ‘Москва’ OR [Пункт назначения] = ‘Киев’
Замечания:
1). В стандарте ANSI запроса на создание таблицы нет.
2). Целью использования запроса на создание таблицы могут являться:
Создание резервной копии таблицы.
Сохранение данных в заданное время для построения отчета на их основе.
Создание таблицы, которую надо экспортировать в другую БД.
Ускорение работы форм и отчетов на основе многотабличного запроса.
2). Запрос на добавление записей.
INSERT INTO – добавление (вставка) в таблицу записей (одной или группы).
– задается, какие записи и в какие поля должны добавляться.
Добавлять записи в таблицу можно, копируя их из другой таблицы.
Пример: Добавить в созданную таблицу «План вылетов» информацию о вылетах в Астрахань с планируемым временем вылета не раньше 10:00.
INSERT INTO [План вылетов] (Рейс, Город, Дата)
SELECT Рейс.[Номер рейса] AS Рейс, [Пункт назначения] AS Город, [Плановая дата] AS Дата
FROM Рейс INNER JOIN Вылет ON Рейс.[Номер рейса] = Вылет.[Номер рейса]
WHERE [Пункт назначения] = ‘Астрахань’ AND [Время вылета] > #10:00#
Замечания:
1). Поля, перечисленные в предложении INSERT INTO должны соответствовать полям в предложении SELECT (хотя бы по типам данных).
2). Добавление записей не производится, если это приведет к нарушению ограничений, заданных в таблице-получателе.
Добавлять записи в таблицу можно, задавая непосредственные значения для добавления с помощью предложения VALUES.
Пример: Добавить в созданную таблицу «План вылетов» информацию о каком-либо вылете.
INSERT INTO [План вылетов] (Рейс, Город, Дата)
VALUES (‘34343’, ‘Львов’, #10/20/19#)
Замечания:
1). Предложение INSERT INTO указывает таблицу, в которую осуществляется вставка, а предложение VALUES – вставляемые значения.
2). Список полей в предложении INSERT INTO может быть опущен. Тогда предложение VALUES должно содержать значение для каждого поля таблицы.
