Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні робота ІДП 2-курс(книга).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
348.16 Кб
Скачать

Лабораторна робота № 12

Тема: MS Access. Мова SQL

Мета: Уміти створювати запити мовою SQL

План:

  1. Призначення мови SQL.

  2. Керування таблицями.

  3. Створення запитів на вибірку записів.

  4. Пошук даних у базі даних.

  5. Застосування команди SELECT.

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

  1. Призначення мови SQL. Мова SQL призначена для побудови баз даних і керування ними, головно для створення різноманітних запитів з метою відшукання потрібних даних. Мова SQL має більші можливості, ніж технологія QBE, є універсальнішою і дає змогу створити нестандартні запити. Мова стандартизована під назвою SQL АNSI 92 і реалізована в різних програмних середовищах та нарізних комп’ютерних платформах. У програмі МS Access мова використовується в дещо видозміненому і не цілком сумісному зі стандартом варіанті, що має назву SQL Microsoft Jet.

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

  1. Керування таблицями. Щоб перейти в режим SQL, потрібно відкрити будь-яку базу даних або під час створення нової бази даних перейти на закладку Запити і виконати команду Створити запит за допомогою конструктора. Після цього переходимо в режим SQL за допомогою команд з головного меню Вигляд Мова SQL. Отримаємо вікно для побудови запиту засобами мови, куди вводять речення мови.

Речення може починатися зі слів CREATE, SELECT, INSERT, UPDATE, DELETE, ALTER, DROP тощо. Повне речення називають конструкцією SQL (або запитом SQL). Воно складається з одної чи декількох команд і закінчується символом «;».

Виконують конструкцію команди Виконати або натискають на кнопку запуску запиту (!) на панелі інструментів.

Розглянемо головні команди і конструкції мови.

Для створення нової таблиці слід ввести команду.

CREATE TABLE таблиця (поле 1 тип 1, поле2 тип2,…);

Назву таблиці і полям дає користувач. Типи полів такі: integer – цілі числові дані; char або text (n) – текстові дані, де n – довжина даного; real – короткі дійсні числові дані; float – довгі дійсні числові дані; binary(n) – логічні дані зі значеннями 1, 0; counter – лічильник; datetime – дата і час; money – грошові дані; image – картинка.

Одне з полів можна зробити ключовим, дописавши після назви його типу службові слова PRIMARY KEY.

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

CREATE TABLE Склад1 ([Номер товару] inteqer, [Назва товару] text (30)? Ціна real, Кількість inteqer, імпорт bit, Картинка imaqe);

Модифікувати структуру таблиці можна такою командою:

ALTER TABLE таблиця дія COLOMN поле тип;

Над полем визначені такі дії:

ADD – додати, DROP – вилучити, ALTER – змінити тип поля.

Щоб всю таблицю з БД, виконують команду

DROP TABLE таблиця;

Додати запис у кінець створеної таблиці можна так:

INSERT INTO таблиця (поле1, поле2,…)

VALUES (значення1, значення2…);

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

UPDATE таблиця SET поле=вираз WHERE умова.

Приклад 1 Ввсти зміни в таблицю Склад1, якщо ціна телевізорів зменшилася на 10%. Розв’язок:

UPDATE Склад1 SET Ціна= *0,9

WHERE Назва=»телевізор»;

Записи вилучають з таблиці за допомогою команди

DELETE FROM таблиця WHERE умова;

Значення поля можна вилучити шляхом створення запиту на оновлення поля значенням Null.

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

SELECT предикат список полів

FROM таблиця (IN адреса зовнішньої БД на диску).

{WHERE умови пошуку}.

{GROUP BY ПОЛЕ ДЛЯ ГРУПУВАННЯ ЗАПИСІВ}

{HAVING ДОДАТКОВА УМОВА ПОШУКУ В ГРУПІ}

{ORDER BY СПИСОК ПОЛІВ ДЛЯ ВПОРЯДКУВАННЯ};

Команди, записані у фігурних дужках, є необов’язковими.

Предикатом лиже бути службове слово ALL (показати всі знайдені записи), ТОР n – показати перші n записів, ТОР n PERCENT – показати перші n% записів DISTINCT – показати лише різні записи.

Список полів містить назви полів, які відображатимуться у вибірці. Елементи списків відокремлюються комами. Усі поля таблиці позначаються так: таблиця.*або*, якщо розглядається одна таблиця.

Джерелом даних може бути одна або декілька таблиць з поточної чи зовнішньої бази даних.

Назви полів, якщо аони трапляються в різних таблицях, повинні бути доповнені назвами таблиць. Між двома назвами має стояти крапка, наприклад, Склад!. Ціна, Товари. Ціна.

Якщо таблиць є декілька, то їх оголошують списком у команді FROM. Якщо між двома таблицями є внутрішній зв’язок по деякому полю, наприклад, [Номер товару], то команду FROM треба писати так:

FROM таблиця1 INNER JOIN таблиця2

ON таблиця1. [Номер товару]=таблиця2 [Номер товару].

Команда ORDE BY призначена для впорядкування отриманих записів в алфавітному чи зворотному порядку. Відповідний напрямок упорядкування задається предикатами АВС чи DESC, що записується після назви поля.

Приклад 2 З таблиці Склад1 вибрати перші три записи з усіма полями про товари, ціна яких менша від 100грн.

Розв’язок:

SELECT TOP 3*

FROM Склад1

WHERE Ціна <100;

  1. Пошук даних в базі даних. Команда WHERE є найважливішою у конструкції SELECT. Власне вона призначена для відбору потрібних записів згідно з деяким критерієм (умови пошуку). Умова пошуку – це простий або складений логічний вираз. Простий логічний вираз – це два вирази, зж’єднані операцією відношення: =, <, >, <=, >=. Відношення «не рівно» позначається <> або !=.

Вирази можуть містити назви полів і сталі величини, з’єднані допустимими операціями. Складені логічні вирази утворюють з простих за допомогою логічних операцій NOT, AND, OR, XOR та інших, як це прийнято в умовах програмування Visual Basic чи Qbasic. Розглянемо приклади умов пошуку:

  1. [Назва товару]=»телефон»;

  2. [Дата виготовлення]= #5/21/05#;

  3. NOT Продавець=»Афоня» або Продавець!= «Афоня»;

  4. Мат > 3AND Фіз.> 3 AND Інформ>3;

  5. [Ціна товару] > 20,5 AND [Ціна товару]<85.

Для останнього прикладу є зручніша конструкція, компактніша, якщо назва поля довга:

[Ціна товару] BETWEEN 20,5 AND 85.

Усі товари за останні 30 днів:

Дата BETWEEN day() – 30 AND day().

Дати слід писати в американському стилі місяць/день/рік.

Для пошуку даних у текстових полях корисною є операція порівняння Like.

Приклад 3. З деякої таблиці вибрати всі записи про фірми, назва якої починається літерою «Д» і які є в містах, назви яких починаються від літери «А» до літери «Ж», погрупувавши фірми по містах, а в міста впорядкувавши за алфавітом.

Розв’язування:

SELEST *

FROM [Якась таблиця]

WHERE Фірма Like «Д» AMD Місто Like [A – Ж]

GROUP BY Місто

ORDER BY Місто;

Умови конструюють так само, як і в QBE , з однією відмінністю, що в логічних виразах SQL є назви полів.

Наведена вище конструкція SELEST призначена для створення запитів на вибірку записів в БД.

  1. Записування команди SELEST. Розглянемо такі застосування команди SELEST: 1) для статистичних обчислень у вибірці; 2) для побудови параметричних запитів; 3) для створення нового обчислювального поля; 4) запиту на створення нової таблиці; 5) запиту на додавання записів

1. Статистичні функції. Команду SELEST використовують для обчислення і виведення на екран значень статистичних функцій на полях вибірки. Перше речення у конструкції повинно бути таким:

SELEST список функцій.

Розглянемо деякі статистичні функції:

Count (поле) дає кількість записів, де це поле не порожнє (тобто є NOT Null, де Null – ознака порожнього поля);

Sum(поле) обчислює суму всіх числових значень поля;

First (поле), Last (поле) – значення полів у першому і останньому записах таблиці;

Min(поле), Max(поле) – мінімальне і максимальне значення у цих полях;

Avq(поле)

Stdev(поле), Stdevp(поле) середньоквадратичні відхилення в полі.

Приклад 4. Визначити середню ціну товарів, що є на складі:

SELECT Avq(Ціна) AS t

FROM Склад 1;

Результат t потрібно переписати з екрана.

2. Запит з параметром. Щоб вивести на екран вибірку всіх товарів, ціна яких менша за середню, потрібно виконати такий параметричний запит:

SELEST *

FROM Склад1

WHERE Ціна<z;

Якщо деяка назва у команді WHERE не збігається з назвою поля поточної бази даних, то вона розглядається як назва параметра в параметричному запиті. Відкривається вікно, куди слід ввести значення параметра (у нашому випадку це значення беремо з попереднього прикладу – t). Зверніть увагу: у команді WHERE застосовувати статистичні функції не можна.

3. Запит на створення нового обчислювального поля. Наступне застосування команди SELECT – це створення нового обчислювального поля, наприклад Сума, так:

SELECT Ціна, Кількість, Ціна*Кількість AS Сума

FROM Cклад1;

Якщо обчислення містить розгалуження, то використовують функцію IIF – «якщо». Загальний вигляд функції IIF такий: IIF(умова, значення1, значення2), де значення1 надається полю, якщо умова істинна, а значення2, якщо – хибна. Значення в полі може змінюватися залежно від деякої умови. Наприклад, якщо деяке числове поле Кількість у вибірці не містить жодного значення, то його можна продублювати полем Нова Кількість так, щоб на місці порожніх значень поля було число 0:

SELECT Ціна, Кількість IIF (Кількість IS NULL, 0, Кількість), AS

Нова кількість

FROM Cклад1;

4. Запит на створення нової таблиці. Нову таблицю можна створити за допомогою такого запиту:

SELECT список полів таблиці-джерела

INTO нова таблиця {IN зовнішня БД}.

FROM таблиця-джерело.

(WHRE умова);

5.Запит на додавання записів. Запит на додавання записів у таблицю1 з іншої таблиці2 має такий вигляд:

INSERT INTO таблиця (поле1, поле2,…)

SELECT поле1 таблиця2, поле2таблиці2,…

FROM таблиця2

{WHERE умова};

Методику створення деяких інших запитів мовою SQL можна вивчати шляхом конструювання відповідного запиту QBE і перетворення його в запит SQL. Інформацію про нові службові слова мови SQL можна отримати з файлів довідок.