Короткі відомості про моделі даних



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Короткі відомості про моделі даних



Зміст

 

Вступ..................................................................................................... 3

1. Короткі відомості про моделі даних............................................... 9

1.1. Реляційна алгебра..................................................................... 10

1.2. Основні поняття та нормалізація відношень реляційної бази даних 12

2. Сутність та особливості мови запитів SQL.................................. 14

2.1. Структурована мова запитів.................................................... 14

2.2. Особливості використання мови SQL...................................... 15

3. Оператори та синтаксис мови SQL.............................................. 19

3.1. Синтаксис SQL......................................................................... 19

3.2.Ключові слова............................................................................ 21

3.3. Створення SQL-інструкцій (на стадії ознайомлення).............. 24

3.4. Групи SQL – інструкцій........................................................... 25

3.5. Методи виконання SQL-операторів......................................... 28

4. Принципи застосування мови SQL в системі управління базами данних Access 29

5. Використання SQL для розробки запитів в Access...................... 31

5.1. Звичайні вибірки SQL та вибірки з умовою для однотабличних запитів 31

5.2. Багатотабличні запити............................................................. 44

6. Вибранні питання роботи з операторами SQL, що змінюють структуру бази даних 64

6.1. Створення таблиці.................................................................... 64

6.2. Спеціальні запити SQL об’єднання.......................................... 72

6.3. Короткі відомости про використання Ассеss як сервераDDE 75

7. Лабораторні роботи....................................................................... 85

7.1. Лабораторна робота №1.......................................................... 85

7.2. Лабораторна робота № 2......................................................... 93

7.3. Лабораторна робота № 3......................................................... 96

7.4. Лабораторна робота № 4......................................................... 99

7.5. Лабораторна робота № 5....................................................... 101

7.6. Лабораторна робота № 6....................................................... 108

7.7. Лабораторна робота № 7....................................................... 112

8. Питання до контролю.................................................................. 114

Додаток А. Приклад реляційної моделі даних............................... 120

Додаток Б. Послідовні нормальні форми та вимоги до них.......... 124

Додаток В. Приклади використання інструкцій SQL для організації DDE із інших додатків............................................................................................. 130

Література........................................................................................ 137

Вступ

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

1. масове використання інформаційних ресурсів різних додатків;

2. розширення функцій обробки даних додатків;

3. колективний доступ до інформаційних ресурсів додатків.

Коротко охарактеризуємо кожну з можливостей сучасних інформаційних технологій.

1. Масове використання інформаційних ресурсів різних додатків, наприклад у додатках Microsoft Office, здійснюється за рахунок підтримки динамічного обміну даними (DDE) двох додатків, що забезпечує автоматичний запуск і відкриття файла з даними.

Перетворення форматів файлів виконується за допомогою зовнішніх та внутрішніх конверторів. Зовнішні конвертори підтримують доступ до баз даних за допомогою стандартної мови SQL.

2. Розширення функцій обробки даних додатків досягається за рахунок:

¨ використання інформаційної технології OLE – зв’язування і впровадження різнорідних об’єктів у додатку;

¨ реалізації компонентної моделі об’єктів у додатках;

¨ підтримки протокола динамічного обміну даними.

3 Колективний доступ до інформаційних ресурсів додатків підтримується: зміною статуса документа - “общий документ”, документуванням змін, додаванням приміток рецензентів, використанням редакторської правки документа, тощо.

Метою роботи є ознайомлення студентів з сутністю, особливостями мови запитів SQL та її значенням і основними можливостями для підтримки доступу до даних.

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

Навчальний посібник підготовано для допомоги студентам в опануванні дисципліни “Системи управління базами даних. У посібнику розглядається технологія створення запитів SQL. Посібник може бути корисним для фахівців, які у додатках, обраних фахівцями, працюють з даними, що зберігаються та корегуються засобами СУБД реляційного типу. Наприклад, на підприємстві періодично проводиться статистичний аналіз результатів роботи фірми за звітні періоди. Дані зберігаються у реляційній СУБД. Фахівець обирає зручний для обробки статистичний пакет, наприклад, STATGRAF, звертається із обраного додатка до таблиць чи запитів СУБД та здійснюює необхідну обробку.

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

У посібнику відсутні опис елементів технології роботи з базами даних і роботи з майстрами та конструкторами для створення об’єктів, що.працюють під управлінням систем управління базами даних реляційного типу (РСУБД).

Запропонований посібник присвячено розгляду технології використання інструкцій SQL та їх практичній реалізації в Microsoft Access.

Метою посібника є допомога студентам в оволодінні основними принципами розробки інструкцій SQL, що є необхідним при розробці додатків, бо програмістам необхідно вбудовувати SQL оператори у програмні коди додатків, які управляються даними.

Історично так склалося, що мова SQL стала головною мовою реляційних баз даних і отримала широке розповсюдження незалежно від інформаційних продуктів, платформ і середовищ операційних систем. Мова SQL є стандартною мовою управління базами даних і в тому чи іншому вигляді реалізується майже у всіх реляційних базах даних. Це вірно у випадках використання таких РСУБД як MySQL, SQL Server, DB2, Oracle, PostgreSQL, Microsoft Access. Головною задачею SQL є надання дозволу РСУБД взаємодіяти з даними.

Посібник складається із 7 структурних розділів. У посібник включено список літератури, модульні контрольні питання, додатки, контрольні питання. Розділи вказуються порядковим номером (без слова розділ).

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

Другий розділ присв’ячено розгляду призначення та особливостей використання мови SQL.

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

У четвертому розділі розглядаються принципи застосування SQL в Microsoft Access при створенні об’єктів Access, які працюють з даними бази даних.

П’ятий розділ присв’ячено вивченню питань використання SQL для розробки запитів у Access. Розглядаються приклади.

У шостому розділі вивчаються вибрані питання роботи з операторами SQL, що можуть змінювати структуру бази даних. До цих питань включено: створення таблиць; розробка спеціальних запитів SQL на об’єднання; короткі відомості про використання Access як сервера DDE.

У сьомому розділі вказані лабораторні роботи, завдання та контрольні питання. З метою повторення та поглиблення вивчення технології доступу до даних засобами мови SQL та для поліпшення використання теоретичного матеріалу, до підрозділів, які описують поточну лабораторну роботу, включено короткі теоретичні довідки.

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

Дана робота відповідає вимогам та принципам впровадження європейської кредитно-модульної системи в організацію освітнього процесу вищих навчальних закладів. Структура посібника відповідає робочій програмі дисципліні «Системи управління базами даних», яка читається студентам першого курсу, що навчаються за напрямом “Комп’ютерні науки”.

Матеріал, що ввійшов до посібника, за змістом відповідає другому модулю робочої програми дисципліни «Системи управління базами даних», яка викладається для студентів, що навчаються за напрямом «Комп’ютерні науки» на першому курсі.

У роботі прийнято умовне позначення: $ - завдання для самостійного перегляду.

 

 


Реляційна алгебра

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

Коротка характеристика основних реляційних операцій наведена у таблиці 1.1.

Таблиця 1.1.

Стисла характеристика реляційних операцій

Операція Позначення Результативне відношення Примітка
Теоретико-множинні операції
Об’єднання відношень (А та В) А UNION B Множина усіх кортежів, які належать А чи В, або обом разом Якщо в операції приймають участь два відношення, то вони мають бути сумісними
Перетин відношень (А та В) A INTERSECTION B Множина усіх кортежів, які належать як А так і В
Різниця відношень (А та В) A MINUS B Множина усіх кортежів, які належать А але не належать В
Прямий декартовий добуток двох відношень (А та В) A TIMES B Конкатенація кортежів
Спеціальні реляційні операції
Обмеження відношення А SELECTION Підмножина відношення, що складається із кортежів А, які відповідають певній логічній умові Логічну умову прийнято називати “предикатом

 

Охарактеризуємо деякі із операцій:

Проекція відношення А являє собою підмножину відношення А, яка включає лише відібрані атрибути. Це оператор побудови “вертикальної” підмножини відношення А

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

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

Операція присвоєння дозволяє зберігати результат обчислення реляційного виразу в існуючому відношенні бази даних.

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

 

Структурована мова запитів

 

Реляційна алгебра надала можливість розробки алгоритмів роботи з Таблицями.

Дослідження реляційних баз даних в другій половині минулого сторіччя показали, що традиційні мови програмування, такі як COBOL, FORTRAN не підходили для баз даних реляційного типу і виникла потреба розробки певної спеціальної мови. Пропонувались різні мови, але лише одна із них набула певної популярності. Згодом ця мова отримала назву SQL (Structured Query Language- структурована мова запитів).

SQL була вперше реалізована фірмою ІВМ під назвою Structures English Query Language-(SEQUEL). Вона була орієнтована на управління прототипом реляційної бази даних IBM – System R. У подальшому SQLстає стандартом мови роботи з реляційними базами даних, що було зафіксовано у 1986 році Американським національним інститутом стандартів (ANSI). Наступними стандартами SQL стали стандарти ANSI SQL-92, ISO SQL-92, X / Open, SQL:2003 (ISO – Національна організація стандартів, X / Open- група стандартів для Unix). Друковану копію стандарта ANSI/ ISO SQL:2003 можна придбати в електронному магазині ANSI Standards Store за адресою http://webstore.ansi.org. Вона складається із 14 частин, кожну із яких потрібно придбати окремо.

Разом з моделями баз даних з’являються і системи управління базами даних (СУБД). Тому недивно, що з’явились реляційні системи управління базами данних (РСУБД).

Головною відмінністю РСУБД є те, що вони мають справу виключно з реляційними базами даних: підтримують не лише зберігання даних у вигляді Таблиць, але і відношення між цими Таблицями.

Реляційні моделі даних стають популярними: зростає число додатків, в яких використовується реляційна модель для зберігання і управління даними. Серед таких продуктів можна назвати-Access, DB2, Oracle, SQL Server, MY SQL.

 

Синтаксис SQL

 

В основі кожного SQL –оператора лежить синтаксис. Синтаксис вказує як можна створити потрібний оператор і являє собою своєрідний “план” (або “шаблон”) побудови оператора. При створення операторів рекомендується притримуватись синтаксису операторів.

Синтаксис для кожного оператора свій і за допомогою ключових слів вказує:

· власну структуру;

· обов’язкові елементи;

· додаткові опції, які можна застосувати для уточнення даного оператора.

Одні оператори мають невелику кількість елементів, синтаксис інших може займати не одну сторінку. Потрібно зауважити, що є елементи, які присутні в усіх операторах. У різних продуктах РСУБД елементи синтаксиса можуть виглядати по-різному, але у більшості випадків використані символи співпадають.

В контексті синтаксису оператора , як правило, присутні умовні символи (умовні позначення), див. Табл. 3.1.

Таблиця 3.1.

Умовні позначення, що прийняті в синтаксисіSQL- операторів

Умовне позначення Значення
| (вертикальна риска) Опції, з яких можна обирати (одну або більше), відділяються вертикальною рискою.
[ ] *(квадратні дужки) Вказують, що елемент, заключений в квадратних дужках, є необов’язковим.
< > (кутові дужки) Вказують, що на місці текста, заключеного в кутових дужках, потрібно вказати конкретне значення
{ } (фігурні дужки) Вказують, що синтаксис, заключений в фігурних дужках, має сприйматись як єдине ціле, тобто потрібно використати усі елементи, окрім тих, що розділяються вертикальною рискою.
… (три крапки) Попередня конструкція може повторитись необхідне число разів.
:= (дві двокрапки та знак рівності) Аналог присвоєння.

 

Наприклад, у Access інструкция CREATE TABLE використовується для опису нової таблиці, її полів та індексів. Якщо для поля вказано обмеження NOT NULL, то це поле повинно мати допустимі дані при додаванні нових записів.

Синтаксис:

CREATE TABLE таблиця (поле_1 тип [(размер)]

[NOT NULL] [индекс_1] [, поле_2 тип [(размер)]

[NOT NULL] [индекс_2] [, ...]] [, CONSTRAINT составнойИндекс [, ...]])

 

Нижче перераховані аргументи інструкції CREATE TABLE:,див. Табл.3.2.

Таблиця 3.2.

Аргументи інструкції CREATE TABLE

Аргумент (елемент) Значення
таблиця Ім’я таблиці, що створюється.
поле_1, поле_2 Імена одного або кількох полів, що створюються у в новій таблиці. Таблиця повинна мати хоча б одне поле.
тип Тип даних поля у новій таблиці.
размер Размір поля в символах (лише для текстових та двійкових полів).
индекс_1, индекс_2 Елемент CONSTRAINT, який призначено для створення простого індекса.
составнойИндекс Елемент CONSTRAINT, який призначено для створення складного індекса

Ключові слова.

Ключові слова-це зарезервовані слова, які єчастиною словника SQL. Ключові слова визначають дію оператора та спосіб виконання оператора. Як правило, ключові слова представлені великими літерами (для зручності читння). Насправді, SQL є мовою нечуттєвою до регістрів, символів табуляції, розриву рядків, зайвих пробілів. Але для зручності читання оператори розбивають на кілька рядків.

Усі ключові слова можна поділити на наступні категорії:

· команди - дієслова, що визначають дії, які необхідно виконати, наприклад -select, create table;

· умови - обмежують діапазон значень елементів, що входять до запиту, наприклад –where. За ключовими словами даної категорії вказують умови вибору. Останні часто називають “предикати”;

· модифікатори -змінюють виконання команди, наприклад order by.

· статистичні (агрегатні) функції- повертають одне результативне значення, що обчислюється для певного набору даних;

· інші ключові слова. змінюють дії команди чи управляють вказівником поточного запису, за допомогою якого вибираються чи будуються окремі рядки запиту.

Як приклад використання ключових слів, наведемо синтаксис інструкції SELECT. За допомогою такої інструкції ядро бази даних (Microsoft Jet) повертає дані з бази даних у вигляді записів.

Синтаксис інструкції SELECT:

 

SELECT [предикат] { * | таблиця.* | [таблиця.]поле_1

[AS псевдоним_2] [, [таблиця2.]поле_2 [AS псевдоним_2] [, ...]]}

FROM выражение [, ...] [IN внешняяБазаДаних]

[WHERE... ]

[GROUP BY... ]

[HAVING... ]

[ORDER BY... ]

[WITH OWNERACCESS OPTION]

 

Аргументи інструкціїї SELECT

 

Елемент Опис
предикат Предикати використовуються для обмеження числа записів, які повертаються. Можуть приймати одне із наступних значень умов вибору: ALL, DISTINCT, DISTINCTROW або TOP. Якщо предикат не вказано, то по замовчуванню використовується предикат ALL (із таблиці відбираються усі записи).
* Вказує, що потрібно відібрати усі поля заданої таблиці (або таблиць).
таблица Ім’я таблиці, з якої потрібно вибирати записи.
поле_1, поле_2 Імена полів, з яких мають бути відібрані дані. Якщо включити кілька полів, вони будуть вибиратись у вказаному порядку.
псевдвоним_1, псевдвоним_2 Імена, які стануть заголовками стовпчиків замість початкових імен стовпчиків у таблиці.
выражение Імена однієї або кількох таблиць, які мають дані, що відбираються.
внешняяБазаДаних Ім’я бази даних, яка вміщує таблиці. Ім’я бази даних вказується за допомогою аргумента, у випадках, коли таблиці, з яких відбираються дані не знаходяться у поточній базі даних.

 

Інструкціїї SELECT можуть мати різноманітну структуру при практичній реалізації і не змінюють дані у базі даних.

Мінімальний синтаксис інструкціїї SELECT:

 

SELECT поля FROM Таблица.

 

Для першого знайомства та ілюстрації принципів використання інструкціїї SELECT наведемо кілька варіантів її застосування.

Якщо більше ніж одна із Таблиць, включених в речення FROM, мають у своєму складі поля з однаковими іменами, перед ім’ям такого поля слід ввести ім’я таблиці і оператор “ .” (крапка). Припустимо, що поле "Відділ" є в Таблицях "Співробітники" і "Очільники". Наступна інструкція SQL відбере поле "Відділ" з таблиці "Співробітники" і поле "Очільник" з таблиці "Очільники":

 

SELECT Співробітники.Відділ, Очільники.Очільник

FROM Співробітники INNER JOIN Очільники

WHERE Співробітники.Відділ = Очільники.Відділ;

 

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

У наступному прикладі заголовок "Народження" стає новим ім’ям

 

SELECT [Дата народження]

AS Народження FROM Співробітники;

 

При роботі із статистичними функціями також використовують речення AS для того, щоб задати нове ім’я для результуючого значення:

 

SELECT COUNT(КодСпівробітника)

AS Чисельність FROM Співробітники;

 

Групи SQL – інструкцій

 

Як було відзначено раніше, SQL-оператори призначені для виконання операцій реляційної алгебри. Взагалі, мова SQL- це множинно – орієнтована мова, що має статус стандартної мови запитів реляційних БД, але не має:

· засобів управління потоками;

· засобів організації інтерфейсу.

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

Усі команди мови SQL можна розділити на такі групи, див. Табл. 3.3.

Таблиця 3.3.

Групи SQL за функціональним призначенням

№ п/п SQL-оператор Призначення Примітка
DDL-Мова визначення даних (Data Definition Language)
1.1     1.2.   1.3. 1. Робота зі структурою бази даних
CREATE DATEBASE   DROP DATEBASE Створення БД   Вилучення БД  
2. Робота зі структурою Таблиць
CREATE TABLE   ALTER TABLE RENAME TABLE DROP TABLE Cтворення структури таблиці Зміна структури таблиці Перейменування Вилучення Не підходять для Таблиць, у яких вже зберігаються дані.
3. Робота з індексами
CREATE INDEX   DROP INDEX Створення індексу   Вилучення індексу  
2. DML-Мова маніпулювання даними -Data Manipulation Language ( Дії відносяться до даних, які зберігаються у базі даних.)
2.1. Запити до однієї чи кількох Таблиць
  SELECT Вибір даних У запитах завжди використовується SELECT. Інструкція може бути як дуже простим, так і дуже складним у різних випадкаї
2.2. Вставити дані у таблицю
  INSERT REPLACE LOAD DATA INFILE   Відносяться до Таблиць у яких зберігаються дані.
2.3. Оновлення існуючих даних у Таблицях
  INSERT REPLACE      
2.4. Вилучення даних із таблиці
  DELETE FROM      
3. DCL-Мова управління доступом до даних -Data Control Language
3.1. Дозволяють задати права користувача на певні об’єкти бази даних
  GRANT Надає привілеї доступа користувачам Доступ дозволяється лише до певних Таблиць і лише певним привілегійованим користувачам.
  REVOKE Відміняє привілеї доступа користувачів
3.2. Управління транзакціями ( з метою підтримки цілосності даних)
  COMMIT   SAVEPOINT     ROLLBACK Фіксація у базі даних усіх змін, виконаних поточною транзакцією.   Встановлення точки початку транзакції   Скасування змін, зроблених з момента початку транзакції Транзакція—логічно закінчена одиниця роботи , що складається з однієї або кількох елементарних операцій оброблення даних. Дії по транзакції або виконуються повністю, або повністю скасовуються. Транзакція починається з моменту, встановленого інструкцією SАVEPOINT і може бути виконана по команді COMMIT або скасована по ROLLBACK
                 

Створення запитів SQL

Для створення запитів SQL необхідно:

· На вкладці Запити , натиснути кнопку Создать, вибрати Конструктор, не відбираючи Таблиць для запиту, закрити вікно Добавление таблиці.

· Режим SQL можна викликати команду меню Запит, Запит SQL або використати кнопку Вид.

· Ввести інструнцію SQL.

Інструкції SQL можуть будуватись автоматично.

4.1.3. Можливості використання SQL для розробки об’єктів Ассess

Інструкції SQL можуть бути використані у Microsoft Access у ситуаціях, коли вимагається вказати ім’я таблиці, запиту чи поля, із яких потрібно відібрати дані.

Наприклад, при використанні майстра для створення форми чи звіту, що отримують дані з кількох Таблиць, автоматично створюєся інструкція SQL, яка записується як значення властивості Источник строк (RowSource) форми чи звіту.

Для створення списку чи поля зі списком за допомогою майстра також створюєся інструкція SQL, яка стає значенням властивості Источник строк (RowSource) списку чи поля зі списком.

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


 

Прості вибірки

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

При створенні фільтру за виділенним значенням (відкрити таблицю у режимі Таблиці, виділити потрібне значення, натиснути кнопку Фильтр по выделенному) отримуємо відфільтрований список. Далі допустимими є наступні дії: натискаємо кнопку Изменить фильтр; у вікні запису фільтра вказуємо ще одну умову відбору даних; натикаємо на кнопку Сохранить как запрос, вказуємоім'я запита. Запит створено автоматично. Відкриваємо створений запит у конструкторі запитів, та переглядаємо у режимі SQL (Вид, режим SQL).

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

За тренінгову базу даних візьмемо базу “Тестування авто”, див. Додаток А.

a) Прості вибірки з фільтром

Наприклад, необхідно отримати результати тестування авто (див. Додаток А), які включають: або тестування несправності з кодом 3, тобто Код_несправності# =3, або результати лише автомобілів з кодом 5, тобто Код_автомобіля=5 , тоді фільтр буде записано так:

SELECT *

FROM [Результати тестування]

WHERE (([Результати тестування].[Код_несправності#])=3)) OR (([Результати тестування].Код_автомобіля)=5));

Пояснення:

· Відповідно до вимог базової мови імена таблиці включено у квадратні дужки (не плутати з квадратними дужками у синтаксисі SQL). При посиланні на поле таблиці, з тієї ж причини, вказується Таблиця та ім’я поля (у квадратних дужках), розділених крапкою.

· Знак “*” після SELECT вказує на те, що потрібно відібрати усі поля (без вертикального відбору) із таблиці, яка вказана у реченні FROM, та відібрати записи (горизонтальний відбір), які відповідають умовам, вказаним після WHERE.

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

Речення WHERE може мати простіші умови, залежно від умов горизонтального відбору, наприклад:

 

SELECT *

FROM [Результати тестування]

WHERE ((([Результати тестування].[Код_несправності#])=3));

Коли користувач розроблює запит у режимі конструктора запитів, Microsoft Access автоматично створює еквівалентну інструкцію SQL.

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

 

b) Прості вибірка з упорядкуванням

Наприклад, побудуємо однотабличний запит, у якому в алфавітному порядку по прізвищам контролерів буде створено перелік несправностей автомобілів, виявлених контролерами:

SELECT [Довідник несправностей].[Код_несправності#], [Довідник несправностей].Назва_несправності, [Довідник несправностей].Контролер, [Довідник несправностей].[Ціна тестування]

FROM [Довідник несправностей]

ORDER BY [Довідник несправностей].Контролер;

Пояснення:

· ORDER BY вказує на упорядкування списку за значенням поля, яке вказано далі (за прізвищем контролера). DESC означає сортування за зменшенням , ASC- сортування за зростанням. Якщо опція DESC/ ASC не вказується, то по замовчуванню, записи результуючої таблиці упорядковуються за зростанням значень зазначеного після ORDER BY.

Зауваження. Якщо у режимі SQL замість переліку полів в інструкції SELECT поставити “*”, то у нашому прикладі на результат роботи це не вплине. Поясніть чому.

c) Запити з параметрами

Організувати оперативну довідку про результати тестування групи авто, код якої вводитися у процесі виконання запиту

SELECT [Результати тестування].Код_автомобіля, [Результати тестування].[Код_несправності#], [Результати тестування].[Код_системи_двигуна#]

FROM [Результати тестування]

WHERE ((([Результати тестування].Код_автомобіля)=[Введіть код автомобіля]))

ORDER BY [Результати тестування].[Код_несправності#];

 

5.1.2. Фільтрація та сортування у запитах

a) Наприклад, необхідно одержати перелік груп автомобілей та коди несправностей в кривошипно – шатунному механізмі (Код _частини _двигуна# =1)

 

SELECT [Результати тестування].[Код_автомобіля], [Результати тестування].[Код_несправності#]

FROM [Результати тестування]

WHERE ([Результати тестування].[Код_системи_двигуна#] =1)

ORDER BY [Результати тестування].Код_автомобіля;

 

Результуюча вибірка може включати дублюючі записи:

Код_автомобіля Код несправності#
 
 
 
 
 
 

b) Списки без дублюючих записів.

Щоб у список не включати повторення, вносимо зміни у SQL-інструкцію за допомогою ключового слова DISTINCT.

Вносимо зміни у SQL-інструкцію (у режимі SQL)

SELECT DISTINCT [Результати тестування].Код_автомобіля, [Результати тестування].[Код_несправності#]

FROM [Результати тестування]

WHERE ([Результати тестування].[Код_системи_двигуна#]=1)

ORDER BY [Результати тестування].[Код_автомобіля];

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

Код_автомобіля Код несправності#

Пояснення та зауваження:

· Щоб упорядкувати записи результуючого набора, можна виконати сортування по будь-якому числу полів, але вони мають бути вказані у реченні SELECT.

· Речення ORDER BY <список полів> використовується для сортування і завжди має бути останнім в операторі SELECT.

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

· Якщо упорядковання проводиться за зростанням, то ключове слово ASC- може бути відсутнім (приймається по замовчуванню)

· Горизонтальну вибірку реалізує речення WHERE, яке завжди записують після речення FROM

· Предикати являють собою вирази, які можуть бути як простими виразами порівняння, так і являти собою комбінацію із будь-якого (скінченного) числа виразів, об’ єднаних логічними операторами AND, OR, NOT.

· У предикатах може використовуватись SQL-оператор IS та круглі дужки для зміни порядку виконання операцій.

· Предикат у мові SQL може приймати такі значення:

1. TRUE- истина –вірно, причому у числовому виразі- набуває значення 1;

2. FALSE- ложь- невірно, у числовому виразі набуває значення 0;

3. UNNOWN -неизвестно- невідомо у числовому виразі набуває значення 0,5.

Вкажемо правила комбінування:

· TRUE AND UNNOWN = UNNOWN,

· FALSE OR UNNOWN = UNNOWN,

· NOT UNNOWN= UNNOWN.

Для символьних виразів (у SQL тип даних CHARACTERE) може застосовуватись предикат порівняння. Дані типу Дата порівнюються у хронологічному порядку.

5.1.3. Проста вибірки з умовою на діапазон значень

Наприклад, необхідно створити перелік несправностей автомобіля, тестування яких коштує від 60 до 180 грошових одиниць. Перелік упорядкувати по спаданню ціни.

 

SELECT [Довідник несправностей].[Код_несправності#], [Довідник несправностей].[Назва_несправності], [Довідник несправностей].[Контролер], [Довідник несправностей].[Ціна тестування]

FROM [Довідник несправностей]

WHERE (([Довідник несправностей].[Ціна тестування]) Between 60 And 180)

ORDER BY [Довідник несправностей].[Ціна тестування] DESC;

 

Пояснення:

· Предикат Between перевіряє чи належать вказаному діапазону значення виразу, що перевіряється.

· Значення виразу, що перевіряється, та значення пограничних виразів повинні бути сумісними за типами даних.

 

5.1.4. Вибірки за зразком (з предикатом Like) та з використанням оператора IN

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

a) Нехай необхідно вивести усі несправності, що вказують на гіперфункції роботи двигунів, що проходили тестування.

 

SELECT [Довідник несправностей].[Назва_несправності], [Довідник несправностей].[Контролер], [Довідник несправностей].[Ціна тестування]

FROM [Довідник несправностей]

WHERE ((([Довідник несправностей].Назва_несправності) Like "З*"));

Пояснення:

· Оператор Like призначено для порівняння рядкового виразу зі зразком, який потрібно задати після оператора Like у виразі SQL.

· Синтаксис оператора Like

выражение Like "образец"

· выражение – це вираз SQL, що використовується у реченні WHERE,

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

- символ “*” - замінює будь-які символи у будь-якій кількості символів, наприклад : а*, *а, *авс* , тощо;

- Символ “?”- замінює тільки один символ, , наприклад,: а??, ?арка, с???, a?с*, тощо.

Зауваження: У стандарті мови SQL замість знака “*” використовується знак “_”, а замість “?” використовують знак “%”.

 

b) Наведемо ще один приклад відбору даних за умовою:

SELECT [Системи двигуна].[Код_системи_двигуна#],

[Системи двигуна].Назва_системи

FROM [Системи двигуна]

WHERE (([Системи двигуна].Назва_системи) Not Like "Система*");

$ Рекомендується переглянути приклад та вказати призначення запиту самостійно.

 

Зауваження:

· У тих випадках, коли або вираз, що перевіряють, або зразок є порожніми величинами (мають значення NULL), то предикат приймає значення “ TRUE “.

· Якщо вираз і зразок мають одночасно довжину 0, то предикат приймає значення “TRUE”.


 

c) Оператор IN

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

Синтаксис оператора IN:

выражение [Not] In(значение_1, значение_2, . . .)

Аргументи оператора In:

· Выражение: Вираз, який визначає поле, значення якого потрібно знайти у списку;

· Значение_1, значение_2, …: Вираз або список виразів, з якими порів-нюється выражение.

Якщо выражение є у списку значень, оператор In повертає значення True; інакше - False. За допомогою логічного оператора Not можно перевірити обернену умову (выражение не належить списку значень).

Розглянемо приклад: Необхідно отримати перелік несправностей, тестування яких коштує 30, 34 та 50 одиниць.

SELECT [Довідник несправностей].Назва_несправності, [Довідник несправностей].[Ціна тестування]

FROM [Довідник несправностей]

WHERE ((([Довідник несправностей].[Ціна тестування]) In (30,50,34)));

5.1.5. Вибірки з пошуком відсутніх даних

Для перевіки заповненості таблиці Результати тестування підготувати перелік незаповнених кодів. Зазначимо, що інколи для зручності користування знімається властивість Обязательное поле, тому важливі дані можуть бути не внесені у документ. Тому потрібно автоматизувати пошук відсутності даних у таких полях.

 

SELECT [Результати тестування].Код_автомобіля, [Результати тестування].[Код_несправності#], [Результати тестування].[Код_системи_двигуна#]

FROM [Результа



Последнее изменение этой страницы: 2016-06-29; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.229.142.91 (0.022 с.)