Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД SQL(засоби ман_пулювання даними.Трив_альн_ запити).docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
62 Кб
Скачать
☆

2. Вибірка без використання фрази where

2.1. Проста вибірка

Це вибірка значень одного чи кількох стовпців з однієї таблиці (фактично проекція таблиці на один атрибут),  (ключові слова SELECT…FROM…)...

Приклад 6. Вибрати всі дані з таблиці постачальників:

SELECT *

  FROM P;

У результаті отримаємо нову таблицю, що містить повну копію даних з вихідної таблиці P

Приклад. Вибрати деякі стовпчики з вихідної таблиці (указівка списку стовпчиків, що відбираються,):

SELECT P.NAME

  FROM P;

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

Якщо у вихідній таблиці було присутнє кілька постачальників з різними номерами, але однаковими найменуваннями, то в результуючій таблиці будуть рядка з повтореннями - дублікати рядків автоматично не відкидаються.

Приклад. Запит видати назва, статус і адреса постачальників

SELECT  Назва, Статус, Адреса

FROM    Постачальники;

дає результат у вигляді таблиці з трьома колонками  Назва, Статус, Адреса. При цьому, якщо у вихідній таблиці було присутнє кілька рядків з різними номерами, але однаковими найменуваннями, адресами і статусом  постачальників, то в результуючій таблиці будуть рядки з повтореннями

2.2. Виключення дублікатів

Для виключення дублікатів і одночасного упорядкування переліку необхідно доповнити запит ключовим словом DISTINCT (різний, різні).

Приклад. Вибрати деякі стовпчики з вихідної таблиці, видаливши з результату повторювані рядки (ключове слово DISTINCT):

SELECT DISTINCT P.NAME

  FROM P;

Використання ключового слова DISTINCT приводить до того, що в результуючій таблиці будуть вилучені всі повторювані рядки.

 

3. Вибірка з використанням фрази where

Фраза WHERE включає набір умов для добору рядків:

WHERE [NOT] WHERE_умова [[AND|OR][NOT] WHERE_умова]...

де WHERE_умова - одна з наступних конструкцій:

 значення { = | <> | < | <= | > | >= } { значення | ( підзапит ) }

 значення_1 [NOT] BETWEEN значення_2 AND значення_3

 значення [NOT] IN { ( константа [,константа]... ) | ( підзапит ) }

 значення IS [NOT] NULL

 [таблиця.]стовпець [NOT] LIKE 'рядок_символів' [ESCAPE 'символ']

 EXISTS ( підзапит )

3.1. Використання операторів порівняння

У синтаксисі фрази WHERE (п.5.1.2) показано, що для відбору потрібних рядків таблиці можна використовувати оператори порівняння = (дорівнює), <> (не дорівнює), < (менше), <= ( менше чи дорівнює), > (більше), >= ( більше дчи орівнює), що можуть випереджатися оператором NOT, створюючи, наприклад, відносини "не менше" і "не більше". Як умову в розділі WHERE можна використовувати і більш складні логічні вираження, що використовують поля таблиць, константи, порівняння (>, <, = і т.д.), дужки, союзи AND і OR, заперечення NOT.

Приклад. Вибрати всі рядки з таблиці постачальників, що задовольняють деякій умові (ключове слово WHERE…):

SELECT*

FROM P

WHERE P...PNUM>2;

Можливість використання кількох умов, з'єднаних логічними операторами AND, OR, AND NOT і OR NOT, дозволяє здійснити більш детальний добір рядків.

 Приклад. Одержати перелік продуктів (з таблиці Продукти), що практично не містять вуглеводів і натрію:

SELECT  Продукти.Продукт

FROM    Продукти

WHERE   Вуглев = 0 AND Na = 0;

 Крім традиційних операторів порівняння (= | <> | < | <= | > | >=) у WHERE фразі використовуються умови BETWEEN (між), LIKE (схоже на), IN (належить), IS NULL (не визначене) і EXISTS (існує), що можуть випереджатися оператором NOT (не). Критерій добору рядків формується з одного чи кількох умов, з'єднаних логічними операторами:

AND - коли повинні задовольнятися обоє поділюваних за допомогою AND умови;

OR - коли повинно задовольнятися одне з поділюваних за допомогою OR умов;

AND NOT - коли повинне задовольнятися перша умова і не повинна друге;

OR NOT - чи коли повинне задовольнятися перша умова чи не повинна задовольнятися друге,

причому існує пріоритет AND над OR (спочатку виконуються всі операції AND і тільки після цього операції OR). Для одержання бажаного результату WHERE умови повинні бути введені в правильному порядку, якому можна організувати введенням дужок.

При обробці умови числа порівнюються алгебраїчно - негативні числа вважаються меншими, чим позитивні, незалежно від їхньої абсолютної величини. Рядки символів порівнюються відповідно до їхнього представлення в коді, використовуваному в конкретної СУБД, наприклад, у коді ASCII. Якщо порівнюються два рядки символів, що мають різні довжини, більш коротка рядок доповнюється праворуч пробілами для того, щоб вони мали однакову довжину перед здійсненням порівняння.