- •Методичний посібник
- •«Інженерна та комп’ютерна графіка»
- •Пояснювальна записка
- •Навчальна програма предмету
- •Методичні вказівки для практичних робіт Практичне заняття №1
- •Практичне заняття №2
- •Об'єднання
- •Перетин
- •Віднімання
- •Множення
- •Практичне заняття №3
- •Перша нормальна форма. Можливі недоліки відношення в 1нф
- •Друга нормальна форма. Можливі недоліки відношення в 2нф
- •Третя нормальна форма. Можливі недоліки відношення в 3нф
- •Збереження залежності
- •Нормальна форма Бойса-Кодда
- •Практичне заняття №4
- •Оператор select
- •Речення select
- •Речення from
- •Відбір рядків (речення where)
- •Умови пошуку
- •Сортування результатів запиту (речення order by).
- •Перелік навчально-методичної літератури
Відбір рядків (речення where)
SQL -запросы, що прочитують з таблиці усі рядки, корисні при перегляді бази даних і створенні звітів, проте рідко застосовуються для чого-небудь ще Зазвичай вимагається вибрати з таблиці декілька рядків і включити в результати запиту тільки їх Щоб вказати, які рядки вимагається відібрати, слід використовувати пропозицію WHERE.
Речення WHERE складається з ключового слова WHERE, за яким йде умова пошуку, що визначає, які саме рядки вимагається прочитати.
Якщо умова пошуку має значення TRUE, рядок буде включений в результати запиту.
Якщо умова пошуку має значення FALSE або NULL, то рядок виключається з результатів запиту.
Умови пошуку
У SQL використовується безліч умов пошуку, що дозволяють ефективно і природним чином створювати різні типи запитів. Нижче розглядаються п'ять основних умов пошуку (у стандарті ANSI/ISO вони називаються предикатами).
Порівняння (=, >=). Найбільш поширеною умовою пошуку в SQL є порівняння. При порівнянні SQL обчислює і порівнює значення двох виразів для кожного рядка даних. Вирази можуть бути як дуже простими, наприклад містити одне ім'я стовпця або константу, так і складнішими - арифметичними виразами.
Нижче приведений синтаксис оператора порівняння.
Выражение1 = | <> | < | <= | > | >= Выражение2
Перевірка на приналежність діапазону значень (BETWEEN). Іншою формою умови пошуку є перевірка на приналежності діапазону значень (ключове слово BETWEEN). При цьому перевіряється, чи знаходиться значення даних між двома певними значеннями.
Вираження [NOT, що перевіряється_] BETWEEN нижнє_вираження AND верхнє_вираження
При перевірці на приналежність діапазону верхній і нижній межі вважаються частиною діапазону, тому в результати запиту.
Якщо вираження, що визначає нижню межу діапазону, має значення NULL, то перевірка BETWEEN повертає значення FALSE тоді, коли значення, що перевіряється, більше верхньої межі діапазону, і значення NULL інакше.|
Якщо вираження, що визначає верхню межу діапазону, має значення NULL, то перевірка BETWEEN повертає значення FALSE, коли значення, що перевіряється, менше нижньої межі, і значення NULL осоружному випадку.
Перевірка на членство в множині (IN). Ще однією поширеною умовою пошуку є перевірка на членство в множині (IN). В цьому випадку перевіряється, чи відповідає значення даних якому-небудь значенню із заданого списку.
вираження [NOT, що перевіряється_] IN (константа, .)
Наприклад: вивести список прізвищ студентів, які вчаться в групах з кодами 1, 3, 5 і 10.
SELECT StName
FROM Students
WHERE GrNo IN (1, 3, 5, 10)
Перевірка на відповідність шаблону (LIKE). Для читання рядків, в яких вміст деякого текстового стовпця співпадає із заданим текстом, можна використовувати просте порівняння, проте іноді необхідно здійснити порівняння на основі фрагмента рядка.
Перевірка на відповідність шаблону (ключове слово LIKE), дозволяє визначити, чи відповідає значення даних в стовпці деякому шаблону. Шаблон є рядком, в який може входити один або більш підстановлювальних знаків. Ці знаки інтерпретуються особливим чином.
ім'я_стовпця [NOT] LIKE шаблон [ESCAPE символ_пропуску]
Підстановлювальні знаки. Підстановлювальний знак % співпадає з будь-якою послідовністю з нуля або більш за символи. Наприклад, наступний запит виведе інформацію про студентів, чиє прізвище починається з "Іван":
SELECT *
FROM StudentsWHERE StName LIKE 'Іван%'
Підстановлювальний знак "_" (символ підкреслення) співпадає з будь-яким окремим символом. Наприклад, якщо ви упевнені, що ім'я студентки- або "Наталія", або "Наталія", то можете скористатися наступним запитом:
SELECT *
FROM Students WHERE StName LIKE 'Натал_я'
Підстановлювальні знаки можна поміщати в будь-яке місце рядка шаблону, і в одному рядку може знаходитися декілька підстановлювальних знаків.
Символи пропуску. При перевірці рядків на відповідність шаблону може виявитися, що підстановлювальні знаки входять в рядок символів як літерали. Наприклад, не можна перевірити, чи знаходиться знак відсотка в рядку, просто включивши його в шаблон, оскільки SQL вважатиме цей знак підстановлювальним. Як правило, це не викликає серйозних проблем, оскільки підстановлювальні знаки досить рідко зустрічаються в іменах, назвах товарів і інших текстових даних, які зазвичай зберігаються в базі даних.
У стандарті ANSI/ISO визначений спосіб перевірки наявності в рядках літералів, що використовуються як підстановлювальні знаки. Для цьому застосовуються символи пропуску. Коли в шаблоні зустрічається такий символ те символ, що йде безпосередньо за ним, вважається не підстановлювальним знаком, а літералом. (Відбувається пропуск символу.) Безпосередньо за символом пропуску може слідувати або один з двох підстановлювальних знаків, або сам символ пропуску, оскільки він теж набуває в шаблоні особливого значення.
Символ пропуску визначається у вигляді рядка, що складається з одного символу, і пропозиції ESCAPE. Нижче наведений приклад використання знаку долара ($) як символ пропуску :
SELECT *
FROM DataTable WHERE Text LIKE '%менше 50$% %'
ESCAPE $
Перевірка на рівність значенню NULL (IS NULL). Значення NULL забезпечують можливість застосування тризначної логіки в умовах пошуку. Для будь-якого заданого рядка результат застосування умови пошуку може бути TRUE, FALSE або NULL (у разі, коли в одному із стовпців знаходиться значення NULL). Іноді буває необхідно явно перевіряти значення стовпців на рівність NULL і безпосередньо обробляти їх. Для цього в SQL є спеціальна перевірка на рівність значенню NULL (IS NULL).
IS [NOT] NULL ім'я_ стовпця
Складені умови пошуку (AND, OR і NOT). Прості умови пошуку, описані в попередніх параграфах, після застосування до деякого рядка повертають значення TRUE, FALSE або NULL. За допомогою правил логіки ці прості умови можна об'єднувати в складніших. Умови пошуку, об'єднані за допомогою ключових слів AND, OR і NOT, самі можуть бути складеними.
WHERE [NOT] умова_поска [AND | OR] [NOT] умова_поска .
