- •1. Програма навчальної дисципліни «Системи управління базами даних»
- •Мета і завдання курсу
- •Міждисциплінарні зв’язки
- •Зміст навчальної дисципліни (відповідно до тематики методичних вказівок)
- •1. Лабораторна робота (0-4 бали):
- •2...Самостійна робота студента (0-5 бали):
- •Критерії оцінювання знань студентів при проведенні підсумкового контролю
- •2. Теоретичні відомості
- •2.1. Основні поняття й визначення
- •2.2. Відмінність sql від процедурних мов програмування
- •2.3. Інтерактивний і вбудований sql
- •2.4. Складові частини sql
- •2.5. Типи даних sql
- •2.5.1. Тип даних «рядок символів»
- •2.5.2. Числові типи даних
- •2.5.3. Дата й час
- •2.5.4. Невизначені або пропущені дані (null)
- •2.6. Використовувані терміни й позначення
- •2.7. Навчальна база даних
- •3.1. Лабораторна робота №1
- •Теоретичні відомості
- •Завдання для самостійної роботи
- •3.2. Лабораторна робота №2
- •Теоретичні відомості
- •Завдання для самостійної роботи
- •3.3. Лабораторна робота №3
- •Теоретичні відомості
- •Завдання для самостійної роботи
- •3.4. Лабораторна робота №4
- •Теоретичні відомості
- •Завдання для самостійної роботи
- •3.5. Лабораторна робота №5
- •Теоретичні відомості
- •Завдання для самостійної роботи
- •3.6. Лабораторна робота №6
- •Теоретичні відомості
- •Завдання для самостійного виконання
- •3.7. Лабораторна робота №7
- •Теоретичні відомості
- •Завдання для самостійного виконання
- •3.8. Лабораторна робота №8
- •Теоретичні відомості
- •Завдання для самостійної роботи
- •3.9. Лабораторна робота №9
- •Теоретичні відомості
- •Завдання для самостійної роботи
- •3.10. Лабораторна робота № 10
- •Теоретичні відомості
- •Завдання для самостійної роботи
- •3.11. Лабораторна робота №11
- •Теоретичні відомості
- •Завдання для самостійної роботи
- •Список рекомендованої літератури
Теоретичні відомості
При заданні логічної умови у виразі WHERE можуть бути використані оператори IN, BETWEEN, LIKE, is NULL.
Оператори IN (дорівнює будь-якому зі списку) і NOT IN (не дорівнює жодному зі списку) використовуються для порівняння значення поля, що перевіряється, із заданим списком. Цей список значень вказується в дужках праворуч від оператора IN.
Побудований з використанням IN предикат (умова) вважається істинним, якщо значення поля, ім'я якого зазначено ліворуч від IN, збігається (мається на увазі точний збіг) з одним зі значень, перерахованих у списку, зазначеному в дужках праворуч від IN.
Предикат, побудований з використанням NOT IN, уважається істинним, якщо значення поля, ім'я якого зазначено ліворуч від NOT IN, не збігається з жодним зі значень, перерахованих у списку, зазначеному в дужках праворуч від NOT IN.
Приклад 1. Одержати з таблиці EXAM_MARKS відомості про студентів, що мають екзаменаційні оцінки тільки 4 і 5.
SELECT *
FROM EXAM_MARKS
WHERE MARK IN (4, 5 ) ;
Приклад 2. Одержати відомості про студентів, що не мають ні однієї екзаменаційної оцінки, рівної 4 і 5.
SELECT *
FROM EXAM_MARKS
WHERE MARK NOT IN (4, 5 ) ;
Оператор BETWEEN використовується для перевірки умови входження значення поля в заданий інтервал, тобто замість списку значень атрибута цей оператор задає межі його зміни.
Приклад 3. Запит на вивід записів про предмети, на вивчення яких приділяється кількість годин, що перебуває в межах між 30 і 40, має вигляд:
SELECT *
FROM SUBJECT
WHERE HOUR BETWEEN 30 AND 40;
Граничні значення, у цьому випадку значення 30 і 40, входять у множину значень, з якими виконується порівняння. Оператор BETWEEN може використовуватися як для числових, так і для символьних типів полів.
Оператор LIKE застосовується тільки до символьних полів типу CHAR або VARCHAR (див. розділ 1.5 «Типи даних SQL»).
Цей оператор переглядає строкові значення полів з метою визначення, чи входить заданий в операторі LIKE субрядок (зразок пошуку) у символьний рядок-значення поля, що перевіряється.
Для вибірки строкових значень по заданому зразку субрядка можна застосовувати шаблон шуканого зразка рядка, що використовує наступні символи:
• символ підкреслення «_», зазначений у шаблоні, визначає можливість наявності в зазначеному місці одного будь-якого символу;
• символ «*» допускає присутність у зазначеному місці рядка, що перевіряється, послідовності будь-яких символів довільної довжини.
Приклад 4. Створити запит, що вибирає з таблиці STUDENT відомості про студентів, прізвища яких починаються на букву «П».
SELECT *
FROM STUDENT
WHERE SURNAME LIKE 'П*';
Якщо буде потреба включення в зразок самих символів «_» і «*» застосовують так звані escape-символи. Якщо escape-символ передує знаку «_» і «*», то ці знаки будуть сприйматися буквально.
Можна задати зразок пошуку за допомогою наступного виразу:
LIKE '_V_П' ESCAPE 'V’.
У цьому виразі символ 'V’ за допомогою ключового слова ESCAPE оголошується escape-символом. Перший символ «_» у заданому шаблоні пошуку '_V_П' буде відповідати, як і раніше, будь-якому символу в рядку що перевіряється. Однак другий символ «_», що знаходиться після символу 'V, оголошеного escape-символом, уже буде інтерпретуватися буквально як звичайний символ, так само як і символ 'П' у заданому шаблоні.
Звертаємо увагу на те, що розглянуті вище оператори порівняння «=, <, >, <=, >=, <>» і оператори IN, BETWEEN і LIKE у жодному разі не можна використовувати для перевірки вмісту поля на наявність у ньому порожнього значення NULL (див. розділ 1.5 «Типи даних SQL»). Для цих цілей призначені спеціальні оператори is NULL (є порожнім) і IS NOT NULL (є не порожнім).