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

3.1. Лабораторна робота №1

Тема: Вибірка даних (оператор SELECT)

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

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

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

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

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

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

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

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

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

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

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

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

  • зберегти створений запит, надавши йому ім’я: «Запит1- номер прикладу – власне прізвище». Наприклад: Запит1-3-Коваль.

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

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

  3. Захистити звіт, надавши відповіді на контрольні запитання до лабораторної роботи.

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

Найпростіші SELECT-запити

Оператор SELECT (вибрати) мови SQL є найважливішим і найчастіше використовуваним оператором. Він призначений для вибірки інформації з таблиць бази даних. Спрощений синтаксис оператора SELECT має вигляд:

SELECT [DISTINCT] <список атрибутів>

FROM <список таблиць>

[WHERE <умова вибірки>]

[ORDER BY <список атрибутів>]

[GROUP BY <список атрибутів>]

[HAVING <умова >]

[UNION <вираз з оператором SELECT>];

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

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

Обов'язковим ключовим словом у реченні-запиті SELECT є слово FROM (з). За ключовим словом FROM вказується список розділених комами імен таблиць, з яких береться інформація.

Будь-який SQL-запит повинен закінчуватися символом «;» (крапка з комою).

Приклад 1. Розглянемо запит:

SELECT NAME, SURNAME

FROM STUDENT;

Наведений запит здійснює вибірку всіх значень полів NAME і SURNAME з таблиці STUDENT.

Його результатом є таблиця наступного виду:

NAME

SURNAME

Іван

Іваненко

Петро

Петренко

Вадим

Сидоренко

Борис

Ковалів

Ольга

Зайцева

Андрій

Павлов

Павло

Котів

Артем

Лукин

Антон

Петренко

Вадим

Буйнов

Елкин

Порядок знаходження стовпців у цій таблиці відповідає порядку полів NAME і SURNAME, зазначеному в запиті, а не їхньому порядку у вхідній таблиці STUDENT.

Якщо необхідно вивести значення всіх стовпців таблиці, то можна замість перерахування їхніх імен використати символ «*» (зірочка).

Приклад 2. Розглянемо запит:

SELECT *

FROM STUDENT;

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

Ще раз звертаємо увагу на те, що одержувані в результаті SQL-запиту таблиці не повною мірою відповідають визначенню реляційного відношення. Зокрема, у них можуть виявитися кортежі (рядки) з однаковими значеннями атрибутів.

Приклад 3: Створити запит «Список назв міст, де проживають студенти, відомості про які знаходяться у таблиці STUDENT».

SELECT CITY

FROM STUDENT;

Його результатом буде таблиця:

CITY

Одеса

Київ

Миколаїв

Бердянськ

Луцьк

Вінниця

Бєлгород

Вінниця

NULL

Вінниця

Видно, що в таблиці зустрічаються однакові рядки (виділені жирним шрифтом).

Для виключення з результату SELECT-запиту повторюваних записів використовується ключове слово DISTINCT (відмінний). Якщо запит SELECT витягає множину полів, то DISTINCT виключає дублікати рядків, у яких значення всіх обраних полів ідентичні.

Попередній запит можна записати в наступному виді:

SELECT DISTINCT CITY

FROM STUDENT;

У результаті одержимо таблицю, у якій дублікати рядків виключені:

CITY

Одеса

Київ

Миколаїв

Бердянськ

Луцьк

Вінниця

Бєлгород

NULL

Ключове слово ALL (усе), на відміну від DISTINCT, виконує протилежну дію, тобто при його використанні повторювані рядки включаються до складу вихідних даних. Режим, що задається ключовим словом ALL, діє за замовчуванням, тому в реальних запитах для цих цілей воно практично не використовується.

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

Приклад 4. Створити запит, що виконує вибірку імен (NAME) всіх студентів із прізвищем (SURNAME) Петров, відомості про які знаходяться у таблиці STUDENT:

SELECT SURNAME, NAME

FROM STUDENT

WHERE SURNAME = 'Петренко';

Результатом цього запиту буде таблиця:

SURNAME

NAME

Петренко

Петро

Петренко

Антон

У заданих в виразі WHERE умовах можуть використовуватися операції порівняння, обумовлені операторами = (дорівнює), > (більше), < (менше), >= (більше або дорівнює), < (менше або дорівнює), <> (не дорівнює), а також логічні оператори AND, OR і NOT.

Приклад 5. Створити запит для одержання імен і прізвищ студентів, що навчаються на третьому курсі й одержують стипендії (розмір стипендії більше нуля):

SELECT NAME, SURNAME

FROM STUDENT

WHERE KURS = 3 AND STIPEND > 0;

Результат виконання цього запиту має вигляд:

SURNAME

NAME

Петренко

Петро

Лукін

Артем