Реферат

Реферат Запити фільтри використання та функціональне призначення

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.12.2024


Запити, фільтри, використання

та функціональне призначення

 

Що таке фільтр

Довідка (Help) дає визначення поняттю “фільтр” так: “Набір умов, які застосовуються для добору підмножини записів чи для сортування записів. У Microsoft Access існують фільтри чотирьох типів: фільтр по виділеному фрагменту, звичайний фільтр, розширений фільтр і фільтр по вводу.” У свою чергу, умова відбору визначається як “набір обмежувальних умов, наприклад, = "Україна" (означаюче, що потрібно строкове значення "Україна") чи > 30000, використовуваних для висновку визначеного набору записів при створенні чи запиту фільтра.”

Насправді фільтр — це просто логічний вислів. Фільтрація таблиці — це добір тих рядків таблиці, для яких відповідне вираження істинне. Ю.Шафран визначає фільтр як логічне вираження. Потрібно тільки пояснити, як воно будується з “умов”. А для цього необхідно розібратися, що таке логічний вислів.

Арифметичні і логічні вираження

Help (довідка) визначає вираження так: “Будь-яка комбінація операторів, констант, значень текстових констант, функцій, імен полів, елементів керуваннячи властивостей, результатом якої є конкретне значення.”

Дане визначення є досить складним і не зовсім вірним. Що таке комбінація операторів, констант і т.д.?

Спробуємо знайти більш конструктивне визначення. Щоб не захаращувати виклад непринциповими деталями, ми обмежимося випадком, коли в таблиці всі атрибути — числові (тобто в клітках таблиці можуть стояти тільки числа).

Як арифметичні, так і логічні вираження будуються з деяких “цеглин” за допомогою визначеного набору операцій. У випадку арифметичних виражень “цеглинами” служать числа й атрибути (інших “цеглин” ми для простоти не розглядаємо), а з'єднують їхні звичайні арифметичні операції. Формально арифметичні вираження визначаються так.

  1. Будь-яке число чи атрибут є арифметичним вираження.

  2. Якщо A — арифметичне вираження, то (A) — теж арифметичне вираження.

  3. Якщо А и В — арифметичні вираження, то вираження А+В, А–В, А*В, А/В и А**В теж є арифметичними.

  4. Інших арифметичних виражень немає.

От приклади арифметичних виражень: 7, х, 2+2, 2*x+3, 2*(х+3).

Маючи формальне визначення, ми можемо пояснити, чому, скажемо, вираження 2*(х+3) є арифметичним, а вираження 7*+8 арифметичним не є. Дійсно, Для першого з цих виражень, відповідно до правила 1, вираження х і 3 є арифметичними. Звідси, за правилом 2, випливає, що вираження (х+3) теж є арифметичним. За правилом 1, вираження 2 — арифметичне. Виходить, за правилом 3, і вираження 2*(х+3) — арифметичне. Що стосується вираження 7*+8, воно не арифметичне хоча б уже тому, що символ + вимагає арифметичних виражень по обидва боки від себе, а вираження ліворуч від нього виглядає так: 7*. У свою чергу 7* не є арифметичним, оскільки символ * теж по обидва боки вимагає арифметичних виражень, а праворуч просто нічого немає.

Приведене визначення арифметичного вираження конструктивно саме в тому змісті, що дозволяє прямо по тексту без обчислень визначити, арифметичне вираження перед нами чи ні.

Якщо всім атрибутам, що входять в арифметичне вираження, додати числові значення, символи +, – , *, / і ** проінтерпретувати, відповідно, як операції додавання, вирахування, множення, розподіли і зведення в ступінь, і визначити природним образом (тобто як учать у школі) порядок виконання цих дій, то дане арифметичне вираження одержить чисельне значення. Скажемо, якщо значення х и у є, відповідно, 7 і 8, то значенням вираження х+2*у є 23.

Таким чином, визначення того, чи є дане вираження арифметичним, і обчислення значення вираження — це два різних питання.

Перейдемо до визначення логічних виражень. Ми будемо вважати, що “цеглини” логічних виражень мають вид х Т, де х – атрибут, Т – арифметичне вираження, а — один із символів порівняння: = (дорівнює), <> (не дорівнює), < (менше) чи > (більше). З'єднуються “цеглини” за допомогою логічних операцій AND, OR і NOT.

Як і для арифметичних виражень, ми хочемо дати формальне визначення. Спочатку визначимо найпростіші логічні вираження, чи атоми.

Визначення 1. Нехай х – атрибут, Т – арифметичне вираження. Тоді вираження х=Т, х<>Т, х<Т и х>Т називаються атомами.

Тепер можна формально визначити логічні вираження. Ми будемо позначати їх великими латинськими буквами.

Визначення 2.

  1. Всякий атом є логічне вираження.

  2. Істина і Неправда — логічні вираження.

  3. Якщо X — логічне вираження, то вираження, те (X) — теж логічне вираження

  4. Якщо Х и У — логічні вираження, то вираження Х AND Y, Х OR Y і NOT Х теж є логічними.

  5. Інших логічних виражень немає.

От приклади логічних виражень: NOT х = 7, (х = 2+2) AND у > 2*(х+3).

Тепер переходимо до значень виражень. Значеннями логічних виражень є Істина і Неправда.

Спочатку визначимо значення атомів. Для цього всім атрибутам додамо числові значення й обчислимо значення арифметичного вираження, що входить в атом. Символи =, <>, < і > інтерпретуються як стандартним образом, як знаки порівняння чисел. Атом приймає значення Істина, якщо істинно відповідне порівняння, у противному випадку значення атома Неправда. Наприклад, якщо значення х и у є, відповідно, 7 і 8, то значенням атома х=х+2*у буде Неправда, тому що насправді 7 не дорівнює 23.

Для обчислення значення логічного вираження, що не є атомом, служать так називані таблиці істинності. Вони дозволяють обчислити значення логічного вираження, якщо відомі значення його підвисловлень. От таблиця істинності для операції AND.

Х

Y

Х AND Y

Істина

Істина

Істина

Істина

Неправда

Неправда

Неправда

Істина

Неправда

Неправда

Неправда

Неправда

Она показывает, как, зная значения выражений Х и Y, вычислить значение выражения Х AND Y.

А вот таблицы истинности для OR и NOT:

Х

Y

Х OR Y

Істина

Істина

Істина

Істина

Неправда

Істина

Неправда

Істина

Істина

Неправда

Неправда

Неправда

Х

NOT Х

Істина

Неправда

Неправда

Істина

Але і цього ще недостатньо: потрібно, як і для арифметичних операцій визначити порядок виконання логічних операцій, інакше кажучи, визначити їхнє старшинство. Самої старший вважається операція NOT (тобто у вираженні без дужок вона виконується першої), потім йде операція AND, потім операція OR.

Тепер, знаючи значення атомів, ви можете за допомогою цих таблиць обчислити значення будь-якого вираження, побудувавши для нього свою таблицю істинності. Як приклад побудуємо таку таблицю для виражень NOT (Х OR Y) і NOT X OR Y

Х

Y

Х OR Y

NOT (Х OR Y)

NOT Х

NOT X OR Y

Істина

Істина

Істина

Неправда

Неправда

Істина

Істина

Неправда

Істина

Неправда

Неправда

Неправда

Неправда

Істина

Істина

Неправда

Істина

Істина

Неправда

Неправда

Неправда

Істина

Істина

Істина

Мова алгебри логіки, що фактично описаний вище, виник як попытка формалізувати природну мову. Дійсно, у природних мовах ми теж зустрічаємося з подібними конструкціями, наприклад у російській мові. Там аналогами логічних виражень є оповідальні пропозиції, аналогами атомів – прості оповідальні пропозиції, а аналогами логічних операцій – слова И, ЧИ, НЕМАЄ й ін. Звичайно, аналогія тут далеко не повна, але усе-таки вона дозволяє зрозуміти основні ідеї алгебри логіки.

Справді, коли щира пропозиція “На вулиці ЧИ стемніло в мене утомилися ока”? Коли істинно хоча б одне з пропозицій “На вулиці стемніло” чи “у мене утомилися ока”. Таким чином, у даному ЧИ випадку діє аналогічно операції OR (правда, в інших ЧИ фразах може вживатися в іншому змісті). Точно так само союз И можна вважати аналогом операції AND. Наприклад, фраза “Заграла музика И в зал увійшла вона” щира якщо і тільки щирі обидві її складові частини: “заграла музика” і “у зал увійшла вона”. ЧИ НЕ НІ часто виступає аналогом операції NOT. Скажемо, пропозиція “я НЕ знаю цієї людини” істинно в тих випадках, коли помилкова фраза “я знаю цієї людини”.

Треба, звичайно, розуміти, що формальна логіка доставляє нам досить грубий зліпок природної мови. Приміром, з погляду формальної логіки вираження X AND Y і Y AND X рівносильні в тім змісті, що істинність одного з них завжди означає й істинність іншого (цю властивість називають комунікативністю операції AND). Однак чи рівносильні в людському сприйнятті фрази “заграла музика И в зал увійшла вона” і “у зал увійшла вона И заграла музика”? А для фрази “я знаю цієї людини” запереченням (у звичайній мові) буде не тільки фраза “я не знаю цієї людини”, але і фрази “я знаю не цієї людини” і “не я знаю цієї людини”.

Звичайно логіку визначають як науку про правильні міркування. На наш погляд, це не зовсім вірно. В обчислювальній науці і, особливо, у теорії баз даних на перший план виходить інший аспект. Тут логіка використовується як формальна модель природної мови (це, власне кажучи, ми тільки що обговорювали). На це, звичайно, можна заперечити, що мова і мислення тісне зв'язані. Але адже мислення аж ніяк не зводиться до дедуктивного (тобто заснованим на доказах) методам.

Вище ми говорили про класичну, двозначну логіку, коли мається всього два значення істинності: ІСТИНА і НЕПРАВДА (уживаються ще й інші позначення, скажемо, ТА й НІ, чи TRUE і FALSE, чи 0 і 1). Крім двозначної логіки в принципі можна розглядати й інші логіки, наприклад тризначну, у якій крім ІСТИНА і НЕПРАВДА є ще і третє значення – НЕВІДОМЕ (у Access воно позначається як Null). Насправді в Access реалізована деяка мішанина з двозначної і тризначної логіки. Проте, для повного розуміння роботи Access нам оведеться торкнутися і тризначної логіки.

Наявність у Access фрагментів тризначної логіки зв'язане з тим, що в таблицях Access допускаються порожні клітки (так називані Null-значення). Наприклад, таблиця Знайомі може виглядати так:

Знайомі

Прізвище

Ім'я

По батькові

Іванов

Петро

 

(По батькові Іванова ми не знаємо.)

Запитується, як повинна така БД відповідати на запит “ чиВірно, що в Петра Іванова по батькові Сергійович?” Ясно, що ні ТАК, ні НЕМАЄ отут не підходить. Необхідно ввести третє значення. Іншими словами, треба побудувати придатну тризначну логіку.

На наш погляд, у самій тризначній логіці немає нічого складного і незрозумілого. У повсякденному житті ми нерідко користаємося й іншими багатозначними логіками, оцінюючи ті чи інші висловлення, як більш правдоподібні чи менш правдоподібні, а не просто як твердження, про які ми не можемо затверджувати ні їхню істинність, ні їхня хибність.

З вище викладеного ясно, що для обчислення значення в тризначній логіці ми повинні вміти обчислювати значення атомів і вказати, як обчислюються значення логічного вираження, що виходить з інших за допомогою логічних операцій. Зрозуміло, до числа логічних виражень треба, крім логічних констант Істина і Неправда, віднести і константу Невизначено.

Ми можемо вважати, що атом приймає значення Невизначене як тільки невизначене значення хоча б одного атрибута, що присутні в описі атома, чи невичислимі значення арифметичного вираження.

Тепер треба написати таблиці істинності для логічних операцій. Звичайно, хочеться, щоб вони узгоджувалися зі здоровим глуздом (іншими словами їхня інтерпретація повинна виглядати природно).

Простіше всього з операцією NOT (НЕМАЄ). Ясно, що помилкове значення переходить у щире і навпаки, а невизначене залишається невизначеним. Виходить, таблиця для NOT виглядає так:

Х

NOT Х

Істина

Неправда

Невизначено

Невизначено

Неправда

Істина

Для операції AND (І) істина будет тоді і тільки тоді, коли істинні обидва операнда. Якщо ж хоча б один операнд неправдивий, то неправдивий і результат операції. Кроме того, ясно, що значение результата застосування операції AND до однакових операндів співпадає зі значенням цього операнда. Іншими словами ми можемо так заповнити частину таблиці для операції AND:

Х

Y

Х AND Y

Істина

Істина

Істина

Істина

Невизначено


Істина

Неправда

Неправда

Невизначено

Істина


Невизначено

Невизначено

Невизначено

Невизначено

Неправда

Неправда

Неправда

Істина

Неправда

Неправда

Невизначено

Неправда

Неправда

Неправда

Неправда

Для двох порожніх клітинок зрозуміло, що значення повинні бути однаковими, і немає ніяких підстав написати там ні істину, ні неправду. Тому пишемо значення Невизначено. Остаточно таблиця набуде такого вигляду:

Х

Y

Х AND Y

Істина

Істина

Істина

Істина

Невизначено

Невизначено

Істина

Неправда

Неправда

Невизначено

Істина

Невизначено

Невизначено

Невизначено

Невизначено

Невизначено

Неправда

Неправда

Неправда

Істина

Неправда

Неправда

Невизначено

Неправда

Неправда

Неправда

Неправда

Для операції OR можна розмірковувати аналогічно. Тоді получиться така таблиця:

Х

Y

Х OR Y

Істина

Істина

Істина

Істина

Невизначено

Істина

Істина

Неправда

Істина

Невизначено

Істина

Істина

Невизначено

Невизначено

Невизначено

Невизначено

Неправда

Невизначено

Неправда

Істина

Істина

Неправда

Невизначено

Невизначено

Неправда

Неправда

Неправда



Тепер легко вирахувати значення будь-якого логічного вираження в трьохзначній логіці. Розглянемо для прикладу ті ж вирахування NOT (Х OR Y) і NOT X OR Y, які обговорювалися для двозначної логіки :

Х

Y

Х OR Y

NOT

(Х OR Y)

NOT Х

NOT X

OR Y

Істина

Істина

Істина

Неправда

Неправда

Істина

Істина

Невизначено

Істина

Неправда

Неправда

Невизначено

Істина

Неправда

Істина

Неправда

Неправда

Неправда

Невизначено

Істина

Істина

Неправда

Невизначено

Істина

Невизначено

Невизначено

Невизначено

Невизначено

Невизначено

Невизначено

Невизначено

Неправда

Невизначено

Невизначено

Невизначено

Невизначено

Неправда

Істина

Істина

Неправда

Істина

Істина

Неправда

Невизначено

Невизначено

Невизначено

Істина

Істина

Неправда

Неправда

Неправда

Істина

Істина

Істина

Відзначимо одну важливу обставину, якою ми будемо надалі користатися: якщо в логічному вираженні жоден з атомів не приймає значення Невизначене, те і все логічне вираження не може мати значення Невизначене. Можна сказати, що наша тризначна логіка є розширенням двозначної логіки за рахунок наявності додаткового значення атомів.

Ясно також і інше: узяте нами обмеження, що атрибути мають тільки числовий тип — зовсім несуттєво. Нам не важливо, який тип має атрибут, аби в системі була передбачена можливість обчислення логічного значення для атомів, куди входять дані атрибути. Зокрема, атрибути самі можуть мати логічний тип.

Нехай нам дане деяке відношення (тобто таблиця) з атрибутами a1, a2, … , ak... Нехай далі X — логічне вираження, не утримуючих інших атрибутів, крім a1, a2, … , ak (але, бути можуть, не всі ці атрибути). Візьмемо довільний рядок з даного нам відносини. Це значить, що кожен атрибут одержав відповідне значення. Підставимо в X ці значення атрибутів. Тоді наше логічне вираження також одержить деяке значення. Тим самим логічне вираження X може розглядатися як функція, що кожному рядку відносини однозначно зіставляє логічне значення (одне з двох чи більш, у залежності від того, скільки значна логіка використовується).

На час ми можемо навіть забути, що функція задається логічним вираженням, і дати наступне визначення.

Визначення 3. Результатом фільтрації даного відношення з атрибутами a1, a2, … , ak щодо заданої логічної функції f (a1, a2, … , ak) називається відношення, що складається з тих і тільки тих рядків вихідного відношення, для яких функція f приймає значення Істина.

Але є одна принципова проблема: чи вірно, що будь-яка логічна функція може бути задана придатним логічним вираженням? Відповідь математиками на це питання отриманий досить давно (задовго до винаходу баз даних) і звучить дивно: для двозначної логіки це вірно, а для тризначної немає.

Тут-те і зарита собака всіх непорозумінь з визначенням, що таке фільтр. Адже поки ми говоримо, що фільтр — це умова, що повинна виконуватися, чи висловлення, що повинне бути щирим, ми можемо мати на увазі будь-яку логічну функцію. Але комп'ютер не розуміє мови будь-яких функцій, він може працювати тільки мовою логічних виражень. У двозначній логіці це те саме, і автори підручників легко зсковзують з мови функцій на мову виражень (що нам не подобається, оскільки це ідейно різні речі). Але Access-те працює в тризначній логіці, а там це вже не одне і теж, і фільтром може бути тільки логічне вираження, а не якась міфічна чи умова висловлення. Подібне зіскользування є вже помилкою.

Отже, фільтром для даного відношення називається логічне вираження, що не містить атрибутів, що не входять у дане відношення.

Що таке запит

У звичайній мові термін “запит” вживається в різних змістах. По-перше, ця вимога офіційного роз'яснення по якій-небудь справі (запит депутата міністру); по-друге, призначення надмірної ціни за що-небудь; по-третє, потреби, інтереси (ну і запити в цих нових росіян). Ми привели роз'яснення терміна “запит” по словнику С.І.Ожогова. Нас цей термін цікавить, можна сказати, у “канцелярському” змісті — як вираження інформаційної потреби користувача на деякій мові.

На перший погляд може показатися, що потреба (те, що людині потрібно) і вираження цієї потреби на деякій мові — це те саме. Насправді це не так. Якщо людина чи знає почуває, що йому потрібно, то це ще не означає, що він може виразити свою потребу відповідною мовою. Уявіть собі, що ви спілкуєтеся з дитиною, що не вміє розмовляти, чи з іноземцем, що не знає вашої мови. Він лементом (дитина) чи жестом (іноземець) показує, що йому щось потрібно від вас. Але зрозуміти, що саме йому потрібно, ви не можете. А він же знає, що йому потрібно! Ви починаєте, пропонувати йому різні предмети, а він або відкидає, або приймає їх.

Відзначимо, до речі, що потреба користувача може бути і невимовна даною мовою. Уявіть собі, що ви намагаєтеся пояснити давньослов'янською мовою, що вам потрібний комп'ютер.

Усім відомо, що спілкування з машиною відбувається на деякій формальній мові. Спеціальні мови, на яких користувачі виражають свої інформаційні потреби, називаються мовами запитів. Отже, ми будемо розуміти запит як інформаційну потребу користувача. Вираження цієї потреби на деякій формальній мові ми будемо називати формулою чи запиту вираженням запиту.

Довідка (Help) визначає запит так: “Вимога на добір даних, що зберігаються в таблицях, чи вимога на виконання визначених дій з даними. Запит дозволяє створити загальний набір записів з даних, що знаходяться в різних таблицях, і використовувати цей набір як джерело даних для чи форми звіту. У Microsoft Access користувач має можливість створювати і виконувати запити наступних типів:

· Запити на вибірку (включаючи запити з параметрами і підсумкові запити)

· Запити на зміну

· Перехресні запити

· Специфічні запити SQL.

Запит на вибірку визначається в Help так: “Запит, у якому формулюються умови добору даних, що зберігаються в чи формі в об'єкті в режимі таблиці, і повертається набір записів, що задовольняє зазначеним умовам, без зміни даних, що повертається. Після висновку результатів запиту на екран стає можливим їхній перегляд, а в деяких випадках зміна даних у базових таблицях. На відміну від цього, у запитах на зміну виробляється зміна даних.

Так що ж таке запит (і, зокрема, запит-вибірка): “спеціальна структура”, “вимога на добір даних”, “питання про даний”, “таблиця”, чи що-небудь інше?

Щоб відповісти на це питання, потрібно знову згадати, що в реляційних системах усі дані представляються у виді таблиць. Ці таблиці поділяються на базисні (тобто вихідні дані) і похідні, що обчислюються на основі базисних. Базисні відносини — це вихідні дані. А похідні — це або відповідь, або проміжні результати. Суть роботи СУБД полягає в тім, що вона, перетворити наявні відносини, будує по них нові відносини. Зрештою, обчислюється підсумкове відношення, що ми будемо називати відповіддю на запит.

Обмеження цілісності - це правила (можна сказати, аксіоми), що із усіх станів виділяють “розумні”. Наприклад, якщо в деякій базисній таблиці є атрибути “дата_народження” і “дата_смерті”, те природно ввести таке обмеження цілісності: дата_народження дата_смерті.

Визначимо стан БД як набір базисних відносин. (Більш точно було б визначити стан як алгебраїчну систему, але це ускладнило б формалізацію.) У класі всіх станів виділяється підклас припустимих станів. Це ті стани, що задовольняють обмеженням цілісності. Тоді запит можна трактувати як функцію Z, що зіставляє кожному припустимому стану ST деяке відношення Z(ST), що ми і називаємо відповіддю на запит. При цьому сам запит записується вираженням на відповідному формальній мові, що, як було вище сказане, називається мовою запитів. Це вираження ми будемо називати формулою запиту.

Пояснимо сказане на прикладі. Нехай мається два базисних відношення:

Розмови

номер

дата

місто

тривалість

11-22-33

01.01.00

Москва

7

11-22-33

01.02.00

Париж

9

22-33-44

01.01.00

Женева

20

22-33-44

02.01.00

Цюрих

17

і

Телефони

номер

власник

Адрес

11-22-33

Іванов

Ленина 17

22-33-44

Петров

Вайнера 4

Нас цікавить, з якими містами і коли розмовляв Петров. Для того, щоб вирахувати відповідь на цей запит, потрібно з’єднати таблиці Розмови і Телефони і вибрати з них всі рядки, які відповідають умовам власник = “Петров”, і забрати зайві колонки. В результаті отримаємо наступну таблицю:

Відповідь на запит

дата

місто

01.01.00

Женева

02.01.00

Цюрих

Зрозуміло, що якби базисні таблиці Розмови і Телефони мали інше наповнення, то і відповідь була б іншою. У цьому змісті ми і говоримо, що запит є функція, що співставляє відповідь кожному припустимому стану.

Отже, ми звели поняття запиту до поняття функції. Навіщо це зроблено? Адже можна було б вважати запит невизначуваним поняттям, пославшись на те, що в будь-якій теорії є вихідні, невизначувані поняття. Наша відповідь такий. По-перше, украй бажано, щоб число невизначуваних понять було зведено до мінімуму, причому невизначувані поняття повинні носити досить загальний, інтегративний характер, що дозволяє використовувати його в описі значного класу інших понять. І якщо їсти можливість звести одні понять до інших, те це потрібно зробити в явному виді. По-друге, наш підхід дозволяє формалізувати зв'язок таких понять, як запит, відповідь на запит і формула запиту.

Мова запитів

Запит і формулу запиту часто плутають. Ми теж будемо дозволяти собі іноді замість вираження “формула запиту” говорити просто “запит”, якщо з контексту ясно, про що мова йде. Але все-таки потрібно ясно розуміти, що запит і формула запиту – це речі різні..

У допитливого читача неодмінно повинний виникнути питання: от ми увесь час говоримо про вираження запиту на якійсь мові, а що це за мову? Справа в тім, що якщо я по-російському скажу, що мені, наприклад, потрібні всі розмови Петрова, то Access навряд чи зрозуміє мене. Так, на жаль, Access не завжди розуміє “людські” мови. Хоча... От, англійці й американці (теж говорять по-англійському) придумали спеціальну мову, досить схожий на англійський. Називається він SQL (від Structured Query Language — структурована мова запитів). На ньому запит про разговоры Петрова буде виглядати приблизно так:

SELECT розмови.дата, розмови.місто FROM розмови INNER JOIN телефони ON розмови.номер = телефони.номер WHERE ((телефони.власник)="Петров");

Для тих, хто не вивчав англійський, повідомимо, що слово SELECT означає ВИБРАТИ, FROM — З, INNER JOIN – ВНУТРІШНЄ З'ЄДНАННЯ, ON — у даному випадку ПО, WHERE — де.

Одержавши такий запит, машина розуміє, що їй потрібно з'єднати відносини розмови і телефони за умовою розмови.номер = телефони.номер, вибрати з таблиці, що вийшла, ті рядки, де значення атрибута телефони.власник є “Петров”, а потім видалити всі стовпці, крім стовпців розмови.дата і розмови.місто.

Загальний вид найпростішого варіанта запиту мовою SQL такий:

SELECT атрибут, атрибут, … , атрибут FROM ім'я таблиці [ТИП З'ЄДНАННЯ ім'я таблиці, що приєднується, ON ім'я атрибута першої таблиці, що з'єднується, = ім'я атрибута другої таблиці, що з'єднується, [ім'я наступного атрибута першої таблиці, що з'єднується, = ім'я наступного атрибута другої таблиці, що з'єднується…,ім'я наступного атрибута першої таблиці, що з'єднується, = ім'я наступного атрибута другої таблиці, що з'єднується,]] WHERE (Фільтр);

Взагалі ж, мову SQL легко було б українізувати.

Відзначимо одну особливість. Хоча ми переводимо SELECT як ВИБРАТИ (і, власне кажучи, іншої альтернативи немає), що наводить на думку, що ця деяка дія над таблицями, насправді все це вираження можна розглядати як позначення результату цієї дії. Тому було б природніше почати формулювання запиту словом ВИБІРКА.

Який же звідси випливає висновок? Дуже простій: раз запит на вибірку це одночасно і результат, тобто знову таблиця, те можна після FROM замість імені таблиці писати знову запит. А можна з'єднати кілька таблиць, оскільки з'єднання пари таблиць – це знову таблиця.

От приклад. Нехай у нас мається три таблиці: в одній зазначене, код предмета і його найменування, у другий – код предмета і код учителя, що даний предмет веде, у третьої код учителя, його Прізвище, Ім'я і По батькові. Запит на те, як кличуть учителя, що викладає алгебру може виглядати так:

SELECT Учителя. Ім'я, Учителя. По батькові, Учителя. Прізвище

FROM (Предмети INNER JOIN [Предмет-Вчитель] ON Предмети.Код = [Предмет-Вчитель].[код предмета]) INNER JOIN [Учителя] ON [Предмет-Вчитель].[код учителя] = Учителя.Код

WHERE (((Предмети. Найменування)="алгебра"));

Потрібно відзначити, що в Access запити можна задавати різними способами і зовсім не обов'язково формулювати їх на SQL. Наприклад, ви можете задавати їх на бланку QBE.


1. Биография на тему Саади
2. Доклад Психотерапия - научный метод или духовная практика
3. Контрольная работа на тему Банковское право
4. Реферат Александр II 4
5. Реферат Знаки Рюриковичей
6. Реферат на тему Применение процессуальных обеспечительных мер в Беларуси и России С
7. Реферат на тему Battle Royal Essay Research Paper Affirmative ActionThere
8. Биография Философия и творчество Джордано Бруно
9. Контрольная работа Характеристика тренингов, направленных на формирование имиджа
10. Доклад Основные тенденции гостиничного маркетинга в 2010 - 2012 годах