Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Для Белаш / Лекции / 5 - Языки манипулирования реляционными данными.doc
Скачиваний:
0
Добавлен:
07.08.2024
Размер:
273.41 Кб
Скачать

3). Запрос на обновление.

UPDATE – обновление (изменение) значений полей в записях (одной или группе).

Пример: Увеличить на 10% все цены на билеты для вылетов, плановая дата которых позже 18.10.19.

UPDATE Пассажир SET [Цена билета] = [Цена билета] *1,1

WHERE [Дата вылета] > #10/18/19#

Пример: Поменять для московских вылетов плановую дату с 16.10.19 на 16.11.19.

           UPDATE Рейс  INNER JOIN  Вылет  ON  Рейс.[Номер рейса] = Вылет.[Номер рейса]                            SET [Плановая дата] = #11/16/19#                  WHERE [Плановая дата] = #10/16/19#  AND [Пункт назначения] = ‘Москва’

Замечания:

1). Предложение UPDATE указывает таблицу, в которой выполняется изменение, а предложение SET указывает имя столбца, в котором требуется изменить значение, и новое значение или способ его вычисления.

2). С помощью запроса UPDATE можно выполнять массовые обновления, что дает огромную власть, которая при правильном использовании позволяет быстро выполнить насущную задачу. Но если распорядиться этой возможностью неверно, то можно получить серьезные проблемы.

4). Запрос на удаление.

DELETE – удаление записей (одной или группы).

Пример: Удалить из новой таблицы «План вылетов» информацию о вылетах в Астрахань.

SELECT *

FROM [План вылетов]

WHERE Город = ‘Астрахань’

Пример: Удалить из таблицы «Вылет» информацию о вылетах в Киев.

SELECT Вылет.*

FROM Рейс INNER JOIN Вылет ON Рейс.[Номер рейса] = Вылет.[Номер рейса]

WHERE [Пункт назначения] = ‘Киев’

Замечания:

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

2). Если между таблицами установлено каскадное удаление, то достаточно построить запрос на удаление для таблицы со стороны 1 в связи 1:М.

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

Язык определения реляционных данных (Data Definition Language, ddl)

Язык SQL имеет особый раздел DDL, позволяющий определять структуру БД, ее поля, индексы, ключи, ограничения.

Несмотря на то, что практически во всех СУБД имеется графический интерфейс для создания структуры таблицы (например, в Access – Конструктор таблиц), все они в итоге формируют запросы DDL.

Типы запросов DDL:

  • CREATE TABLE – создание новой таблицы.

  • ALTER TABLE – изменение структуры существующей таблицы.

  • DROP TABLE – удаление таблицы.

  • CREATE INDEX – создание нового индекса для таблицы.

  • DROP INDEX – удаление индекса таблицы.

Пример: Создать таблицу с двумя текстовыми полями, одним полем дата/время и числовым полем, которое определить как ключ. Сформировать в таблице уникальный индекс.

CREATE TABLE [Новая таблица] ([Фамилия] TEXT, [Имя] TEXT, [Дата рождения] DATETIME,

[Табельный номер] INTEGER CONSTRAINT ключ PRIMARYKEY,

CONSTRAINT индекс1 UNIQUE ([Фамилия], [Имя]))