Теоретичні відомості
При заданні логічної умови у виразі 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 (є не порожнім). Завдання для самостійної роботи
1. Напишіть запит на вивід номерів предметів навчання з 30 до 100, що знаходяться в таблиці EXAM_MARKS. 2. Напишіть запит, що вибирає дані про всі предмети навчання, екзамени з яких здані студентами, що мають ідентифікатори 12 і 32. 3. Напишіть запит на вивід назв предметів навчання, що починаються на букву «Ф». 4. Напишіть запит, що вибирає відомості про студентів, у яких імена починаються на букви «А» або «В». 5. Напишіть запит для вибору з таблиці EXAM_MARKS записів, у яких відсутні значення оцінок (поле MARK). 6. Напишіть запит на вивід з таблиці EXAM_MARKS записів, що мають у поле MARK значення оцінок.
3.3. Лабораторна робота №3
Читайте также: Cтислі теоретичні відомості Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|