2.3.3. Командный язык СУБД

К оглавлению1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 

 

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

В состав элементов командного языка входят команды, SET-команды, функции, переменные и массивы.

Команда записывается в виде строки слов, в которую входит глагол - основное слово, определяющее содержание операции, выполняемой командой, список выражений и ключевые слова с аргументами. Структура командной строки называется синтаксисом команды. Многие команды обработки файлов строятся по следующей форме:

 

<глагол> [<список выражений:»] [<границы>]

[FOR<условие>] [WHILE<\условие>]

[ТО FILE <имя файла> /TO PRINTER

/TО ARRAY <имя массива>

/ТО <переменные>

[ALL [LIKE/EXCEPT <шаблон>]] [IN <алиас>]

 

Квадратные скобки означают использование заключенных в них элементов синтаксиса по выбору. В угловых скобках, следующих после ключевого слова, записываются его аргументы. Косая черта, наклоненная влево (/), обозначает, что может быть записано только одно из разделенных этим знаком ключевых слов. Угловые, квадратные скобки и косая черта в записи команды для ее выполнения не указываются и служат только для пояснения синтаксиса.

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

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

Границы в приведенном выше синтаксисе команды указывают те записи файла БД, которые будут доступны при его обработке. В качестве ключевых слов границ могут быть: RECORD <n> - доступна только одна запись с заданным номером; NEXT <n> - доступны все записи, начиная с номера n; ALL - доступны все записи файла БД; REST - доступны записи, начиная с текущей до конца файла.

Опции FOR и WHILE определяют условия отбора записей для обработки. Эти опции имеют приоритет перед границами при определении доступа к записям. Опция FOR определяет доступ к обработке, начиная с первой записи и до конца файла БД, a WHILE - начиная с текущей записи и до тех пор, пока условие имеет логическое значение «Истина» (True или .Т.).

Опция ТО управляет выводом информации, обработанной командой. В ряде команд выходной поток можно направить в файл на диске, на принтер, в массив (или переменную).

Опция ALL LIKE позволяет отобрать или, наоборот, исключить среди имен файлов, полей файлов БД и переменных те, которые соответствуют заданному шаблону.

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

 

SET <параметр> ТО <выражение> и

SET <параметр> ON/OFF

 

Первая форма устанавливает значение параметра, а вторая включает (ON) или выключает (OFF) его действие, т.е. устанавливает состояние. Эти команды можно выполнять в программах, в командном режиме, можно также занести их в специальный файл с именем Config.db, определяющий параметры среды на весь сеанс работы с пакетом dBASE.

Создание файла БД осуществляется командой CREATE <имя файла>. Для модификации созданной структуры файла используется команда MODIFY STRUCTURE.

Для открытия файла БД используется команда

 

USE       [<имя файла БД>/?] [IN <номер рабочей области>]

[INDEX <список .ndx и .mdx файлов>]

[ORDER [TAG] <имя .ndx файла>/<указатель .mdx файла>

[OF <имя .mdx файла>]]

[ALIAS<aлиac>] [EXCLUSIVE] [NOUPDATE],

 

которая открывает существующий файл БД и связанные с ним файлы .mdx и .ndx в текущей рабочей области.

Для создания индексных файлов типа .ndx и .mdx используется команда

INDEX   ON <индексное выражение>

ТО <имя .ndx файла>/

TAG <имя указателя индекса .mdx файла>

[OF <имя .mdx файла>] [UNIQUE] [DESCENDING]

 

Для открытия индексных файлов используется команда

SET INDEX TO [/?<список имен файлов>

[ORDER [TAG] <нмя .ndx файла>/

<имя указателя индекса>

[OF <имя .mdx файла>]]]

 

Помимо широкого набора команд типичный язык СУБД типа dBASE персонального компьютера включает несколько десятков или даже сотен встроенных функций. Функции могут использоваться на месте переменных и констант в командах. После указания имени функции обязательно идут круглые скобки, даже если функция не требует никаких параметров. В табл. 6.2 приведены некоторые функции, часто используемые при разработке программ.

 

Таблица 6.2

Некоторые функции СУБД типа dBASE

 

Функция

Назначение

RECNO()

BOF() EOF()

RECCOUNT()

FOUND()

LIКЕ(<образец>, <выр.С>)

UPPER (<выр.С>)

INKEY( )

ERROR()

CHR(<выр.N>)

DATE()

ROW() СОL()

Возвращает номер текущей записи открытого файла БД

Возвращают логический признак начала и конца открытого файла БД

Возвращает число записей в открытом файле БД

Возвращает логический признак успешности поиска в БД командой SEEK

Сравнивает строку <образец> с символьным выражением <выр.С>

Преобразует символьную строку в верхний регистр

Возвращает код нажатой клавиши

Возвращает номер ошибки

Возвращает букву по коду

Возвращает текущую дату

Возвращает номер текущей строки и столбца экрана

 

В языке dBASE IV используются также функции, которые (наряду с командами) позволяют обрабатывать данные (в том числе, выполнять вычисления), а также определять состояния, например, находится ли указатель записей в конце файла: ?EOF(). После имени функции обычно стоят круглые скобки, в которых могут помещаться аргументы Функции нельзя использовать самостоятельно, а только вместе с какой-либо командой.

Кроме системных функций в dBASE IV можно использовать функции, созданные самим пользователем.

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

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

DECLARE         <имя массива 1>

[{<количество строк>,} {<количество колонок>}]

{,<имя массива 2>

[{<количество строк>,} {<количество колонок>}]...]

 

В синтаксисе этой команды опции указываются фигурными скобками вместо обычно принятых квадратных. При записи команды в программе в квадратные скобки заключаются параметры (размерность) массива - число строк и столбцов. Если указано одно число, то массив одномерный. Формально двумерный массив с одним из параметров, равным единице, фактически является одномерным: DECLARE [12,1] или DECLARE [1,25].

Примеры.

DECLARE Mas [8,4]                             && Двумерный массив

DECLARE Masi [10]                             && Одномерный массив

STORE {15/10/89} TODatI [4,4].]

 

Для ввода данных в переменную или элементы массива в программе используется команда

 

STORE <выражение> ТО <список переменных>/<список элементов массива> или альтернативная форма

 

<переменная>/<элемент массива> = <выражение>.

 

 

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

В состав элементов командного языка входят команды, SET-команды, функции, переменные и массивы.

Команда записывается в виде строки слов, в которую входит глагол - основное слово, определяющее содержание операции, выполняемой командой, список выражений и ключевые слова с аргументами. Структура командной строки называется синтаксисом команды. Многие команды обработки файлов строятся по следующей форме:

 

<глагол> [<список выражений:»] [<границы>]

[FOR<условие>] [WHILE<\условие>]

[ТО FILE <имя файла> /TO PRINTER

/TО ARRAY <имя массива>

/ТО <переменные>

[ALL [LIKE/EXCEPT <шаблон>]] [IN <алиас>]

 

Квадратные скобки означают использование заключенных в них элементов синтаксиса по выбору. В угловых скобках, следующих после ключевого слова, записываются его аргументы. Косая черта, наклоненная влево (/), обозначает, что может быть записано только одно из разделенных этим знаком ключевых слов. Угловые, квадратные скобки и косая черта в записи команды для ее выполнения не указываются и служат только для пояснения синтаксиса.

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

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

Границы в приведенном выше синтаксисе команды указывают те записи файла БД, которые будут доступны при его обработке. В качестве ключевых слов границ могут быть: RECORD <n> - доступна только одна запись с заданным номером; NEXT <n> - доступны все записи, начиная с номера n; ALL - доступны все записи файла БД; REST - доступны записи, начиная с текущей до конца файла.

Опции FOR и WHILE определяют условия отбора записей для обработки. Эти опции имеют приоритет перед границами при определении доступа к записям. Опция FOR определяет доступ к обработке, начиная с первой записи и до конца файла БД, a WHILE - начиная с текущей записи и до тех пор, пока условие имеет логическое значение «Истина» (True или .Т.).

Опция ТО управляет выводом информации, обработанной командой. В ряде команд выходной поток можно направить в файл на диске, на принтер, в массив (или переменную).

Опция ALL LIKE позволяет отобрать или, наоборот, исключить среди имен файлов, полей файлов БД и переменных те, которые соответствуют заданному шаблону.

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

 

SET <параметр> ТО <выражение> и

SET <параметр> ON/OFF

 

Первая форма устанавливает значение параметра, а вторая включает (ON) или выключает (OFF) его действие, т.е. устанавливает состояние. Эти команды можно выполнять в программах, в командном режиме, можно также занести их в специальный файл с именем Config.db, определяющий параметры среды на весь сеанс работы с пакетом dBASE.

Создание файла БД осуществляется командой CREATE <имя файла>. Для модификации созданной структуры файла используется команда MODIFY STRUCTURE.

Для открытия файла БД используется команда

 

USE       [<имя файла БД>/?] [IN <номер рабочей области>]

[INDEX <список .ndx и .mdx файлов>]

[ORDER [TAG] <имя .ndx файла>/<указатель .mdx файла>

[OF <имя .mdx файла>]]

[ALIAS<aлиac>] [EXCLUSIVE] [NOUPDATE],

 

которая открывает существующий файл БД и связанные с ним файлы .mdx и .ndx в текущей рабочей области.

Для создания индексных файлов типа .ndx и .mdx используется команда

INDEX   ON <индексное выражение>

ТО <имя .ndx файла>/

TAG <имя указателя индекса .mdx файла>

[OF <имя .mdx файла>] [UNIQUE] [DESCENDING]

 

Для открытия индексных файлов используется команда

SET INDEX TO [/?<список имен файлов>

[ORDER [TAG] <нмя .ndx файла>/

<имя указателя индекса>

[OF <имя .mdx файла>]]]

 

Помимо широкого набора команд типичный язык СУБД типа dBASE персонального компьютера включает несколько десятков или даже сотен встроенных функций. Функции могут использоваться на месте переменных и констант в командах. После указания имени функции обязательно идут круглые скобки, даже если функция не требует никаких параметров. В табл. 6.2 приведены некоторые функции, часто используемые при разработке программ.

 

Таблица 6.2

Некоторые функции СУБД типа dBASE

 

Функция

Назначение

RECNO()

BOF() EOF()

RECCOUNT()

FOUND()

LIКЕ(<образец>, <выр.С>)

UPPER (<выр.С>)

INKEY( )

ERROR()

CHR(<выр.N>)

DATE()

ROW() СОL()

Возвращает номер текущей записи открытого файла БД

Возвращают логический признак начала и конца открытого файла БД

Возвращает число записей в открытом файле БД

Возвращает логический признак успешности поиска в БД командой SEEK

Сравнивает строку <образец> с символьным выражением <выр.С>

Преобразует символьную строку в верхний регистр

Возвращает код нажатой клавиши

Возвращает номер ошибки

Возвращает букву по коду

Возвращает текущую дату

Возвращает номер текущей строки и столбца экрана

 

В языке dBASE IV используются также функции, которые (наряду с командами) позволяют обрабатывать данные (в том числе, выполнять вычисления), а также определять состояния, например, находится ли указатель записей в конце файла: ?EOF(). После имени функции обычно стоят круглые скобки, в которых могут помещаться аргументы Функции нельзя использовать самостоятельно, а только вместе с какой-либо командой.

Кроме системных функций в dBASE IV можно использовать функции, созданные самим пользователем.

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

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

DECLARE         <имя массива 1>

[{<количество строк>,} {<количество колонок>}]

{,<имя массива 2>

[{<количество строк>,} {<количество колонок>}]...]

 

В синтаксисе этой команды опции указываются фигурными скобками вместо обычно принятых квадратных. При записи команды в программе в квадратные скобки заключаются параметры (размерность) массива - число строк и столбцов. Если указано одно число, то массив одномерный. Формально двумерный массив с одним из параметров, равным единице, фактически является одномерным: DECLARE [12,1] или DECLARE [1,25].

Примеры.

DECLARE Mas [8,4]                             && Двумерный массив

DECLARE Masi [10]                             && Одномерный массив

STORE {15/10/89} TODatI [4,4].]

 

Для ввода данных в переменную или элементы массива в программе используется команда

 

STORE <выражение> ТО <список переменных>/<список элементов массива> или альтернативная форма

 

<переменная>/<элемент массива> = <выражение>.