Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД / Uchpos / Gl_4.doc
Скачиваний:
24
Добавлен:
27.04.2015
Размер:
342.53 Кб
Скачать

Инструкция delete

Создает запрос на удаление записей, предназначенный для удаления записей из одной или нескольких таблиц, перечисленных в предложении FROM, которые удовлетворяют предложению WHERE.

Синтаксис

Delete [таблица.*]

FROM таблица

WHERE условие_отбора

Инструкция DELETE особенно удобна для удаления большого количества записей.

Если применить инструкцию DELETE, удаляются только данные; сохраняются структура таблицы и все остальные ее свойства, такие как атрибуты полей и индексы.

Инструкцию DELETE можно использовать для удаления записей из таблиц, связанных отношением "один-ко-многим" с другими таблицами. Операции каскадного удаления приводят к удалению записей из таблиц, находящихся на стороне отношения "многие", когда в запросе удаляется соответствующая им запись на стороне "один".

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

Нельзя восстановить записи, удаленные с помощью запроса на удаление.

Примеры:

Добавить новую запись в таблицу Товары:

INSERT INTO Товары ( [Код товара], Наименование, Тип, Цена )

VALUES (377, 'Полимер', 25, 35);

Удалить сведения о поставках товаров с датой поставки меньше 1/15/99:

DELETE FROM Поставки

WHERE "Дата"<#1/15/99#;

Увеличить на 25 количество товаров, поставляемых поставщиком с кодом 125 с датой поставки меньше 10/06/99:

UPDATE Поставки

SET [Количество] = [Количество] + 25

WHERE [Код поставщика] = 125

AND Дата > #10/06/99#;

Создать таблицу Товары1, содержащую сведения о товарах, хранящихся в Калининграде:

SELECT [Код товара], Наименование, Тип, Цена

INTO Товары1

FROM Товары

WHERE [Место хранения]="Калининград";

Перекрестные запросы

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

Синтаксис

TRANSFORM статФункция

инструкция

PIVOT поле [IN (значение_1[, значение_2[, ...]])]

где:

статФункция - статистическая функция SQL, обрабатывающая указанные данные;

инструкция - инструкция SELECT;

поле - поле или выражение, которое содержит заголовки столбцов для результирующего набора;

Значение_1, значение_2 - фиксированные значения, используемые при создании заголовков столбцов.

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

Инструкция TRANSFORM является необязательной, однако, если она присутствует, то должна быть первой инструкцией в строке SQL. Она должна находиться впереди инструкции SELECT, которая указывает поля, содержащие заголовки строк, и предложения GROUP BY, которое задает группировку по строкам. При желании можно включить и другие предложения, например, WHERE, для описания дополнительных условий отбора и сортировки. Кроме того, можно использовать подчиненные запросы как предикаты в перекрестном запросе, особенно в предложении WHERE.

Значения, возвращенные аргументом поле, используются в качестве заголовков столбцов в результирующем наборе запроса. Например, продажи по месяцам в перекрестном запросе образуют результирующую таблицу из 12 столбцов. Аргумент поле можно ограничить, чтобы создать заголовки из фиксированных значений (значение_1, значение_2 ), перечисленных в необязательном предложении IN. Кроме того, фиксированные заголовки, которым не соответствуют реальные данные, можно использовать для создания дополнительных столбцов.

Пример:

По каждому коду товара и дате поставки (строки таблицы) определить общее количество поставленного товара всеми поставщиками и каждым поставщиком (столбцы таблицы):

TRANSFORM Sum(Количество) AS [Значение]

SELECT [Код товара], Дата, Sum(Количество) AS [Итого]

FROM Поставки

GROUP BY [Код товара], Дата

PIVOT [Код поставщика];

Результат:

Код товара

Дата

Итого

10

15

123

10.11.99

65

25

40

156

11.11.99

50

50

Соседние файлы в папке Uchpos