Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модели и функции реляционных СУБД.doc
Скачиваний:
1
Добавлен:
13.11.2019
Размер:
173.57 Кб
Скачать

3.6.Типы выражений (расширение пункта 3.1, с. 7)

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

Выражения:

  1. Символьные (выр С) – комбинация имен символьных полей, ПП, элементов массивов, содержащих символьные данные, и функций, возвращающих символьные значения. Часто используются символьные константы (ограничители: [ ],” ”, ‘ ’).

  2. Числовые (выр N) – само число без ограничителей.

3. Логические (выр L) - в них L принимает значение .Т. или .F.

4.Выражения типа даты (выр D) – их можно складывать и вычитать.

Перевод цифровой даты в тип character с помощью функции: DTOC(<выр D>) – Date To Character.

Необходимость перевода даты в символьный тип возникает при индексации или во время запросов (т.к. команды List, Display не работают с полями типа «Dатe»):

DTOC (DATA)=’09/09/01’ – возвращает символьное значение даты.

Перевод символьной даты в цифровой тип с помощью функции:

CTOD (<выр С>) – Character To Date

CTOD (DATA)=(’09/09/01’) – возвращает календарное значение даты.

5.Выражения, использующие различные функции:

5.1.Типа текущего состояния:

  • текущего номера строки: RECNO() (IF RECNO( )>5 THEN GO TOP(идти наверх)).

  • типа числа строк в ТБД: RECCOUNT() (IF RECCOUNT( )=0 THEN APPEND BLANK(вставить пустую строку)).

  • текущей даты: DATE( ).

  • конца файла: EOF( ) - истина, если конец файла.

  • начала файла: BOF( ) - истина, если начало файла.

5.2. Типа принадлежности – определяют принадлежность поля (переменной базы) ТБД к определенному РОПу (конкретной ТБД).

Пример 1:

USE Poshk

? [a.]nomp, [a.]famp && первый РОП можно не писать,

точка определяет принадлежность поля

к данному РОПу. Точка называется

квалифицированной точкой.

Пример 2:

Sele a

Use Poski

Sele b

Use Poshk

? nomp, nomd, b.nomp, b.famp

Выражение принадлежности всегда записывается для той ПБ, которая находится в файле, не относящемся к первому РОПу.

6.Часто употребляемые в выражениях строковые функции:

STR(“<выр N>”, [<длина>], [<десятичный разряд>]) - преобразует числовое выражение в символьную строку. По умолчанию длина равна 10. Если число десятичных разрядов не указано, то число округляется до целого.

Пример 1: n=1275.3765

Str(n,7,2) && Ответ: 1275.38

Пример 2: Str(kolw,4) && Ответ: числовое значение поля kolw во всех записях файла будет заменено на символьное.

  • SUBSTR(<выр C>, <начальная позиция>, <число символов>) – выделяет часть строки (подстроку).

Пример: a=’abcdef’

Substr(a,2,3) && Ответ:bcd

Val(<выр C>) – переводит тип character в numeric.

Val – это сокращение от " VALUE " (значение)

Пример 1: Val(famp) && Ответ: символьное значение поля famp во всех записях файла будет заменено на числовое.

Пример 2: Val(Substr(nomp,2,1)) && Ответ: во всех записях файла функция SUBSTR выделит один символ строки поля nomp, начиная со второго символа этого поля (подстроку), т.е. символьную цифру в номере поставщика, а функция Val переведёт выделенный символ в числовой тип.