Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Авт_ПМП / Metod_BD.doc
Скачиваний:
31
Добавлен:
05.02.2016
Размер:
574.98 Кб
Скачать

Умова відбору (ключове слово where)

В наведених вище прикладах в результаті виконання оператора SELECT вибирались всі рядки вказаної таблиці. Якщо потрібно задати критерій відбору рядків це задається після ключового слова WHERE. Існує 5 основних типів умов відбору (або, згідно термінології ISO, предикатів).

  • Зрівняння.Зрівнюються результати обчислення одного виразу з результатами обчислення другого виразу.

  • Діапазон. Перевіряється, чи попадає результат обрахунку виразу в заданий діапазон.

  • Приналежність до множини. Перевіряється, чи належить результат обчислення виразу до заданої множини значень.

  • Відповідність шаблону.Перевіряється, чи відповідає деяке строкове значення заданому шаблону.

  • Значення NULL.Перевіряється, чи даний стовпчик має невизначене значення NULL.

Розглянемо приклади застосування вказаних типів відбору.

Зрівняння

Необхідно скласти перелік товарів, ціна покупки яких перевищила 90.

SELECT kod,suma,data

FROM table_a

WHERE suma>90

Результат запиту матиме вид:

kod

suma

data

1

100

1.1.2002

2

150

2.1.2002

(2 рядки)

Одержати перелік товарів з відповідними сумами і відповідними сумами податку ПДВ, в яких сума податку ПДВ перевищує 10. Відповідний оператор SELECT матиме вид:

SELECT kod,suma,(suma*0.2)/(1+0.2) AS pdv

FROM table_a

WHERE suma*0.2/1.2 >10

Результат запиту матиме вид:

kod

suma

Pdv

1

100

16.666666

2

150

25

2

89

27.666666

Необхідно скласти перелік покупок товару з кодом 1, ціна покупки яких не перевищувала 80.

SELECT kod,suma,data

FROM table_a

WHERE kod=1 AND suma<=80

Результат запиту матиме вид:

kod

suma

data

1

55

10.1.2002

1

40

15.1.2002

Якщо потрібно одержати перелік товарів, які були закуплені після 10 січня 2002 року, потрібно задати такий оператор:

SELECT *

FROM table_a

WHERE data> {d'2002-1-10'}

Результат запиту матиме вид:

kod

suma

data

1

40

15.1.2002

2

89

2.2.2002

3

28

10.2.2002

Використання діапазонів (between / not between)

Необхідно скласти перелік товарів, ціна покупки яких лежить в межах від 50 до 100 грн.

SELECT kod,suma,data

FROM table_a

WHERE suma BETWEEN 50 AND 100

Результат запиту матиме вид:

kod

suma

data

1

100

1.1.2002

1

55

10.1.2002

2

89

2.2.2002

Умови відбору з перевіркою входження у множину (in / not in)

Задача. Необхідно скласти список покупок, які здійснювались 1.1.2002 і 2.2.2002 року. Запит матиме такий вид:

SELECT *

FROM table_a

WHERE data IN( {d'2002-01-01'},{d'2002-02-02'})

Результат запиту матиме вид:

kod

suma

data

1

100

1.1.2002

2

89

2.2.2002

Умови відбору з допомогою шаблону (like / not like)

В мові SQL існує два спеціальних символи шаблону, які використовуються для зрівнювання символьних значень.

% Символ проценту представляє любу послідовність з нуля і більше символів.

_ Символ підкреслювання представляє любий одиночний символ.

Всі останні символи в шаблоні представляють самі себе. Наприклад:

  • Adresa LIKE ‘П%’ – цей шаблон означає, що перший символ значення стовпчика Adresa повинен бути символом П, а всі останні символи можуть бути любими;

  • Adresa LIKE ‘П___’ - цей шаблон означає, що значення стовпчика Adresa повинно мати довжину 4 і починатись з символу П;

  • Adresa LIKE ‘%п’ – цей шаблон означає, значення стовпчика Adresa повинно закінчуватись символом п;

  • Adresa LIKE ‘%ДПС%’ – цей шаблон означає, що значення стовпчика Adresa повинно містити підслово ДПС;

  • Adresa NOT LIKE ‘П%’ – цей шаблон означає, що перший символ значення стовпчика Adresa НЕ повинен бути символом П, а всі останні символи можуть бути любими.

Приклад. Нехай таблицяustanovaмає такі стовпчики: kod, Nazva, Adresa, в яких заноситься інформація про ідентифікаційний код підприємства, його назву і адресу відповідно. Тоді запит

SELECT *

FROM ustanova

WHERE Adresa LIKE’%Ірпінь%’

поверне перелік підприємств, в адресі яких зустрічається слово Ірпінь.

Якщо ж потрібно одержати перелік підприємств, назви яких не містять ні букви "а" ні букви "б", запит матиме вид:

SELECT *

FROM ustanova

WHERE NOT Nazva LIKE’%a%’ AND NOT Nazva LIKE’%б%’

Соседние файлы в папке Авт_ПМП