Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет вказівки до лаб з SQL.doc
Скачиваний:
7
Добавлен:
07.05.2019
Размер:
811.01 Кб
Скачать

Завдання для самостійної роботи

1. Створити запит для підрахунку кількості студентів, що здавали екзамен із предмета навчання з ідентифікатором, рівним 20.

  1. Створити запит, що дозволяє підрахувати в таблиці EXAM_MARKS кількість різних предметів навчання.

  2. Створити запит, що виконує вибірку для кожного студента значення його ідентифікатора й мінімальної з отриманих їм оцінок.

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

  4. Створити запит, що виконує вивід прізвища першого за абеткою (на прізвище) студента, прізвище якого починається на букву «І».

  5. Створити запит, що виконує вивід (для кожного предмета навчання) найменування предмета й максимального значення номера семестру, у якому цей предмет викладається.

  6. Створити запит, що виконує вивід даних для кожного конкретного дня здачі іспиту про кількість студентів, що здавали іспит у цей день.

  7. Створити запит для одержання середнього бала для кожного курсу по кожному предмету.

  8. Створити запит для одержання середнього бала для кожного студента.

10. Створити запит для одержання середнього бала для кожного іспиту.

  1. Створити запит для визначення кількості студентів, що здавали кожний іспит.

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

3.6. Лабораторна робота №6

Тема: Виконання умовних операторів

Мета роботи: набути практичні навички використання умовних операторів при роботі з реляційною базою даних.

Порядок виконання роботи

1.Ознайомитися з теоретичними положеннями до лабораторної роботи.

2. Виконати всі наведені приклади в середовище СУБД ACCESS.Для цього необхідно:

  • завантажити СУБД ACCESS;

  • виконати режим відкриття бази даних «ВНЗ SQL»;

  • у вікні БД «ВНЗ SQL» вибрати вкладку «Запити»;

  • в діалоговому вікні вказати режим «Додати таблицю» і вибрати необхідні дані;

  • на панелі інструментів вибрати пункт меню «Вид» і вказати режим роботи SQL;

  • в поточному діалоговому вікні ввести текст запиту в форматі SQL;

  • виконати введений запит, для чого натиснути кнопку «Запуск» (!) на панелі інструментів;

  • отриманий результат виконання запиту занести в звіт та перевірити на відповідність умовам прикладу;

  • зберегти створений запит, надавши йому власне ім’я.

3.Виконати індивідуальне завдання (дивись завдання для самостійної роботи). Номери індивідуальних завдань видаються викладачем.

4.Результати виконання індивідуальних завдань занести у звіт.

5.Захистити звіт.

Теоретичні відомості

Умовні оператори при відсутності порожніх значень повертають або TRUE (істина), або FALSE (хибність). Якщо ж у стовпці присутні порожні значення, то може бути повернуте й третє значення: UNKNOWN (невідомо).

У цій схемі, наприклад, умова WHERE А = 2, де А - ім'я стовпця, значення якого можуть бути невідомі, при А = 2 буде відповідати TRUE, при А = 4 у результаті буде отримане значення FALSE, а при відсутнім значенні А (NULL-значення) результат буде UNKNOWN. Порожні значення впливають на використання логічних операторів NOT, AND і OR.

Оператор NOT

Звичайний унарний оператор NOT повертає оцінку TRUE в FALSE і навпаки. Однак NOT NULL як і раніше буде повертати порожнє значення NULL. При цьому варто відрізняти випадок NOT NULL від умови IS NOT NULL, що є протилежністю IS NULL, відокремлюючи відомі значення від невідомих.

Оператор AND

  • Якщо результат двох умов, об'єднаних оператором AND, відомий, то застосовуються правила булевої логіки, тобто при обох твердженнях TRUE складене твердження також буде TRUE. Якщо ж хоча б одне із двох тверджень буде FALSE, то складене твердження буде FALSE.

  • Якщо результат одного із тверджень невідомий, а іншої оцінюється як TRUE, то стан невідомого твердження є визначальним, і, отже, підсумковий результат також невідомий.

  • Якщо результат одного із тверджень невідомий, а іншої оцінюється як FALSE, підсумковий результат буде FALSE.

  • Якщо результат обох тверджень невідомий, то результат також залишається невідомим.

Оператор OR

• Якщо результат двох умов, об'єднаних оператором OR, відомий, то застосовуються правила булевої логіки, тобто: якщо хоча б одне із двох тверджень відповідає ТRUE, те й складене твердження буде TRUE, якщо обоє твердження оцінюються як FALSE, те складене твердження буде FALSE.

  • Якщо результат одного із тверджень невідомий, а іншої оцінюється як TRUE, підсумковий результат буде TRUE.

  • Якщо результат одного із тверджень невідомий, а іншої оцінюється як FALSE, то стан невідомого твердження має визначальне значення. Отже, підсумковий результат також невідомий.

  • Якщо результат обох тверджень невідомий, то результат також залишається невідомим.

Примітка

Відсутні (NULL) значення доцільно використовувати в стовпцях, призначених для агрегування, щоб витягти переваги зі способу обробки порожніх значень у функціях COUNT і AVERAGE. Практично у всіх інших випадках порожніх значень варто уникати, тому що при їхній наявності істотно ускладнюється коректна побудова умов відбору, приводячи іноді до непередбачених результатів вибірки. Для індикації ж відсутніх, непридатних або з якоїсь причини невідомих даних можна використовувати значення за замовчуванням, встановлювані заздалегідь (наприклад, за допомогою команди CREATE TABLE ).

Упорядкування вихідних полів (ORDER BY)

Як ми вже відзначали, записи в таблицях реляційної бази даних не впорядковані. Однак дані, виведені в результаті виконання запиту, можуть бути впорядковані. Для цього використовується оператор ORDER BY, що дозволяє впорядковувати виведені записи у відповідності зі значеннями одного або декількох обраних стовпців. При цьому можна задати зростаючу (ASC) або зменшувану (DESC) послідовність сортування для кожного зі стовпців. За замовчуванням прийнята зростаюча послідовність сортування.

Приклад 1. Запит, що дозволяє вибрати всі дані з таблиці предметів навчання SUBJECT з упорядкуванням по найменуваннях предметів, виглядає таким чином :

SELECT *

FROM SUBJECT

ORDER BY SUBJ_NAME;

Приклад 2. Той же список, але впорядкований у зворотному порядку, можна одержати запитом:

SELECT *

FROM SUBJECT

ORDER BY SUBJ_NAME DESC;

Приклад 3. Можна впорядкувати виведений список предметів навчання за значеннями семестрів, а усередині семестрів - по найменуваннях предметів.

SELECT *

FROM SUBJECT

ORDER BY SEMESTER, SUBJ_NAME ;

Конструкція ORDER BY може використовуватися з GROUP BY для впорядкування груп записів. При цьому оператор ORDER BY у запиті завжди повинен бути останнім.

Приклад 4.

SELECT SUBJ_NAME, SEMESTER, MAX (HOUR)

FROM SUBJECT

GROUP BY SEMESTER, SUBJ_NAME

ORDER BY SEMESTER;

При впорядкуванні замість найменувань стовпців можна вказувати їхні номери, маючи, однак, на увазі, що в цьому випадку це номери стовпців, зазначені при визначенні вихідних даних у запиті, а не номери стовпців у таблиці. Полем з номером 1 є перше поле, зазначене в конструкції ORDER BY - незалежно від його розташування в таблиці.

Приклад 5.

SELECT SUBJ_ID, SEMESTER

FROM SUBJECT

ORDER BY 2 DESC;

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

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