- •Лекция 1. Базы данных в системе экономической информации Основные понятия
- •1.1 Роль и место баз данных в системе экономической информации
- •1.2 Базы данных: основные понятия
- •Лекция 2. Предметная область и ее структура
- •2.1 Предметная область: основные понятия
- •2.2 Исчисление типов отношений между типами объектов
- •2.3 Модель «сущность-связь» и ее разновидности. Основы er моделирования
- •2.4 Структурирование предметной области с позиций функций и задач управления
- •2.5 Матрица отношений между типами объектов
- •Лекция 3. Реляционные базы данных
- •3.1 Отношения реляционных баз данных и свойства
- •3.2 Достоинства и недостатки реляционных баз данных
- •3.3 Элементы реляционной алгебры, реляционного исчисления и трехзначной логики
- •Естественное соединение
- •Правила трехзначной логики
- •Лекция 4. Нормализация таблиц реляционных баз данных
- •4.1 Принципы нормализации
- •4.2 Нормальные формы
- •Лекция 5. Проектирование и создание запросов. Структурированный язык запросов (sql).
- •5.1 Понятие запроса
- •5.2 Соединение таблиц в запросах
- •5.3 Соединение трех и более таблиц
- •5.4 Запрос на выборку
- •5.5 Запрос на выборку с группировкой
- •5.6 Перекрестный запрос
- •5.7 Перекрестный запрос с составным заголовком строк
- •5.8 Запрос на обновление
- •5.9 Запрос на удаление
- •5.10 Запрос на добавление
- •5.11 Логически выраженные команды sql
- •Лекция 6. Microsoft Access как объективно-ориентированная система
- •6.1 Понятие события.
- •6.2 Понятие объектов, их свойств и методов
- •Лекция 7. Современные тенденции развития бд
- •7.2 Основные концепции объектно-ориентированного подхода
5.7 Перекрестный запрос с составным заголовком строк
Структура перекрестного запроса может быть и чуть более сложной, чем в уже рассмотренных примерах. В запрос могут включаться несколько полей, являющихся заголовками строк, а в состав столбцов может быть включено поле, обобщающее итоги по остальным столбцам, причем обобщение подразумевает необязательно суммирование, использоваться может любая агрегатная функция. Запрос может выглядеть, например, следующим образом:
Код поставщика |
Поставщик |
Итого |
001 |
002 |
003 |
… |
|
|
|
|
|
|
|
5.8 Запрос на обновление
Синтаксис команды запроса на обновление имеет следующий вид:
Update <имя таблицы>
Set < имя поля 1> = <выражение 1>
[,<имя поля 2> = < выражение 2>]
[, … ]
[Where <условие отбора>]
В описании команды запроса на обновление используются метасимволы, которыми являются < >, [ ], … . При написании реального запроса на языке SQL они должны быть заменены по смыслу на что-то еще. Конструкция [, … ] означает и так далее.
Приведем пример запроса на обновление. Предположим, что цены выросли на 10% . Чтобы отразить изменение цен в таблице Товар необходимо написать следующую команду на языке SQL:
Update Товар
Set Цена = Цена*1,1
Если цены выросли не на все товары, то может быть задано условие отбора, например, цены выросли на товары 002 и 004.
Update Товар
Set Цена = Цена*1,1
Where КодТов In (“002”,”004”)
Вместо физической таблицы в запросе на обновление может использоваться другой ранее созданный запрос. При этом необходимо, чтобы запрос был обновляемым. Запрос, включающий несколько таблиц, будет обновляемым, если он создан с использованием внутреннего соединения таблиц (Inner join) и было установлено требование ссылочной целостности. При создании запроса на обновление возможны каскадные обновления, то есть при изменении данных в родительской таблице автоматически будут обновляться данные в дочерней. В Microsoft Access разрешение функции каскадного обновления устанавливается на схеме данных.
5.9 Запрос на удаление
Синтаксис команды запроса на удаление имеет следующий вид:
Delete [<имя таблицы >.*]
From <связка таблиц>
Where <условие отбора>
Имя таблицы, из которой удаляются записи, должно входить в связку таблиц.
Чтобы из таблицы Поставка удалить записи, дата поставки которых раньше 01.01.2004, будет использоваться следующая команда:
Delete Поставка.*
From Поставка
Where ДатаПост<=#01.01.04#
При создании запроса на удаление может быть установлена опция каскадного удаления. При каскадном удалении, если удаляется запись из родительской таблицы, автоматически удаляются все соответствующие ей записи в дочерних таблицах.
5.10 Запрос на добавление
Запрос на добавление позволяет вставить в физическую таблицу одну или несколько записей. Синтаксис команды запроса на добавление имеет следующий вид:
Insert into <имя таблицы>
<запрос на выборку>.
Допустим, что из таблицы поставка требуется выбрать записи с датой поставок раньше 01.01.2004 и сохранить их в таблице ПоставкаАрхив. Для этого необходимо написать следующую команду на языке SQL:
Insert into ПоставкаАрхив
Select *
From Поставка
Where ДатаПост<=#31.12.03#
Символ * означает, что из таблицы Поставка будут взяты все поля. Если необходимо выбрать только некоторые поля, они должны быть перечислены в команде Select.
Команды Insert into и Delete часто используются в паре для закрытия месяца или года в бухгалтерском учете. Для того чтобы провести реформа
таблицы поставок сначала необходимо воспользоваться командой Insert into и сохранить все записи, относящиеся к предыдущему отчетному периоду, в архивную таблицу и затем удалить эти записи из исходной таблицы при помощи команды Delete.