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

10.3 Select таңдауының операторы.

Өзімізге ыңғайлы болу үшін осы оператордың синтаксисін қайталайық.

<select statement> ::=

SELECT [ALL | DISTINCT] <select name>

INTO <select target list> <table expression>

<select target list>::=

<target specification>

[{,<target specification>}...]

Біз айтып кеткендей, таңдау операторының жалғыз нәтижесі кесте болып табылады, яғни ол бірнеше жолдардан тұрып, мақсат тізімі сол операторды спецификациялайды.

WHERE операторы.

Егерде кестеде WHERE бөлімі қатысса, онда келесіде сол есептеледі. WHERE бөлімінің синтаксисі келесідегідей:

<where clause> ::= WHERE <search condition>

<search condition> ::=

<boolean term>

( <search condition> OR <boolean term>

<Boolean term> ::=

<boolean factor>

( <boolean term> AND <boolean factor>

<boolean factor> ::= [NOT] <boolean primary>

<boolean primary> ::= <predicate> | (<search condition>)

WHERE бөлімінің есептелуі келесі ережелермен есептеледі: R-FROM бөлімінің есептеу нәтижесі деп алайық, онда іздеу шарты барлық R жолына қолданылатын болады, және WHERE бөлімінің нәтижесі кесте болып табылады. Үш жолдан тұратын R үшін іздеу шарты true болып табылады. Егер таңдау шарты сұратуларды қосатын болса, онда әр сұрату әр R кестесінің кортежі үшін есептелінетін болады. (Стандартта “EFFECTIVELY” термині қолданылатын болады, сол мағынада, егер әр сұрату шын мәнәнде әр R кортежі үшін қайтадан есептелініп отыратын жағдайда болса).

Ескерте кетейік, егер SQL/89 ДҚ анықталмаған мәндерді қатынастыратын болса, онда іздеу шартының есебі мәнде емес, үштік логика, яғни TRUE, FALSE және UNKNOWN мәндерінде болады(белгісіз).

Кез келген предикат үшін, қандай жағдайда UNKNOWN мағынасын туындайтыны белгілі Бульдік операциялар AND, OR және NOT келесі үш мәндік логикалардай жұмыс істейді:

true AND unknown = unknown

unknown AND true = unknown

unknown AND unknown = unknown

true OR unknown = true

unknown OR true = true

unknown OR unknown = unknown

NOT unknown = unknown

Шартты іздеу предикатының ішінен SQL/89 қатысты келесідегідей предикаттар болуы мүмкін: салыстыру предикаты, BETWEEN предикаты, IN предикаты, LIKE предикаты, NULL предикаты, кванторлы предикат және EXISTS предикаты. Ескертетін болсақ, SQL барлық үлестірулерде сұратудың орындалу тиімділігіне және жай предикатты салыстырудың іздеу шартына да өте қатты әсер етеді. (Кестелерді жолдар мен салыстыру константасын беретін предикаттар). Ондай предикаттарды ұстау үшін ДҚБЖ сұратуды толтыру кезінде индекстерді қолдануды ұсынады, яғни кестені толық қарастырмау керек.

Бірақ SQL тілі пайдаланушыларға таңдау шартындағы предикаттар жайында ойландырмайды, SQL -бағдарламасындағы ондай техникалық жағдайларды ескеріп отыру керек.

Негізгі әдебиеттер [1] бет 166-178

Қосымша әдебиеттер [2] бет 127-141

Бақылау сұрақтары

    1. Белгілеу мен қолдану облысы туралы айтып бер?

    2. SQL тілінің структурасын сипатта?

    3. Динамикалық SQL дегеніміз не?

    4. Бекітілген SQL дегеніміз не?

    5. Таңдау операторының функцияларын сипатта?

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