Приклади використання оператора SELECT.
Стр 1 из 3Следующая ⇒ ТЕМА 5. МОВИ ЗАПИТІВ Лекція 14 Вибірка даних
Оператор вибірки SELECT. Усі запити на одержання даних з однієї або декількох таблиць виконуються за допомогою єдиного речення SELECT (вибрати). У загальному випадку результатом реалізації речення SELECT є інша таблиця. До цієї нової (робочої) таблиці може бути знову застосована операція SELECT і т.д., тобто такі операції можуть бути вкладені одна в другу. Синтаксис оператора SELECT має наступний вигляд: SELECT [ ALL | DІSTІNCT ](<Список полів>|*) FROM <Список таблиць> [ WHERE <Предикат-умова чи вибірки з'єднання>] [ GROUP BY <Список полів угрупування>] [ HAVІNG <Предикат-умова для групи>] [ ORDER BY <Список полів, по яких упорядкувати вивід>] Ключове слово ALL означає, що в результуючий набір рядків включаються всі рядки, що задовольняють умовам запиту. Виходить, у результуючий набір можуть потрапити однакові рядки. І це порушення принципів теорії відношень (на відміну від реляційної алгебри, де за замовчуванням передбачається відсутність дублікатів у кожному результуючому відношенні). Ключове слово DІSTІNCT означає, що в результат не включаються дублікати рядків. Символ * (зірочка) означає, що в результат включаються всі стовпці з вихідних таблиць. У розділі FROM (з) задається перелік вихідних відношень (таблиць) запиту. У розділі WHERE (де) задаються умови добору рядків результату або умови з'єднання кортежів вихідних таблиць, подібно операції умовного з'єднання в реляційної алгебрі. У розділі GROUP BY (групуючи по) задається список полів угруповання. У розділі HAVІNG задаються предикати-умови, що накладаються на кожну групу. У частині ORDER BY (маючи) задається список полів упорядкування результату, тобто список полів, що визначає порядок сортування в результуючому відношенні. Наприклад, якщо першим полем списку буде зазначене Прізвище, а другим Номер групи, то в результуючому відношенні спочатку будуть зібрані в абетковому порядку прізвища студентів, і якщо знайдуться однофамільці, то вони будуть розташовані в порядку зростання номерів груп.
Розглянемо детально перші три рядки оператора SELECT: SELECT - ключове слово, яке повідомляє СКБД, що ця команда - запит. Усі запити починаються цим словом, з наступним пробілом. За ним може слідувати спосіб вибірки - з вилученням дублікатів (DІSTІNCT) чи без видалення (ALL, мається на увазі за замовчуванням). Потім йде список перерахованих через кому стовпців, що вибираються запитом з таблиць, або символ * (зірочка) для вибору всіх стовпців. Будь-які стовпці, не перераховані тут, не будуть включені в результуюче відношення. Це не означає, що вони будуть вилучені чи їхня інформація буде стерта з таблиць, тому що запит не впливає на інформацію в таблицях - він тільки показує дані. FROM - ключове слово, подібно SELECT, що повинне бути представлене в кожному запиті. Воно супроводжується пробілом і потім вказується ім’я таблиці - джерело інформації. WHERE - ключове слово, за яким слідує предикат - умова, що накладається на запис у таблиці, якому він повинен задовольняти, щоб потрапити у вибірку.
Приклади використання оператора SELECT.
Для виключення з результатів запиту значень які повторюються (надлишкових даних) використовується ключове слово DІSTІNCT.
При використанні DІSTІNCT необхідно бути уважним. Наприклад, якщо в таблиці студентів є однофамільці, то використання DІSTІNCT може привести до того, що про існування однофамільців користувач знати не буде. З наповненням БД таблиці стають дуже великими. Звичайно користувача цікавлять тільки визначені записи, тому SQL дозволяє встановлювати критерії вибору записів Речення WHERE команди SELECT дозволяє ставити умови, що можуть бути вірним чи невірними для будь-якого запису таблиці. Команда витягає тільки ті записи з таблиці, для яких таке твердження вірне.
Коли речення WHERE має місце, СКБД переглядає всю таблицю по одному запису, щоб визначити, чи є предикат вірним. Речення WHERE сумісне з уже розглянутими фразами, використовуваними в SELECT, тобто можна використовувати найменування полів, усувати дублікати, чи переупорядковувати поля. У реченні можуть використовуватися реляційні оператори: = дорівнює чому-небудь; <> не дорівнює. > більше чим; >= більше чим чи дорівнює; < менше ніж; <= менше ніж чи дорівнює; У SQL також використовуються булевські оператори AND, OR і NOT.
Цей запит містить конкретні умови вибору. Якщо буде потрібно повторити такий запит з іншими значеннями в умовах вибору, то необхідно буде змінити сам запит. Щоб не робити цього використовуються запити з параметрами.
При виконанні запиту спочатку будуть послідовно виведені два діалогових вікна, у яких вираження укладенні в квадратні дужки будуть використані як запрошення для уведення відповідних параметрів у поля. Після введення значень параметрів, наприклад дисципліна - мережі й оцінка - 4 виведеться результат. У реченні SELECT на додаток до реляційних і булевських операторів можуть бути використані спеціальні оператори ІN, BETWEEN, LІKE, і ІS NULL. Оператор ІN визначає набір значень, у який дане значення повинне бути включене.
ІN визначає набір значень за допомогою списку, укладеного в круглі дужки з поділом комами. Він перевіряє різні значення зазначеного поля, намагаючись знайти збіг зі значеннями з набору. Якщо це случається, то предикат вірний. Якщо набір містить символьні значення, то вони укладаються в одиночні лапки. Оператор BETWEEN трохи схожий на ІN, але, на відміну від визначення з набору, BETWEEN визначає діапазон значень, що повинні уміщатися шукані значення. Структура оператора BETWEEN наступна: уводиться початкове значення, ключове слово AND і кінцеве значення. На відміну від ІN, BETWEEN розрізняє порядок, і, отже, перше з них у реченні повинне бути по алфавітному чи числовому порядку.
Іноді в таблиці виникають записи, що не мають ніяких значень для кожного поля, наприклад, тому що інформація не довершена тому що це поле просто не заповнювалося. SQL у такому випадку дозволяє вводити порожнє значення NULL у поле замість значення. Коли значення поля дорівнює NULL, це означає, що СУБД спеціально позначила це поле, як таке що не має ніякого значення для цього запису. Це принципово відрізняється від значення нуля чи пробілу в полі, тому що БД буде обробляти це значення так само, як і будь-яке інше. Т.к. NULL не є предметним значенням, він не має і типу даних і може міститися в будь-який тип поля.
Наприклад, таблиця ТаблСтудент може містити інформацію про студента, дисципліну, однак, оскільки оцінка ще не виставлена, у поле Оцінка буде знаходиться значення NULL доти, доки оцінка не стане відома.
Разом з розглянутими операторами, можуть бути використані і традиційні функції AND, OR, NOT. Зокрема, для одержання предикатів, зміст яких протилежний розглянутим реляційним операторам, використовують заперечення NOT.
Оператор LІKE може застосовуватися тільки до полів типу CHAR або VARCHAR, у яких він шукає підрядки, тобто він шукає символи і перевіряє, чи збігаються вони з умовою. Як умову оператор використовує групові символи - спеціальні символи, що відповідають чому-небудь. Існує два типи групових символів, які використовуються з LІKE: · символ підкреслення заміщає будь-який одиночний символ, наприклад, 'М_Л' буде відповідати словам 'МОЛ' чи 'МАЛ', але не буде відповідати 'МЕТАЛ'; · знак зірочка (у деяких версіях %) заміщає послідовність любого числа символів, у тому числі нульової довжини. Наприклад, '*М*Л' буде відповідати словам 'МАЛ' чи 'ПМОЛ', але не відповідає 'МОЛОКО'.
Для упорядкування виводу стовпців таблиць SQL використовує команду ORDER BY, дозволяючи сортувати вивід запиту відповідно до значень у тій чи іншій кількості обраних стовпців. Якщо вказується кілька полів, то стовпці виводу упорядковуються один усередині іншого, при цьому можна визначати зростання (ASC) чи убування (DESC) для кожного стовпця. За замовчуванням установлено зростання.
Читайте также: I Приклади розв’язання задач Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|