ВЫРАЖЕНИЯ, ОПЕРАТОРЫ И ФУНКЦИИ В ЗАПРОСАХ

СОЗДАНИЕ ЗАПРОСОВ

Способы создания запросов:

1. Конструктор;

2. Мастер;

3. Режим SQL.

В режиме конструктора для создания запросов нужно указать следующие параметры:

Поле   Имя поля таблицы, запроса, данные из которого будут располагаться в этом столбце.  
Таблица   Имя таблицы или запроса, которому принадлежит дан­ное поле.  
Сортировка   Способ вывода записей в данном столбце. Возможен вывод: по алфавиту (по возрастанию), по убыванию или отсутствует.  
Вывод на экран   Определяет, будут ли значения этого поля выводиться на экран при выполнении запроса. Тип - логическое поле (имеет вид переключателя).  
Условие отбора   Здесь в нескольких строках задаются условия отбора (ограничения на вывод информации) в данном поле.
Групповая операция Используется в перекрёстных и итоговых запросах, позволяет обработать значения данного поля при помощи определенной функции.

При задании условий отбора необходимо соблюдать правила:

1. Перед вводимым значением текстового поля должен стоять знак =.

2. Вводимая строка символов должна заключаться в кавычки.

В строке "Условие отбора" можно задавать несколько ус­ловий, соединенных союзами and и оr.

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

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

При составлении выражений надо помнить несколько простых правил:

1) выражение всегда имеет логический тип, то есть его значение должно при­нимать либо Да (Истина), либо Нет (Ложь);

2) существуют некоторые требования к синтаксису выражения: а) символьные константы заключаются в кавычки, константы типа дата заключаются в #; б) имя объекта базы данных отделяется от имени поля вос­клицательным знаком, причем имена заключаются в квадратные скобки На­пример, можно прочесть следующее условие [Студенты]![Фамилия]="Андреев" как значение поля "Фамилия" таблицы "Студенты" должно быть "Андреев", проще говоря, показать данные о сту­денте Андрееве; .

3) в бланке запроса обычно часть выражения, содержащая имя поля, опуска­ется тогда, когда это выражение задастся в той же колонке. Знак равенства также не пишется, он понимается по умолчанию. Например, условие отбора [Группа]=103 может быть записано в строке "Условия отбора" столбца "Группа" как числовая константа, то есть число 103.

В Access используются следующие операторы: арифметические, присваи­вания и сравнения, логические, идентификации, конкатенации и другие опе­раторы.

В таблице приведен список арифметические, присваивания и сравнения, логические операторов.

Знаки арифметических операций Знаки операций сравнения Логические операции
+ сложение > больше And логическое И
- вычитание < меньше Or логическое ИЛИ
* умножение = равенство (присвоение) Not логическое отрицание НЕ
/ деление >= больше или равно Xor исключающее ИЛИ
^ возведение в степень <= меньше или равно  
\ целочисленное деление <> не равно  

 

В строке "Условие отбора" возможно использование конкатенации значе­ний символьных типов (&), а также следующие операторы, которые упроща­ют создание выражений для выборки записей в запросах;

Is - при использовании вместе с Null определяет, является ли значение Null или Not Null, например. Is Null означает значение поля пусто.

BETWEEN AND - позволяет задать диапазон значений. Например, усло­вие >= 10 and <=20 можно записать так BETWEEN 10 and 20

IN - позволяет задать используемый для сравнения список значений. На­пример, выражение ''хлеб"' ог '"вода" ог "земля" можно записать так IN("хлеб","вода","земля").

LIKE - используется для организации поиска по шаблону. В шаблоне можно использовать следующие символы:

Символ Шаблон обозначает Условие Access найдёт…
* Произвольное количество алфавитно-цифровых символов в произвольном месте LIKE “*Мар*” Ул. 8 Марта, 45-23; ул. Маршака, 180а-1; Мартин
? Любой одиночный алфавитно-цифровой символ в произвольном месте значения LIKE“м?р”, “Т??я” МУР, мир, мор, мер, Толя, Таня, Тоня, То1я, Тося, Тася
# Любая одиночная цифра в произвольном месте значения LIKE “23#45”, LIKE“52-5#-4#” 23545, 23145, 23745, 23945 52-55-45? 52-59-41
[ ] Любой из перечисленных в скобках символ LIKE “З[оаи]лин” Зозулин, Зазулин, Зизулин. НО не найдёт Зезулин, Зузулин.
! Любой один символ, кроме, указанных в скобках LIKE “ко[!рс]а” Коза, кола, кома. НО не найдёт кора, коса.
- Любого одиночного символа из указанного интервала LIKE “ко[к-м]а” Кола, кома

Рассмотрим следующий пример. Пусть нам необходимо найти все научные работы, выполненные студентами вуза, по теме "Базы данных". Ситуация ос­ложняется тем, что мы не можем точно знать как сформулированы темы этих работ. С уверенностью можно сказать только, что в названии работы есть словосочетания "база данных", "базы данных" или "базами данных" или "баз данных" или же сокращения от этих слои - "БД". Если задать две маски "*баз* данных*" or "*БД*" для поиска в ноле "Название работы" (таблица "Научные работы Студентов"), получим список всех работ, в названии кото­рых входят эти слова независимо от того, стоят ли они в начале, в конце или середине названия работы.

В Access определено около 140 различных функций. Все функции можно сгруппировать по назначению: функции даты и времени; текстовые функции, функции преобразования типов данных; математические и тригонометриче­ские функции; финансовые функции и другие

Рассмотрим математические и тригонометрические функции:

Аbs(<число>) Возвращает абсолютное значение указанного числа.

Аtn(<число>) Возвращает арктангенс числа (в радианах).

Соs(<число>) Возвращает косинус угла (в радианах).

Ехр(<число>) Возвращает результат возведения числа е (основание натуральных логарифмов) в указанную степень.

Int(<число>) Fiх(<число>) Возвращают целую часть числа. Обе функции Int() и Fi.xQ отбрасывают дробную часть числа и возвращают целое значение. Различие между функциями JntQ и Fi\-() состоит в том, что для отрицательного значения аргумента число функция Int() возвращает ближайшее отрицательное целое число, ; меньшее либо равное указанному, a Fix() - ближайшее отрицательное целое число, большее либо равное указанному. На- : пример, Int{-8.4)=-9, a Fix(-8.4) =-8.

Log(<число>) Возвращает натуральный логарифм числа.

Rnd[(<число>)] Возвращает случайное число.

Sgn(<число>) Возвращает значение, соответствующее знаку числа. Если число больше нуля, то возвращает 1, если равно нулю, то 0, меньше нуля -1

Sqr(<Hoio>) Возвращает квадратный корень указанного числа.

Тап(<число>) Возвращает тангенс угла (в радианах).

Рассмотрим некоторые функции по обработке значений типа дата.

Date( ) Возвращает текущее системное время и дату

Date$() Возвращает как дату и как строку.

DateAdd (<интepвaл>;<количество>;<Дата2>) Возвращает дату, полученную добавлением к заданной дате числа интервалов.

DateDiff(<интервал>;<Дата1>;<Дата2>)озвращает интервал времени между указанными датами.

DatePert (<интервал>;<Дата>) Возвращает заданную часть даты.

Month(<Дата >); Определяет номер месяца (1 до 12) в дате.

Day(<Дата>); Определяет день (от 1 до 31) в дате.

Now() Возвращает дату и время системных часов компьютера.

Year(<Дата>); Определяет номер года (от 100 до 9999) в дате.

Рассмотрим некоторые функции по обработке текстовых данных:

Аsс(<строка>) Возвращает код символа для первого символа строки.

Сhг(<кодСимвола>) Возвращает символ, соответствующий указанному коду символа.

Str(<число>) Возвращает строковое представление числа.

Format (выражение[,формат[,…]]); Создание специальных строковых форматов. Возвращает значение, содержащее выражение, отформатированное согласно инструкциям, заданным в описании формата. Действуют все символы формата, рассмотренные в пункте свойство "Формат поля".

InStr([<позиция>, ]<строка1>, <строка2>[, способ сравнения]) Возвращает значение, указывающее позицию первого вхождения одной строки внутри дру­гой строки.

LCase(<cтpoкa>) Возвращает строку, преобразованную к ниж­нему регистру.

Left(<строка>, <количество>) Возвращает строку, содержащую указанное число первых символов строки.

Len(<строка>| <имяПеременной>) Возвращает значение, содержащее число сим­волов в строке или число байт, необходимое для размещения переменной.

Возвращают строку, содержащую копию стро­ки, из которой удалены пробелы, находившие­ся в начале строки (LTrim), в конце строки (RTrim) или в начале и конце строки (Trim).  
LТrim(<строка>) RTrim(<строка>) Trim(<строка>)

 

Mid((<строкa>, <начпоз>[, <количество>]) Возвращает строку, содержащую указанное число символов строки с начальной позиции.

Right(<строкa>, <количество>) Возвращает строку, содержащую указанное; число последних символов строки.

Sрасе(<число>)Возвращает строку, содержащую указанное число пробелов.

String(<число>, <символ>) Возвращает строку, содержащую повторяющуюся строку указанной длины.

UCase(<строка>) Возвращает строку, преобразованную к верхнему регистру.

Vа1(<строка>) Возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа.

Функция iif(<выражение>, <выражение1>, <выражение2>) возвращает значение <выражение1>, если значение <выражение> равно True, и возвра­щает значение <выражение2>, если значение <выражение> равно False.

Функция Choose (<индекс>, <вариант1>, [<вариант2>,[<вариант n>]]) воз­вращает значение, соответствующее заданному положению в списке значе­ний.