Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lecture_SBD.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.2 Mб
Скачать

10.2 Sql тілінің жалпы құрылымы, қолданбалы программалар интерфейсі. Бекітілген sql, динамикалық sql.

Жалпы элементтер

<Символ>(<Character)

Функция

Терминалды символ тілі мен элементтер жолын анықтайды.

Формат

<character> ::=

<digit> | <letter> | <special character>

<digit> ::=

0|1|2|3|4|5|6|7|8|9

<letter> ::=

<upper case letter> | <lower case letter>

<upper case letter> ::=

A|B|C|D|E|F|G|H|I

|J|K|L|M|N|O|P|Q|R

|S|T|U|V|W|X|Y|Z

<lower case letter> ::=

a|d|c|d|e|f|g|h|i

|j|k|l|m|n|o|p|q|r

|s|t|u|v|w|x|y|z

<special character> ::=

  1. Синтаксистік ережені қара

<Литерал>(<literal>)

Функция

Анықталмаған мәндерді анықтайды.

Форматы

<literal> ::=

<character string literal>

| <numeric literal>

<character string literal> ::=

'<character representation>...'

<character representation> ::=

<nonquote character>

| <quote representation>

<nonquote character ::=

См. Синтаксическое правило 1.

<quote representation> ::=

''

<numeric literal> ::=

<exact numeric literal>

| <approximate numeric literal>

<exact numeric literal> ::=

[+|-] { <unsigned integer>[.<unsigned integer>]

| <unsigned integer>.

| .<unsigned integer> }

<approximate numeric literal> ::=

<mantissa>E<exponent>

<mantissa> ::= <exact numeric literal>

<exponent> ::= <signed integer>

<signed integer> ::= [+|-] <unsigned integer>

<unsigned integer> ::=

<digit>...

1 синтаксистік ережені қара.

<Лексема>(<token>)

Функция.

Лексикалық бірліктерді анықтайды.

Формат

<token> ::=

<nondelimiter token> | <delimiter token>

<nondelimiter token> ::=

<identifier>

| <key word>

| <numeric literal>

<identifier> ::=

<upper case letter>[{ [<underscore>]<letter or digit>}...]

<underscore> ::= _

<letter or digit> ::=

<upper case letter> | <digit>

<key word> ::=

ALL | AND | ANY | AS | ASC | AUTHORIZATION | AVG

| BEGIN | BETWEEN | BY

| CHAR | CHARACTER | CHECK | CLOSE | COBOL | COMMIT

| CONTINUE | COUNT | CREATE | CURRENT | CURSOR

| DEC | DECIMAL | DECLARE | DEFAULT | DELETE | DESC

| DISTINCT | DOUBLE

| END | ESCAPE | EXEC | EXISTS

| FETCH | FLOAT | FOR | FOREIGN | FORTRAN | FOUND

| FROM

| GO | GOTO | GRANT | GROUP | HAVING

| IN | INDICATOR | INSERT | INT | INTEGER | INTO | IS

| KEY | LANGUAGE | LIKE

| MAX | MIN | MODULE | NOT | NULL | NUMERIC

| OF | ON | OPEN | OPTION | OR | ORDER

| PASCAL | PL1 | PRECISION | PRIMARY | PRIVILEGES |

| PROCEDURE | PUBLIC

| REAL | REFERENCES | ROLLBACK

| SCHEMA | SECTION | SELECT | SET | SMALLINT | SOME

| SQL | SQLCODE | SQLERROR | SUM

| TABLE | TO | UNION | UNIQUE | UPDATE | USER

| VALUES | VIEW | WHENEVER | WHERE | WITH | WORK

<delimiter token> ::=

<character string literal>

|,|(|)|<|>|.|:|=|*|+|-|/|<>|>=|<=

<separator> ::=

{ <comment> | <space> | <newline> }...

<comment> ::=

<comment introduser> [<character>...] <newline>

<comment introduser> ::= См. Синтаксическое правило 5.

<newline> ::=

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

<space> ::=

символ пробела

Аттарды

Функция

Аттарды спецификациялайды.

Формат

<table name> ::= [<authorization identifier>.]

<table identifier>

<authorization identifier> ::= <identifier>

<table identifier> ::= <identifier>

<column name> ::= <identifier>

<correlation name> ::= <identifier>

<module name> ::= <identifier>

<cursor name> ::= <identifier>

<procedure name> ::= <identifier>

<parameter name> ::= <identifier>

<Мәндер спецификациясы>( <value specification>) және <мақсат спецификациясы>(<target specification>)

Функция

Параметрлер мен үзілістердің бір немесе бірнеше мәндерін спецификациялайды.

Формат

<value specification> ::=

<parameter specification>

| <variable specification>

| <literal>

| USER

<target specification> ::=

<parameter specification>

| <variable specification>

<parameter specification> ::=

<parameter name> [<indicator paremeter>]

<indicator parameter> ::=

[INDICATOR] <parameter name>

<variable specification> ::=

<embedded variable name> [<indicator variable>]

<indicator variable> ::=

[INDICATOR] <embedded variable name>

<Баған спецификациясы>(<column specification>)

Функция

Аталынған бағананың көрсеткіші.

Формат

<column specification> ::=

[<qualifier>.] <column name>

<qualifier> ::=

<table name> | <correlation name>

<Көп мүшедегі функциялар спецификациясы>(<set function>)

Функция

Функцияны аргументке қолданған нәтиженің мәнін спецификациялайды.

Формат

<set function specification> ::=

COUNT(*) | <distinct set function>

| <all set function>

<distinct set function> ::=

{ AVG | MAX | MIN | SUM | COUNT }

(DISTNICT <column specification>)

<all set function> ::=

{ AVG | MAX | MIN | SUM }

([ALL] <value expression>)

<Мәнді өңдейтін түсініктеме> (<value exp>)

Функция

Мәнді спецификациялайды.

Формат

<value expression> ::=

<term>

| <value expression> + <term>

| <value expression> - <term>

<term> ::=

<factor>

| <term> * <factor>

| <term> / <factor>

<factor> ::=

[+|-] <primary>

<primary> ::=

<value specification>

| <column specification>

| <set function specification>

| ( <value expression> )

<Предикат> (<predicate>)

Функция

Шарттарды спецификациялайды, яғни «true», «false», немесе «unpown» мәндері үшін ақиқат есебіне.

Формат

<predicate> ::=

<comparison predicate>

| <between predicate>

| <in predicate>

| <like predicate>

| <null predicate>

| <quantified predicate>

| <exists predicate>

<Салыстыру предикаты> (<comparison predicate>)

Функция

Екі мәнді спецификациясы

Формат

<comparison predicate> ::=

<value expression> <comp op>

{<value expression> | <subquery>}

<comp op> ::=

= | <> | < | > | <= | >=

Динамикалық SQL.

SQL System R-де интерактивті бағдарланған SQL құру үшін транзакцияны орындау кезінде операторлар қосылды, олар SQL кез-келген операторды орындауға немесе компилирлеуге арналған PREPARE операторы SQL операторының динамикалық компиляциясын шақырып, яғни қосылатын программмадағы символды жолдың үзілісін құрайды. Текст программаны орындау кезінде кез келген әдіспен үзілістегі(переменное) орналасуы мүмкін, мысалы: терминалдан енгізу DESCRIBE операторы SQL операторы жайында информация алу үшін қызмет етеді, ертеде PREPARE ператоры көмегімен дайындалынған. Осы оператордың көмегімен біріншіден, дайындалған оператор таңдау операторы болып табылады ма, екіншіден, егер бұл таңдау операторы болса, онда бағананың сандары мен типтер қатынастарының результаты жайында ақпарат алатынын білуге болады.

Ертедегі дайындалған SQL операторы үшін, таңдау операторы болыптабылмайтын оператор EXECUTE операторы қызмет етеді. Динамикалық дайындалынған таңдау операторына курсор аппараты қолданылады., яғни ол аппаратта ағымдағы кортеж бағандарының мәндер нәтижесі орналасуы қажет.

Келтірілген SQL.

System R қысқаша сипаттамасын қорыта келгенде, техникалық жетіспеушілік жұмысына қарамастан, ойдағыдай SQL тілі керекті барлық құралдарды құрады, яғни оны ДҚБЖ базалық тіл ретінде қолдануға болады.

SQL бекітпесі

SQL System R арнайы операторлар қатысады,яғни олар SQL операторының дәстүрлі программалау тілдерін орнату үшін қолданылады.

(SQL System R негізгі тілі болып PLII табылады)

Негізгі қиын жағдай болғаны, SQL тілін программалау тіліне орналастыру болды, себебі SQL тілі-реляционды тіл, яғни оның операторы мүшеліктермен жұмыс істейтін болғандықтан, ал басқа программалау тілдерінің негізгісі скалярлы операциялар болғандықтан қиынға түсті. SQL есептеу үшін, бұл тілге операторлар қосылады, яғни олар ДҚ түскен сұратулардың нәтижесін қамтамасыз етеді. Сол себептен бұл тілге курсор түсінігі енгізіледі, яғни сонымен таңдау операторы қатынасатын болғандықтан. Анықталған курсорға OPEN операторын қолдануға болады, ол сұратудың қатынау нәтижесінің материализациясын білдіреді. FETCH операторы программа жадысындағы нәтижелік келесі қатынас кортежін таңдауға мүмкіндік береді. CLOSE операторы, берілген курсормен жұмыстың аяқталғанын білдіреді.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]