Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы Данных

.pdf
Скачиваний:
162
Добавлен:
04.06.2015
Размер:
5.09 Mб
Скачать

Каждая часть идентификатора заключается в квадратные скобки, а затем объединяются с другими частями с помощью символов «!» и «.». Символ «!» означает, что следующий за ним объект, является частью объекта, имя которого предшествует этому символу. Точкой отделяется свойство объекта от имени объекта.

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

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

ФУНКЦИИ

Функция – это процедура, которая может быть вызвана в выражении. СУБД Access обладает богатым арсеналом встроенных функций. Их список можно найти в окне Построитель выражений. Общая форма вызова функции выглядит так:

ИмяФункции (1-й аргумент; 2-й аргумент; …; n-й аргумент)

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

230

 

Таблица П.1.1

 

 

Назначение

Синтаксис

 

 

Текущая сис-

Date ()

темная дата

Не имеет аргументов. Возвращает текущую системную дату

 

 

Текущая сис-

Now ()

темная дата и

Не имеет аргументов. Возвращает значение типа Дата/время

время

 

 

 

Извлечение

DatePart (Интервал; Дата)

части даты

Интервал – строка, определяющая интервал времени, который следу-

 

ет вернуть: "yyyy" – год; "q"– квартал; "m"– месяц; "d"– день; "w"

 

день недели; "h"– час; "n"– минута; "s"– секунда. Дата – значение

 

типа Дата/время, из которого нужно извлечь заданный интервал.

 

Может быть задано выражением

 

 

Разность дат

DateDiff (Интервал; Дата1; Дата2)

 

Интервал – строка, определяющая интервал времени. Обозначения

 

интервалов см. DatePart. Дата1, Дата2 – два значения типа Да-

 

та/время, используемые для подсчета разности (Дата2 – Дата1).

 

Функция предназначена для определения числа интервалов, напри-

 

мер, дней или недель, между двумя датами

 

 

Прибавление

DateAdd (Интервал; Число; Дата)

к дате

Интервал – строка, определяющая интервал времени. Обозначения

указанного

интервалов см. DatePart. Число – количество интервалов, которое не-

интервала

обходимо добавить. Дата – значение типа Дата/время, к которому

времени

надо добавить

 

 

Извлечение

Year (Дата)

конкретной

Month (Дата)

части даты

Day (Дата)

(года, месяца,

Дата – значение типа Дата/время, из которого нужно извлечь за-

дня)

данный интервал. Может быть задано выражением

 

 

Если

IIf (Выражение; ЕслиИстина; ЕслиЛожь)

 

Возврат одного из двух значений (ЕслиИстина или ЕслиЛожь) в за-

 

висимости от истинности или ложности результата вычисления вы-

 

ражения. Аргументы ЕслиИстина, ЕслиЛожь могут быть представ-

 

лены выражениями

 

 

231

 

Продолжение табл. П.1.1

 

 

 

Синтаксис

 

 

Извлечение

Mid (Строка; Начало; Длина)

подстроки

Строка – значение типа Текстовый или Поле MEMO, из которого

указанной

возвращается подстрока. Может быть задано константой, идентифи-

длины

катором поля или в общем случае выражением. Начало – номер по-

 

зиции, с которой начинается извлечение символов. Длина – количе-

 

ство возвращаемых символов. Если длина не задана, то возвращают-

 

ся все символы с заданной позиции до конца строки

 

 

Длина строки

Len (Строка)

 

Строка – значение типа Текстовый или Поле MEMO, в котором

 

подсчитывается число символов. Может быть задано выражением

 

 

Подсчет числа

Count (Поле)

записей

Поле – имя поля, количество значений которого требуется подсчи-

 

тать. Функция не учитывает записи, имеющие значение Null в ука-

 

занном поле.

 

Count (*)

 

Если в качестве аргумента выступает подстановочный знак «*», то

 

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

 

щие поля со значением Null.

 

Вариант Count (*) работает быстрее, чем Count (Поле)

 

 

Сумма

Sum (Поле)

значений

Поле – имя поля, значения которого требуется просуммировать.

 

Функция игнорирует записи, имеющие значение Null в указанном

 

поле

 

 

Абсолютное

Abs (Выражение)

значение

Выражение – выражение, принимающее значения типа Числовой

 

или Денежный. Возвращает абсолютное значение выражения

 

 

232

КОНСТАНТЫ И ЛИТЕРАЛЫ

Константа – это известное, не изменяющееся значение, которое может быть использовано в выражении. В Access существуют четыре часто применяемые константы:

True – соответствует логическому значению Истина;

False – соответствует логическому значению Ложь;

Null – определяет неизвестное значение;

"" – пустая строка.

В выражения можно также применять литералы, например, такие как строка "Ошибка ввода" или число 256. Текстовые литералы необходимо заключать в прямые кавычки. Числовым литералом может быть набор цифр, включая знак числа и десятичный разделитель. Константы и литералы применяются в качестве аргументов функций и операндов операций.

ОПЕРАТОРЫ

Оператор – это слово или знак, обозначающий определенную арифметическую, логическую операцию или операцию сравнения. Операндами в них выступают выражения. Различные типы основных операторов Access представлены в табл. П.1.2. Арифметические операторы употребляются для организации вычислений. Применяются к значениям типа Числовой, Денежный, Счетчик. Допускается также использование операций суммирования и разности для данных типа Дата/время. Операторы сравнения направлены на сопоставление двух заданных значений и возвращения результата в виде значений типа True/False или Null (неизвестное значение). Если одно из сравниваемых значений имеет значение Null, то результат также будет Null (результат сопоставления с неизвестным значением также неизвестен). Логические операторы предназначены для построения логических выражений. Операторы слияния используются для объединения двух текстовых значений в одну строку. Назначение специальных операторов указано в табл. П.1.2. Порядок выполнения операций в выражении задается с помощью круглых скобок.

233

 

 

Таблица П.1.2

 

 

 

Тип операторов

Оператор

Назначение

 

 

 

Арифметические

+

Сумма двух чисел

 

 

 

 

 

Разность двух чисел или смена знака числа

 

 

 

 

 

Произведение двух чисел

 

 

 

 

/

Деление первого числа на второе

 

 

 

 

Mod

Деление первого целого числа на второе целое

 

 

число и возвращение остатка

 

 

 

 

^

Возведение в степень указанного числа

 

 

 

Сравнения

 

Больше чем

 

 

 

 

 

Меньше чем

 

 

 

 

 

Больше или равно

 

 

 

 

 

Меньше или равно

 

 

 

 

=

Равно

 

 

 

 

 

Не равно

 

 

 

Логические

And

Логическое И

 

 

 

 

Or

Логическое Или

 

 

 

 

Not

Отрицание

 

 

 

Объединение

& или +

Конкатенация – объединение двух строк в одну

строк

 

 

 

 

 

Специальные

Is Null

Определяет, является ли операнд значением

 

 

Null

 

 

 

 

Like"Шаблон"

Сопоставляет текстовые значения с указанным

 

 

шаблоном

 

 

 

 

BetweenAnd

Определяет, лежит ли числовое значение или

 

 

значение даты в указанном диапазоне

 

 

 

 

In (C1; …; Cn)

Определяет, равно ли некоторое значение како-

 

 

му-либо значению из указанного списка

 

 

 

234

ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ

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

строитель выражений вызывается командой Построитель, находящейся на вкладке Конструктор, командой Построить контекстного меню и кнопкой «…».

Окно Построителя выражений имеет три области:

область записи выражения;

кнопки наиболее распространенных арифметических, логических операторов и операторов сравнения;

компоненты выражения, отображаемые в виде трех столбцов в нижней области окна.

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

Во втором столбце отображаются составляющие объекта, выбранного из папки. Например, при выборе в первом столбце таблицы, во втором столбце появится список имен полей этой таблицы.

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

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

235

риложение 2. ППРОСТЕЙШИЕ

SQL-ЗАПРОСЫ В ACCESS

КРАТКАЯ ХАРАКТЕРИСТИКА ЯЗЫКА SQL

Язык SQL относится к классу непроцедурных языков программирования. SQL является полным языком в том смысле, что в нем присутствуют все необходимые для работы с базами данных языковые компоненты:

язык описания данных, ЯОД (Data Definition Language, DDL).

Предназначен для определения объектов базы данных;

язык манипулирования данными, ЯМД (Data Manipulation Language,

DML). Ориентирован на описание запросов к базе данных.

Это не два различных языка, а две компоненты единого языка SQL. В версии SQL для Microsoft Office Access 2007 в основном задействована вторая компонента, поскольку создание базы данных осуществляется непосредственно инструментальными средствами Access.

ИСПОЛЬЗУЕМЫЕ ОБОЗНАЧЕНИЯ

Для описания синтаксиса операторов SQL применяются традиционные для языков программирования соглашения:

ключевые (зарезервированные) слова записываются прописными буквами;

вертикальная черта « » указывает на необходимость выбора одного из нескольких значений;

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

236

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

ОСНОВНЫЕ ОПЕРАТОРЫ МАНИПУЛИРОВАНИЯ ДАННЫМИ

Операторы манипулирования данными предназначены для заполнения и редактирования базовых таблиц, выборки информации из базы данных с целью получения новых таблиц. Перечень наиболее распространенных операторов манипулирования данными языка SQL представлен в табл. П.2.1. С полным набором языковых средств SQL можно ознакомиться в справочной системе Access.

 

Таблица П.2.1

 

 

Оператор

Выполняемые действия

 

 

DELETE

Удаление из таблицы одной или несколько записей

 

 

INSERT

Вставка в таблицу одной записи

 

 

UPDATE

Обновление в таблице значений одного или нескольких полей в од-

 

ной или нескольких записях

 

 

SELECT

Соединение таблиц с последующим выбором из результата соедине-

 

ния полей и записей. Соответствует операциям соединения, проек-

 

ции и селекции реляционной алгебры

 

 

TRANSFORM

Создание перекрестного запроса

 

 

Операторы DELETE, INSERT, UPDATE по большому счету нарушают реляционность языка SQL, т.к. манипулируют не таблицами в целом, а их элементами (записями и полями). Однако их наличие в данном языке диктуется прагматическими соображениями.

237

ОПЕРАТОР SELECT

Знакомство с языком SQL принято начинать с SELECT как самого мощного и наиболее часто используемого оператора. Данный оператор предназначен для записи запросов к базе данных. Он позволяет реализовывать многотабличные запросы вида «проекция-селекция-соединение». В этих запросах вначале несколько таблиц соединяются в одну, затем из результирующей таблицы выбираются необходимые поля и далее записи, удовлетворяющие заданным условиям.

Примечание. Один и тот же запрос может быть задан различными способами, которые могут существенно отличаться по времени выполнения. Оптимальную запись запросов диктуют законы реляционной алгебры. Эти законы регламентируют порядок выполнения операций соединения, проекции и селекции по отношению друг к другу и составляют теоретическую основу программных оптимизаторов запросов [4, 14, 18].

Синтаксис оператора SELECT:

SELECT [ALL DISTINCT] {* [Список отображаемых полей]} FROM Список соединяемых таблиц

[WHERE Условие отбора записей] [GROUP BY Список полей для группы] [HAVING Условие для группы]

[ORDER BY Список полей, определяющих порядок сортировки записей];

В квадратных скобках приведены фразы (предложения), которые могут отсутствовать. Обязательными словами являются только ключевые слова SELECT и FROM. Текст предложения оператора завершается точкой с запятой. Указанный порядок следования фраз в SELECT не может быть изменен, но не все фразы являются обязательными. Смысл каждой из фраз задан в табл. П.2.2.

238

 

Таблица П.2.2

 

 

Оператор

Назначение

 

 

ALL

Означает, что в результирующую таблицу включаются все записи,

(по умолча-

удовлетворяющие заданным условиям, хотя это может привести к по-

нию)

явлению записей-дубликатов

 

 

DISTINCT

Устраняет записи-дубликаты в результирующей таблице

 

 

*

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

 

ной таблицы.

 

Альтернативой этому является задание списка полей. Имена полей

 

перечисляются через запятую. Если поля берутся из разных таблиц, то

 

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

 

ся имена таблиц

 

 

FROM

Задает источник записей запроса – перечень разделенных запятыми

 

имен таблиц, на основе которых формируется запрос

 

 

WHERE

Определяет условие отбора записей. В условиях отбора могут быть

 

использованы все поля из источника записей кроме агрегированных

 

полей – полей, по которым осуществляется группировка и к которым

 

применяются статистические функции

 

 

GROUP BY

Назначает список полей группы

 

 

HAVING

Задает условия, накладываемые на агрегированные поля

 

 

ORDER BY

Определяет список полей упорядочения результирующей таблицы

 

 

Допустимо включение в список отображаемых полей вычисляемого поля. В этом случае элемент списка полей выглядит так:

Выражение AS Имя вычисляемого поля

Фраза FROM для запроса, извлекающего данные только из одной таблицы, имеет вид:

FROM Таблица;

239