Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Некоторые команды и функции для работы с базой данных



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

Полный список команд и функций с разъяснением их параметров и примерами использования можно найти в справочной системе VFP в разделе Language Reference.

Команды для работы с базами данных, таблицами, индексами, связями

CREATE DATABASE [DatabaseName |?] · CREATE TABLE | DBF TableName1 [NAME LongTableName] [FREE] · [CODEPAGE = nCodePage]· (FieldName1 FieldType [(nFieldWidth [, nPrecision])] [NULL | NOT NULL] · [CHECK lExpression1 [ERROR cMessageText1]] · [AUTOINC [NEXTVALUE NextValue [STEP StepValue]]] [DEFAULT eExpression1] · [PRIMARY KEY | UNIQUE [COLLATE cCollateSequence]] · [REFERENCES TableName2 [TAG TagName1]] [NOCPTRANS]· [, FieldName2... ] · [, PRIMARY KEY eExpression2 TAG TagName2 |, UNIQUE eExpression3 TAG TagName3 · [COLLATE cCollateSequence]]· [, FOREIGN KEY eExpression4 TAG TagName4 [NODUP] · [COLLATE cCollateSequence] · REFERENCES TableName3 [TAG TagName5]] [, CHECK lExpression2 [ERROR cMessageText2]]) · | FROM ARRAY ArrayName · USE [[DatabaseName!]Table | SQLViewName |?]· [IN nWorkArea | cTableAlias] [ONLINE] [ADMIN] [AGAIN]· [NOREQUERY [nDataSessionNumber]] [NODATA] [INDEX IndexFileList |?· [ORDER [nIndexNumber | IDXFileName | [TAG] TagName [OF CDXFileName]· [ASCENDING | DESCENDING]]]] [ALIAS cTableAlias] [EXCLUSIVE]· [SHARED] [NOUPDATE] [CONNSTRING cConnectionString | (m.nStatementHandle) ]· Функция ALIAS([nWorkArea]) возвращает алиас для текущей или заданной рабочей зоны. · SELECT([ 0 | 1 | cTableAlias ])· SELECT(0) - возвращает номер выбранной рабочей зоны· SELECT(1) - возвращает наибольший номер свободной зоны· SELECT 0 - выбор свободной зоны с наименьшим номером · INDEX ON eExpression TO IDXFileName | TAG TagName · [COLLATE cCollateSequence] [OF CDXFileName] [FOR lExpression]· [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE]· [BINARY] · SET INDEX TO [IndexFileList |? ] · ORDER nIndexNumber | IDXIndexFileName |· [TAG] TagName [OF CDXFileName] [ASCENDING |· DESCENDING]] [ADDITIVE] · SET ORDER TO [nIndexNumber | IDXIndexFileName | · [TAG] TagName [OF CDXFileName] [IN nWorkArea |· cTableAlias][ASCENDING | DESCENDING]] · SET RELATION TO [eExpression1 INTO nWorkArea1 |· cTableAlias1 [, eExpression2 INTO nWorkArea2 |· cTableAlias2 ] [IN nWorkArea | cTableAlias]· [ADDITIVE]] SET SKIP TO [TableAlias1 [, TableAlias2]...]

Команды перемещения по таблице, поиска и отбора данных

· GO [RECORD] nRecordNumber [IN nWorkArea | · IN cTableAlias]· GO TOP | BOTTOM [IN nWorkArea | IN cTableAlias]· (вместо GO можно использовать GOTO) SKIP [nRecords] [IN nWorkArea | cTableAlias]

Для nRecords>0 - перемещение далее по таблице, для nRecords<0 - назад к предыдущим записям.

Функция BOF() возвращает.T., если текущая запись - первая и Вы пытаетесь выполнить команду SKIP -1, аналогично для последней записи - EOF()=.T.

· LOCATE [FOR lExpression1] [Scope] [WHILE] [NOOPTIMIZE]

(Найти следующую запись, соответствующую условию - команда CONTINUE)

· SEEK eExpression ORDER nIndexNumber | · IDXIndexFileName | [TAG] TagName · [OF CDXFileName] [ASCENDING | DESCENDING]] [IN nWorkArea | cTableAlias] · SET FILTER TO [lExpression] [IN nWorkArea | cTableAlias] · SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] Select_List_Item [,...]· FROM [FORCE] Table_List_Item [,...]· [[JoinType] JOIN DatabaseName!]Table[[AS] Local_Alias]· [ON JoinCondition [AND | OR [JoinCondition | FilterCondition]...] · [WITH (BUFFERING = lExpr)]· [WHERE JoinCondition | FilterCondition [AND | OR JoinCondition | FilterCondition]...]· [GROUP BY Column_List_Item [,...]] [HAVING FilterCondition [AND | OR...]]· [UNION [ALL] SELECTCommand]· [ORDER BY Order_Item [ASC | DESC] [,...]]· [INTO StorageDestination | TO DisplayDestination] [PREFERENCE PreferenceName] [NOCONSOLE] [PLAIN] [NOWAIT]

В качестве StorageDestination можно использовать одно из следующих предложений:

В качестве DisplayDestination можно использовать одно из следующих предложений:

Команды для добавления, модификации и удаления данных

· BROWSE [FIELDS FieldList] [FONT cFontName [, nFontSize]] · [STYLE cFontStyle] [FOR lExpression1 [REST]] [FORMAT] · [FREEZE FieldName] [KEY eExpression1 [, eExpression2]] [LAST | NOINIT]· [LOCK nNumberOfFields] [LPARTITION] [NAME ObjectName] [NOAPPEND]· [NOCAPTIONS] [NODELETE] [NOEDIT | NOMODIFY] [NOLGRID] [NORGRID] · [NOLINK] [NOMENU] [NOOPTIMIZE] [NOREFRESH] [NORMAL] [NOWAIT] · [PARTITION nColumnNumber [LEDIT] [REDIT]]· [PREFERENCE PreferenceName] [SAVE] [TIMEOUT nSeconds] · [TITLE cTitleText] [VALID [:F] lExpression2 [ERROR cMessageText]]· [WHEN lExpression3] [WIDTH nFieldWidth] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN] [COLOR SCHEME nSchemeNumber]

При описании полей (в параметре FIELDS) список может содержать следующие параметры:

FieldName (имя поля) [:R] (только чтение) [:nColWidth] (ширина поля)[:V = lExpr1 [:F] [:E = cTxt]] (функция, выполняемая при выходе из поля) [:P = cFormatCodes] (формат) [:B = eMin, eMax [:F]] (диапазон данных) [:H = cHeadingText] (заголовок) [:W = lExpr2] (функция,выполняемая перед входом в поле)

Близкий синтаксис имеют команды EDIT и CHANGE для работы с таблицей при построчном расположении полей.

· APPEND [BLANK] [IN nWorkArea | cTableAlias] [NOMENU]· APPEND FROM FileName |? [FIELDS FieldList] · [FOR lExpression][[TYPE] [DELIMITED · [WITH Delimiter | WITH BLANK | WITH TAB | · WITH CHARACTER Delimiter] | DIF | FW2 | MOD | · PDOX | RPD | SDF | SYLK | WK1 |WK3 | WKS | WR1 |· WRK | CSV | XLS | XL5 [SHEET cSheetName]| XL8 · [SHEET cSheetName]]] [AS nCodePage]· · APPEND FROM ARRAY ArrayName [FOR lExpression] [· FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton]

SQL-команда INSERT INTO - добавить запись с заданными значениями полей:

INSERT INTO dbf_name [(FieldName1 [, FieldName2,...])] VALUES (eExpression1 [, eExpression2,...]) INSERT INTO dbf_name FROM ARRAY ArrayName | FROM MEMVAR | FROM NAME ObjectNameINSERT INTO dbf_name [(FieldName1 [, FieldName2,...])] SELECT SELECTClauses [UNION UnionClause SELECT SELECTClauses...] · REPLACE FieldName1 WITH eExpression1 [ADDITIVE]· [, FieldName2 WITH eExpression2 [ADDITIVE]]·...[Scope][FOR lExpression1][WHILE lExpression2] [IN nWorkArea | cTableAlias][NOOPTIMIZE] · SCATTER [FIELDS FieldNameList | FIELDS LIKE · Skeleton | FIELDS EXCEPT Skeleton] [MEMO] · TO ArrayName | TO ArrayName BLANK | MEMVAR | MEMVAR BLANK | NAME ObjectName [BLANK]

параметр MEMVAR означает - используются переменные с теми же именами, что и имена полей записи; имя переменной в программе следует писать как m.<имя поля>).

· GATHER FROM ArrayName | MEMVAR | NAME ObjectName· [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [MEMO] · COPY TO ARRAY ArrayName [FIELDS FieldList | · FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton]· [Scope] [FOR lExpr1a] [WHILE lExpression2] [NOOPTIMIZE] · UPDATE Target· SET Column_Name1 = eExpression1 [, Column_Name2 = eExpression2...]· [FROM [FORCE] Table_List_Item [[,...] | [JOIN [ Table_List_Item]]] WHERE FilterCondition1 [AND | OR FilterCondition2...]

Здесь Target - таблица (table), курсор (cursor) или их алиас или файл для обновления.

· DELETE [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE] PACK [MEMO | DBF] [Tablename ] [IN nWorkarea | cTableAlias] · DELETE [Target] FROM [FORCE] Table_List [[, Table_List...] | [JOIN [ Table_List]]] [WHERE FilterCondition1 [AND | OR FilterCondition2...]]

Команды вычислений по данным таблиц

где для eExpressionList - можно использовать следующие функции:

AVG(nExpression) - среднее значениеCNT() - количествоMAX(eExpression) - максимальное значениеMIN(eExpression) - минимальное значениеNPV(nExpression1, nExpression2 [, nExpression3]) - банковская функцияSTD(nExpression) - стандартное отклонениеSUM(nExpression) - суммаVAR(nExpression) - статистическая функция SUM [eExpressionList] [Scope] [FOR lExpression1] [WHILE lExpression2][TO MemVarNameList | TO ARRAY ArrayName] [NOOPTIMIZE] AVERAGE [ExpressionList] [Scope] [FOR lExpression1] [WHILElExpression2][TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE] COUNT [Scope] [FOR lExpression1] [WHILE lExpression2] [TO VarName][NOOPTIMIZE]

Математические функции

^ * / + - ABS() ACOS() ASIN() ATAN() ATN2() AVG()BINTOC() BITAND() BITCLEAR() BITLSHIFT() BITRSHIFT() BITSET() BITTEST() BITXOR() CEILING() COS() COUNT() DTOR() EXP() FLOOR() FV() INT() LOG() LOG10() MAX() MIN() MOD() MTON() NTOM() PAYMENT() PI() PV() RAND() ROUND(,) RECCOUNT() RECNO() RTOD() SIGN() SIN() SQRT() SUM() TAN() VAL()

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

+ - ASC() ALLTRIM() AT(,,) ATC(,,) CHR() CHRTRAN(,,) CTOBIN() CURSORTOXML(,,,,) CURVAL(,) FILETOSTR() GETPEM(,) GETWORDCOUNT(,) GETWORDNUM(,) LEFT(,) LEN() LOWER() LTRIM() MAX(,) MIN(,) OCCURS(,) OEMTOANSI() OLDVAL(,) PADC(,) PADL(,) PADR(,) PEMSTATUS(,,) PROPER() RAT(,,) REPLICATE(,) RIGHT(,) RTRIM() SOUNDEX() SPACE() STR(,,) STREXTRACT(,,,,) STRTRAN(,,) STUFF(,,,) SUBSTR(,,) TRANSFORM(,) TRIM() TYPE() UPPER() $ AT_C(,,) ATCC(,,) CHRTRANC(,,) LEFTC(,) LENC() RATC(,,) RIGHTC(expC,) TEXTMERGE(,,,) STRCONV(,) STUFFC(,,,) SUBSTRC(,,)

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

{date} CDOW() CMONTH() CTOD() CTOT() DATE() DATETIME() DAY() DMY() DOW() DTOC() DTOS() DTOT() GOMONTH(,) HOUR() MAX(,) MDY() MIN(,) MINUTE() MONTH() QUARTER() SEC() SECONDS() TIME() TTOC() TTOD() WEEK() YEAR()

Логические функции





Дата публикования: 2015-10-09; Прочитано: 257 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...