Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_лекции_Саладаев.doc
Скачиваний:
55
Добавлен:
03.05.2015
Размер:
15.75 Mб
Скачать

Создание итогов в подчиненных формах.

Итоговые поля создаются дополнительно в примечании подчиненной формы. Для табличной или ленточной формы- это будет сумма обработанных записей.

Свойство «Данные» = Sum[Total]- значение суммирования всех значений поля «Total»

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

[

отобразится.

Forms]![Имя главной формы]![Имя починенной формы].[Form]![TotalSum]

13.6.Язык sql

SQL(произносится “SEQUEL”)- структурированный язык запросов (StructuredQueryLanguage).

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

Прообраз SQLвозник в 1970 году в одной из лабораторийIBM(Санта-Тереза (проектSystem/R)) как средство запроса к реляционной БД. На настоящее времяSQLстал фактически стандартом и его популярность настолько велика, что разработчики не реляционных СУБД (например,Adobes), снабжают свои системыSQL- интерфейсом.

Кроме defactoSQLимеет официальный стандартANCI/ISO(AmericanNationalStandartsInstitute/InternationalStandartsOrganization), что выводит его в ранг международного стандарта.

Настоящая тенденция заключается в том, что многие реальные СУБД расширяют возможности за рамки ANCIи тогда «хорошие» черты вновь становятся «рыночным» стандартом и повторяются другими.

SQLизначально не являлся языком программирования, поскольку на нем пишутся не программы, азапросы к БД. Т.е.SQL- декларативный язык. Это означает, что с его помощью можно сформулировать ЧТО необходимо получить, но нельзя указать КАК это сделать. Операторы типаif,for,do,whileи т.п. – отсутствуют.

Для получения общих представлений об SQLрассмотрим ряд простых примеров и синтаксис необходимый для их понимания.

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

SELECT

Выбрать

Вбрать данные из БД

INSERT

Добавить

Добавить данные в БД

UPDATE

Обновить

Обновить данные в БД

DELETE

Удалить

Удалить данные из БД

GRANT

Разрешить

Предоставить привилегию пользователю

REVOKE

Отменить

Отменить привилегию пользователя

COMMIT

ЗАФИКСИРОВАТЬ

Зафиксировать текущую транзакцию

ROLLBACK

ПРЕРВАТЬ

Прервать текущую транзакцию

В командах участвуют имена, идентифицирующие объекты БД. Например, имя таблицы (Деталь), имя столбца (Название). Имена могут быть сложными, в которых перед именем столбца, через разделитель ‘.’ следует имя таблицы (Деталь. Все).

Пример 1

Запрос: «определить количество деталей на складе, для всех типов деталей»

SELECTНазвание, КоличествоFROMДеталь;

(Выбрать) (Из).

Результат: таблица со столбцами:

Название

Количество

Это вертикальная проекция.

Пример 2

Запрос: «какие детали, из стали, хранятся на складе?»

SELECT *FROMДетальWHEREМатериал = «Сталь»;

(где)

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

Пример 3

Запрос: «определить название и количество деталей на складе, изготовленных из пластмассы и весящих меньше 5 кг».

SELECTНазвание, КоличествоFROMДеталь

WHEREМатериал = «Пластмасса»

ANDВес < 5;

Результат- таблица из 2 столбцов «Название» и «Количество». Сначала- горизонтальная проекция, затем- вертикальная.

Пример 4

SELECTНазвание, Количество, Материал

FROMДеталь

WHEREНомер = «Т145-А8»;

Если в таблице «Деталь» не существует индекса по полю «Номер», то запрос будет выполняться долго из-за прямого перебора.

Индекс можно создать командой CREATEINDEX

CREATE UNIQUE INDEX Индекс детали

ON Деталь (Номер);

Создается индекс с именем «Индекс детали» по столбцу «Номер» таблицы «Деталь».

Чаще всего для пользователя СУБД представляют интерес не отдельные команды SQL (иногда используется термин для всей строки; до ‘;’- Statement(продолжение, фраза)), а некоторая их последовательность. Каждая такая последовательностьStatementsреализует некую законченную операцию в терминах предметной области. Например, банковскую операцию (перевод некоторой суммы с краткосрочного счета на долгосрочный в несколько шагов (снятие со счета, зачисление на счет)).

Если в процессе выполнения этой многошаговой операции произойдет сбой, когда первая часть (снятие) будет выполнена, а вторая- нет, то деньги будут потеряны. Следовательно, любое многошаговое действие над БД должно быть выполнено целиком, или не выполняться вовсе. Такое действие получило название транзакция.

Обработка транзакций опирается на журнал транзакций. В него заносится информация о каждой транзакции и она используется для ОТКАТА транзакций и восстановления состояния БД.