Умовою для пошуку є прізвище «Іванов», а діапазоном для підрахунку суми значень є стовпчик з нарахованими податками —112:124. Тоді функція набуває такого вигляду: =СУММЕСЛИ(В12:В24;«Іванов»;І12:І24)
=НАИБОЛЬШИЙ(параметр;N) - N-e максимальне з чисел
=МИН(параметр) - Мінімальне з чисел
69.Ідея створення полів підстановки. Створення полів підстановки зі зв’язаної таблиці. Створення поля підстановки з фіксованого списку значень
Основний структурний елемент Access — таблиця, в якій зберігається інформація. Об’єкт «таблиця» — це лише одна частина Access-системи, в якій справді зберігається інформація. Всі інші об’єкти (такі, як запити, форми та звіти) ґрунтуються на даних таблиць.
Для більшості користувачів операції, що виконуються в ба-
зі даних, починаються зі створення однієї чи більше таблиць.
І хоча, з одного боку, таблиця — це колекція даних, з іншого — це дещо більше, ніж просто набір даних. Яка ж відмінність таблиці від сторінки тексту або чисел у структурі електронної таблиці? Структура перетворює дані в інформацію. Структуровану інформацію, організовану в таблицю, легше зрозуміти і читати.
По-перше, за рахунок класифікації по стовпчиках. Кожен стовпчик таблиці являє собою результат певної класифікації.
По-друге, тому, що рядки повторюють шаблон. Шаблон, установлений за допомогою стовпчиків, повторюється в кожному
рядку. Кожний рядок подає інформацію про певний існуючий об’єкт, наприклад, про легковий автомобіль, заводи-виготовлю-вачі або роки випуску.
Ці два чинники дозволяють легко читати інформацію таблиці, оскільки кожен рядок у таблиці передбачений.
Ця передбачена структура дає можливість комп’ютерній програмі виконати аналогічні операції набагато швидше і з вищою точністю, ніж це може зробити людина.
Поля визначають класифікаційну характеристику даних, за якою можна знайти кожен запис, такий, наприклад, як прізвище чи дата народження. Коли працюємо з полем, то можна маніпулювати даними, що належать одному чи кільком записам. Наприклад, за потреби відсортувати інформацію вибираємо одне або більше полів у ролі ключів сортування.
70.Фільтрація даних у MS ACCESS: фільтр по виділеному, звичайний фільтр, розширений фільтр.
Фільтр — це набір умов для вибирання множини записів або для сортування записів. Існують такі типи фільтрів: фільтр по виділеному фрагменту, звичайний фільтр, розширений фільтр.
Фільтр по виділеному фрагменту дозволяє відібрати записи з використанням значень, які вибираються у таблиці, запиті або у полі форми в режимі таблиці. Порядок створення фільтру:
1. Відкрити таблицю, запит або форму.
2. Виділити значення, яке повинні містити записи.
3. Вибрати меню Записи/Фильтр/Фильтр по выделенному або натиснути на відповідну кнопку .
Для відміни дії фільтру вибрати меню Записи/Удалить фильтр або натиснути на кнопку .
Фільтри зберігаються автоматично під час зберігання таблиці, запита або форми.
Звичайний фільтр дозволяє відібрати записи шляхом уведення критеріїв у порожню таблицю, запит або форму. Наприклад, необхідно з таблиці Табель відібрати записи, в яких поле МІСЯЦЬ=2 та КІЛЬКІСТЬ ВІДПРАЦЬОВАНИХ ДНІВ > =20.
Порядок створення звичайного фільтру:
1. Відкрити таблицю, запит або форму.
2. Вибрати меню Записи/Фильтр/Изменить фильтр або натиснути на кнопку .
3. На екрані з’явиться таблиця для введення критеріїв (рис. 10.148). У відповідних полях увести умову відбору записів. Для уведення значень розкрити список та вибрати потрібне значення. Для уведення виразу можна використовувати будівник виразів. Для пошуку записів, які повинні містити в конкретному полі порожні або непорожні значення, необхідно увести вираз IS NULL або IS NOT NULL.
5. Вибрати меню Записи/Применить фильтр або натиснути на кнопку . Для відміни дії фільтру вибрати меню Записи/Удалить фильтр або натиснути на ту саму кнопку.
Розширений фільтр дозволяє створювати складні критерії відбирання записів. Порядок створення розширеного фільтру:
1. Відкрити таблицю, запит або форму.
2. Вибрати меню Записи/Фильтр/Расширенный фильтр. У результаті відкриється вікно, схоже на вікно конструктора запитів.
3. Додати поле або поля, для яких будуть задані умови для відбирання записів.
4. Задати порядок сортування.
5. Задати шукане значення або ввести вираз у рядок Условие отбора для кожного поля. Вираз можна ввести безпосередньо у комірку, або з використання будівника виразів.
6. Вибрати меню Записи/Применение фильтра або натиснути на відповідну кнопку панелі інструментів.
Наприклад, створити фільтр для відбирання записів, у яких посада=«Секретар». На рис. 10.149 відображено вікно фільтру та результат його виконання.
Створення форми або звіту на основі записів, відібраних за допомогою фільтру. Для цього необхідно вивести на екран записи, відібрані за допомогою фільтру, відкрити список біля кнопки Новый объект і вибрати Форма, Отчет, Автоформа або Автоотчет.
71.Відношення, кортеж відношення, кардинальне число відношення, степінь відношення. Нормалізовані та ненормалізовані відношення.
Дана сукупність множин Д1, Д2, …..Дn відношення R, яке визначене на цих множинах є кортеж
Множини D1,D2,Dn називають доменими відношення R.
Величина n називається степінню відношення R.
Кожен рядок у таблтці являє собою кортеж відношення.
Число кортежів у відношенні називається кординальним числом відношення
Відношення бувають нормалізовані і ненормалізовані. В реляційній моделі єдині відношення, які допустили єті, які задовольняють слідуючу умову: кожне значення у відношенні, тобто значення кожного атрибута в кожному кортежі є неділимим. Або інакше. На перетині будь-яких рядків та стовпчиків повинно бути лише оде значення. Таке відношення є нормалізованим. Приклад ненормалізованого відношення є учбовий розклад.
72.Домени та атрибути. Ключі відношення. Гарантія існування ключа відношення
Домен являє собою множину значень, яку може мати атрибут. Отже, атрибут є конкретне використання домена всередині відношення . Відношення Визначається чотирма атрибутами. Значення цих атрибутів утворюється з множини значень відповідно домена. Взагалі треба було б робити імена доменів та атрибутів, але якщо у кожного домена утворюється лише один атрибут,, то такого розрізнення не проводять, якщо ж з одного домена утворюють два атрибути, то тоді їм дають різні імена.
Якщо в середині відношення R існує атрибут, значення якого однозначно індефікують кортежі цього відношення, то такий атрибут називають первинним ключем даного відношення. Може бути так, що первинний ключ буде неможливо утворити з одного атрибута, але завжди знайдеться така комбінація, яку можна індефікувати як первинний ключ.
73.Реляційна модель бази даних: визначення та схема опису чи представлення
Реляційна модель бази даних є представлення користувачем ції бази даних у вигляді сукупності змінованих у часі нормалізованих відношень різних степенів. У СУБД під кортежем будемо розуміти запис, а під атрибутом поле.
74.Структурована мова запитів SQL. Вивід програми на екран. Друк програми на мові SQL. Основна операція (основний синтаксичний блок). Приклад використання.
Структурована мова запитів (SQL)
Якщо після створення запиту виконати команду: Вид/ Режим SQL, то на екран буде виведено невелику програму мовою SQL. Оскільки приклади, які виконують користувачі, є невеликими, то можна спробувати розібратися в цих програмах.
Початкова версія мови SQL (Structured English Query Language) базувалася на раніше розробленій мові square. Прототип цієї версії SQL був реалізований у науково-дослідній лаборато-
рії фірми IBM у 1974 році (Chamberlin D., Boyce R. SEQUEL:
A Structured English Query Language. Proc. 1974 ACM SIGMOND Workshop on Data Description, Access and Control).
Приклади, які ми далі розглянемо, можуть навести на думку, що SQL є просто мовою запитів. Попередимо, що SQL є дещо більше, ніж просто мова запитів. SQL забезпечує повний набір операцій запам’ятовування — Insert (Включить), Delete (Удалить), Update (Обновить), а також інші можливості.
Основною операцією у мові SQL є відображення, яке синтаксично є блоком SELECT-FROM-WHERE (вибрати-з-де). Наприклад, запит «Одержати номери та статуси постачальників, які перебувають у Парижі», можна виразити таким чином:
SELECT S#, STATUS
FROM S
WHERE CITY=«PARIS»
Тут спочатку ми створюємо горизонтальну підмножину з рядками, у яких CITY = «PARIS», а потім з одержаного результату створюємо вертикальну підмножину (вибираємо атрибути S# і STATUS). Далі можна за допомогою операції присвоювання визначити ім’я таблиці та імена стовпчиків, що утворилися в результаті виконання запиту. Наприклад:
REZULT (SNO, CODE) SELECT S#, STATUS
FROM S
WHERE CITY=«PARIS»
У мові SQL надається перевага термінам «таблиця», «стовпчик», «рядок» над термінами «відношення», «атрибут», «кортеж».
Проста вибірка. 1) Одержати всі номери деталей, що постачаються:
SELECT UNIQUE P#
FROM SP
Оператор UNIQUE дає змогу зробити вибірку без дублікатів.
2) Одержати повну інформацію про всіх постачальників:
SELECT *
FROM S
Будуть виведені всі стовпчики таблиці S.
Вибірка за умовою. Одержати номери постачальників, що перебувають у Парижі і мають статус >20:
SELECT S#
FROM S
WHERE CITY=«PARIS»
AND STATUS >20
Предикат, який іде за WHERE, може включати оператори порівняння =, >, >=, <, <=, <>, бульові оператори AND, OR та NOT, а також дужки для зазначування потрібного порядку обчислення.
Вибірка з упорядкуванням. Одержати номери та статуси постачальників, які перебувають у Парижі, у порядку зменшення їх статусів:
SELECT S#, STATUS
FROM S
WHERE CITY=«PARIS»
ORDER BY STATUS DESC
Оператор DESC означає сортування за зменшенням, а ASC — сортування за зростанням.
Вибірка з використанням вкладеного відображення. 1) Одержати імена постачальників, які постачають деталь Р2:
SELECT SNAME
FROM S
WHERE S# IS IN
(SELECT S#
FROM SP
WHERE P#=«P2»)
Тут оператор IS IN (можна просто IN) означає належність елемента множині. Оператор IS NOT IN (або просто NOT IN) інтерпретується як «не належить множині».
2) Одержати номери постачальників, які постачають хоча б одну червону (RED) деталь:
SELECT UNIQUE S#
FROM SP
WHERE P# IN
SELECT P#
FROM P
WHERE COLOR=«RED»
Якщо неоднозначність результату виключена, то дужки у внутрішньому блоці можуть бути опущені.
Вибірка з використанням кількох рівнів вкладеності. Одержати імена постачальників, які постачають хоча б одну червону (RED) деталь:
SELECT SNAME
FROM S
WHERE S# IN
SELECT S#
FROM SP
WHERE P# IN
SELECT P#
FROM P
WHERE COLOR=«RED»
Вибірка з використанням вкладеного відображення і міжблокового посилання. Одержати імена постачальників, які не постачають деталь Р1:
SELECT SNAME
FROM S
WHERE «P1» NOT IN
SELECT P#
FROM SP
WHERE S#=S.S#
Для посилання на S# з зовнішнього блоку у внутрішній потрібно використати очевидне уточнення (S).
Вибірка з використанням вкладеного відображення і з однією і тією самою таблицею в обох блоках. Одержати номери тих постачальників, які постачають хоча б одну деталь, що поставляється постачальником S2:
SELECT UNIQUE S#
FROM SP
WHERE P# IN
SELECT P#
FROM P
WHERE S#=«S2»
Вибірка з використанням синоніма. Одержати номери всіх деталей, що постачаються кількома постачальниками:
SELECT UNIQUE P#
FROM SP SPX
WHERE P# IN
SELECT P#
FROM SP
WHERE S#<>SPX.S
SPX є довільною позначкою, що використовується для зв’язку між SPX.S# у внутрішньому блоці і таблицею зовнішнього блоку. Виконання запиту можна пояснити так: «по черзі для кожного рядка, наприклад, SPX таблиці SP знайти значення P#, якщо це значення належить множині значень P#, для яких відповідне значення S# не дорівнює значенню S# у рядку SPX, тобто, якщо деталь постачається постачальником, відмінним від постачальника, ідентифікованим рядком SPX».
Вибірка більше ніж з однієї таблиці. Для кожної деталі, яка постачається, одержати номер деталі (P#) та назви всіх міст (CITY), з яких ця деталь постачається.
SELEKT UNIQUE P#, CITY
FROM SP, S
WHERE SP.S#=S.S#
Вибірка, що включає порівняння множин. 1) Одержати імена постачальників (SNAME), які постачають усі деталі.
SELECT SNAME
FROM S
WHERE (SELECT P#
FROM SP
WHERE S#=S.S#)
=
(SELECT P#
FROM P)
Нам потрібні імена таких постачальників, щоб множина деталей, які вони постачають (результат першого внутрішнього відображення), була еквівалентна множині всіх деталей (результат другого внутрішнього відображення). У даному випадку оператор «=» є оператором еквівалентності множин.
2) Одержати номери тих постачальників, які постачають щонайменше всі деталі, що й постачальник S2.
SELECT UNIQUE S#
FROM SP SPX
WHERE (SELECT P#
FROM SP
WHERE S#=SPX.S#)
CONTAINS
(SELECT P#
FROM SP
WHERE S#=«S2»)
Оператор CONTAINS означає «містить», «має».
Вибірка, що включає GROUP BY, HAVING i SET. Одержати номери тих постачальників, які постачають щонайменше всі деталі, що й постачальник S2.
SELECT S#
FROM SP
GROUP BY S#
HAVING SET (P#) CONTAINS
(SELECT P#
FROM SP
WHERE S#=«S2»)
Оператор GROUP BY ділить поточну таблицю на такі групи, в яких усередині будь-якої з цих груп усі рядки мають однакові значення в зазначеному стовпці (стовпчиках). Потім діє вираз HAVING, який є спеціальною формою виразу WHERE, але стосується не окремих рядків, а груп: предикат у виразі HAVING завжди посилається на властивості груп, а не рядків, і на основі цього предиката групи або відбираються, або відкидаються. Отже, спочатку таблиця поділяється на такі групи, що кожна містить певне значення S#. Потім по черзі для кожної групи множина всіх значень P# у групі порівнюється з множиною всіх значень P#, яка відповідає постачальнику S2. Коли перше з цих двох множин містить друге як підмножину (включаючи випадок рівності), дістаємо відповідне значення S#. Тепер, як бачимо, потреба в позначці SPX відпала і ключове слово UNIQUE більше не потрібне.
75. Основні оператори мови SQL.
Оператор UNIQUE дає змогу зробити вибірку без дублікатів.
Предикат, який іде за WHERE, може включати оператори порівняння =, >, >=, <, <=, <>, бульові оператори AND, OR та NOT, а також дужки для зазначування потрібного порядку обчислення.
Оператор DESC означає сортування за зменшенням, а ASC — сортування за зростанням.
Оператор IS IN (можна просто IN) означає належність елемента множині. Оператор IS NOT IN (або просто NOT IN) інтерпретується як «не належить множині».
SPX є довільною позначкою, що використовується для зв’язку між SPX.S# у внутрішньому блоці і таблицею зовнішнього блоку. Виконання запиту можна пояснити так: «по черзі для кожного рядка, наприклад, SPX таблиці SP знайти значення P#, якщо це значення належить множині значень P#, для яких відповідне значення S# не дорівнює значенню S# у рядку SPX, тобто, якщо деталь постачається постачальником, відмінним від постачальника, ідентифікованим рядком SPX».
Оператор CONTAINS означає «містить», «має».
Оператор GROUP BY ділить поточну таблицю на такі групи, в яких усередині будь-якої з цих груп усі рядки мають однакові значення в зазначеному стовпці (стовпчиках). Потім діє вираз HAVING, який є спеціальною формою виразу WHERE, але стосується не окремих рядків, а груп: предикат у виразі HAVING завжди посилається на властивості груп, а не рядків, і на основі цього предиката групи або відбираються, або відкидаються. Отже, спочатку таблиця поділяється на такі групи, що кожна містить певне значення S#. Потім по черзі для кожної групи множина всіх значень P# у групі порівнюється з множиною всіх значень P#, яка відповідає постачальнику S2. Коли перше з цих двох множин містить друге як підмножину (включаючи випадок рівності), дістаємо відповідне значення S#. Тепер, як бачимо, потреба в позначці SPX відпала і ключове слово UNIQUE більше не потрібне.