- •Лабораторна робота № 1
- •Лабораторна робота № 2
- •Лабораторна робота № 3
- •Лабораторна робота № 4
- •Лабораторна робота № 5
- •Зміст роботи: створити запити мовою sql з використанням інструкцій insert, delete, update.
- •Лабораторна робота № 6
- •Зміст роботи: створити підпорядковані запити мовою sql.
- •Лабораторна робота № 7
- •Лабораторна робота № 8
Лабораторна робота № 3
Тема: «Запити на вибірку з однієї таблиці. Запити с параметрами».
Мета : Навчити студентів створювати запити на вибірку мовою SQL.
Зміст роботи: створити запити мовою SQL на вибірку даних з однієї таблиці, використовуючи операції порівняння, шаблон в умові WHERE, сортування ORDER BY, функції для обробки даних типу DateTime, арифметичні вирази та задання альтернативних імен стовпців в запиті SELECT.
Форма звіту:
створені запити
протокол лабораторної роботи
Теоретичні відомості
Для пошуку і виводу даних, що задовольняють заданим умовам, включаючи дані з декількох таблиць, використовується запит. Запит також може оновлювати або видаляти декілька записів одночасно і виконувати стандартні або призначені для користувача обчислення з даними. Запити використовуються для перегляду, зміни і аналізу даних з таблиць БД різними способами. Запити також можна використовувати як джерела записів для форм та звітів.
Запит SQL - це запит до бази даних, створений за допомогою команд SQL. Мова SQL (Structured Query Language) використовується при створенні запитів, а також для оновлення і управління реляційними базами даних, такими як бази даних MS Access.
В MS Access є декілька типів запитів.
Запити на вибірку (з параметрами та без них)
Підпорядковані запити,
Запити на модифікацію даних
Запити на модифікацію таблиць
Запит на вибірку є типом запиту, що найбільш часто використовується. Запити цього типу повертають дані з однієї або декількох таблиць і відображають їх у вигляді таблиці, записи в якій можна обновляти (з деякими обмеженнями). Запити на вибірку можна також використовувати для угрупування записів і обчислення сум, середніх значень, підрахунку записів і знаходження інших типів підсумкових значень.
Запит на вибірку з параметрами - це запит, який при виконанні відображає у власному діалоговому вікні запрошення ввести дані, наприклад, умову для повернення записів або значення, яке вимагається вставити в поле. Можна розробити запит, що виводить запрошення на введення декількох одиниць даних, наприклад, двох дат. Потім MS Access може повернути всі записи, що приходяться на інтервал часу між цими датами.
Запити з параметрами також зручно використовувати як основи для форм, звітів. Наприклад, на основі запиту з параметрами можна створити місячний звіт про доходи. При друці даного звіту MS Access виводить на екран запрошення ввести місяць, доходи за який повинні бути приведені в звіті. Після введення місяця Microsoft Access виконує друк відповідного звіту.
Інші типи запитів будуть розглянуті в наступних лабораторних роботах.
Для того, щоб створити новий запит і задати для нього інструкцію SQL, необхідно в меню «Створення» вибрати пункт «Конструктор запитів» і перейти до режиму «SQL». Відкриється вікно для вводу нових команд SQL (рис.3.1).
Рисунок 3.1 – Вікно для введення команд SQL
Після введення команд запит слід виконати. Для цього необхідно натиснути піктограму « ! » («Виконати запит») на панелі інструментів. Якщо запит сформовано правильно і він не має помилок, то вікно з командами SQL буде замінено на вікно з результатом виконання цього запиту. Якщо в тексті запиту було допущено помилки, то з’явиться вікно з повідомленням про помилку.
Інструкція SELECT (запит на вибірку ) призначена для отримання записів з бази даних у вигляді набору записів. SELECT - найчастіше перше слово в інструкції SQL. Більшість інструкцій SQL є запитами SELECT або SELECT INTO. Запити SELECT не змінюють дані в базі даних - вони тільки відбирають дані.
Синтаксис інструкції SELECT має наступний вигляд:
SELECT [DISTINCT] {*| ім'я поля1 [AS нове ім'я][, ім'я поля2 [AS нове ім'я][…}
FROM ім'я таблиці1[, ім'я таблиці2]
[WHERE умова вибірки або з'єднання]
[GROUP BY Список полів для угрупування]
[HAVING умова відбору для групи]
[ORDER BY Список полів, по яких треба упорядкувати результат [ASC|DESC]];
Ключове слово SELECT повідомляє СУБД, що це команда - запит. Всі запити на вибірку починаються цим словом з подальшим пропуском. За ним може слідувати (необов’язково) ключове слово DISTINCT, яке означає, що в результуючий набір рядків включаються тільки різні рядки, тобто дублікати рядків не включаються в набір. Символ * (зірочка) означає, що в результуючий набір включаються всі стовпці з початкових таблиць запиту. Замість зірочки можна вказати імена стовпців, значення з яких необхідно вибрати (Якщо назва стовбця складається з декількох слів, то назва береться в квадратні дужки «[ ]»). Якщо в список полів потрібно включити поля, наявні більш ніж одній з таблиць (однакові імена полів в таблицях), ці поля потрібно специфікувати ім'ям таблиці з оператором « . » (крапка). Пропозицією AS можна встановити для стовпців альтернативні (можливо більш описові або економні) імена.
Інструкція SELECT завжди містить пропозицію FROM, після якої вказано таблицю або декілька таблиць, з яких відбираються записи.
Приклади найбільш простих запитів:
SELECT *
FROM Студенти;
SELECT [Код студента], Прізвище
FROM Студенти
SELECT Назва as [Повна назва], [Скорочена назва]
FROM Спеціальності
Результатом останнього запиту будуть наступні дані (рис. 3.2).
Рисунок 3.2 - Вікно з результатом запиту
Все подальші пропозиції інструкції SELECT є необов'язковими.
Пропозиція WHERE задає додаткові умови для вибору, тобто визначає, які саме записи з таблиць повинні бути включені в результат інструкції SELECT. Якщо пропозиція WHERE не специфікується, запит повертає всі рядки з таблиць.
Пропозиція ORDER BY сортує записи, одержані в результаті запиту, у порядку зростання або убування на основі значень вказаного поля або полів. За умовчанням використовується порядок сортування за збільшенням (від А до Я і від 0 до 9). Для сортування по спаданню (від Я до А і від 9 до 0) слід додати зарезервоване слово DESC після імені поля. Пропозиція ORDER BY може містити декілька полів. Спочатку записи сортуються по першому полю в списку ORDER BY, потім записи, що мають співпадаючі значення в першому полі сортуються по другому полю і т. д.
Приклад запиту, що повертає сортовані прізвища студентів 3-го курсу.
SELECT Прізвище
FROM Студенти
WHERE Курс=3
ORDER BY Прізвище
Результат виконання запиту представлено на рис. 3.3.
Рисунок 3.3 – Вікно з результатом запиту
Операції мови SQL, вживані для завдання умови вибірки, наприклад в WHERE, можна розділити на:
1. Операції порівняння дозволяють порівняти значення двох виразів.
( < , >, =, <>, <=, >= ).
Логічні операції:
BETWEEN… AND - визначає приналежність значення виразу вказаному діапазону;
LIKE - використовується для завдання шаблону для вибору;
IN - перевіряє, чи співпадає значення виразу з одним з елементів вказаного після IN списку;
IS NULL – перевірка на пусте значення поля;
Операції об'єднання
AND - об'єднання декількох умов шляхом операції логічного множення (має виконуватись обидві умови);
OR - об'єднання декількох умов шляхом операції логічного додавання (має виконуватися одна з вказаних умов).
Операція заперечення (операція NOT).
Для задання значень, що мають вводитися з екрану і передаватися до запиту, необхідно у запит ввести конструкцію «[ ]». У дужках можна вказати повідомлення, що буде виводитися у вікні, що з’явиться на екрані при виконанні запиту. Наприклад, як в наступному прикладі.
SELECT Прізвище
FROM Студенти
WHERE Курс = [Вкажіть номер курсу]
Вікно для введення номеру курсу та результат запиту приведено на рисунку 3.4.
Рисунок 3.4 – Виконання запиту з параметром
Для розрахунку значень обчислюваних стовпців результуючого набору даних використовуються арифметичні вирази. При цьому в списку стовпців, що повертаються, після SELECT замість імені обчислюваного стовпця указується вираз. У виразах можна використовувати операції – додавання («+»), віднімання («-»), ділення («/») і т.д.
Для обробки значень полів, які мають тип DateTime (Дата\Час) використовуються наступні функції:
Date () - повертає поточну дату;
Year (ім'я поля) - повертає значення року;
Month (ім'я поля) – повертає номер місяця
Day (ім'я поля) - повертає номер дня.
Прикладом запитів для полів дати та часу може стати наступний запит, який має показати прізвища студентів, які народилися в 1996 році.
SELECT Прізвище
FROM Студенти
WHERE YEAR([Дата народження])= 1996
Контрольні питання
Дайте визначення запиту до бази даних.
Які види запитів існують?
Що таке запит на вибірку, запит з параметрами?
Що таке SQL?
Для чого використовуються оператори SQL – SELECT, FROM, WHERE?
Що таке обчислювані поля, як вони задаються?
Як задати нестандартне ім’я для обчислюваного поля?
Яка інструкція використовується для вибірки даних?
Назвіть обов’язкові пропозиції інструкції SELECT.
Як задати порядок сортування?
Назвіть призначення логічних операцій в пропозиції WHERE.
Як виділити рік (місяць, день) з дати?
Виконання роботи
Створіть запити мовою SQL:
Отримати інформацію про всі спеціальності.
Отримати список дисциплін першого семестру, розташувавши назви за абеткою
Отримати анкетні дані студента, прізвище якого вводиться з екрану.
Отримати список студентів 3-го курсу, які народилися у вересні та вказати їх вік. Розташувати результат за спаданням віку. Для віку задати альтернативне ім’я стовпця.
Отримати список студентів, у яких не вказано номер телефону.
Отримати список дисциплін, які починаються на «Інф»
Виконайте запити.
Збережіть запити в базі даних.
Зміст звіту:
Титульний лист
Постановка завдання
Запити мовою SQL
Результати виконання запитів
Відповіді на контрольні питання
Висновки
