Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SUBD_ZAO / ЗАО_СУБД_2010.doc
Скачиваний:
37
Добавлен:
07.02.2016
Размер:
1.05 Mб
Скачать
    1. Кіноафіша

дата

День тижня

Кінотеатр

К/фільм

Жанр

Тривалість

Сеанси

Комедія

Бойовик

    1. Театральна афіша

Дата

День тижня

Жанр вистави

Назва вистави

Режисер

У головних ролях

Тривалість

    1. Патентне бюро

Реєстраційний номер

Вид

Область

Автор

Дата подачі

Дата реєстрації

Розмір винагороди

патент

Технічний

винахід

побутовий

Завдання 3. Створення бази даних

Варіанти завдань “Створення бази даних

У середовищі СУБД за результатами виконання завдання 2:

  1. створити таблиці та встановити зв’язок між ними

  2. створити форми для заповнення всіх таблиць

  3. заповнити таблиці 10 записами

  4. за допомогою запитів визначити зазначену інформацію

  5. створити звіти за результатами запитів

    1. Розклад

  1. Зайнятість викладача у тиждень (кількості занять *2)

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

  3. Які дисципліни читає викладач у зазначений день тижня

    1. Аптека

    1. У якій аптеці наявний необхідний препарат(найменування ліків вводиться з клавіатури)

    2. Перелік ліків, для яких закінчився термін використання

    3. Суму, на яку наявні ліки у всіх аптеках, згрупувати по кожному препарату окремо

    1. Передплата

  1. Які видання замовлені на рік на поточну дату (назва видання вводиться з клавіатури)

  2. Які видання замовлені за останні 10 днів

  3. Список замовників з зазначенням адреси, назви видання та терміну замовлення

    1. Реєстрація документів

  1. Кількість документів у кожному відділі

  2. Працівника, якій працює над максимальною кількістю документів

  3. Список документів зі зазначенням дати надходження

    1. Ремонт квартир

  1. Які роботи та яким виконавцем виконуються на поточну дату

  2. Скільки замовлень надходить кожного дня

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

    1. Страхова компанія

  1. Список укладених договорів зі зазначенням клієнтів

  2. Скільки договорів уклав кожен агент

  3. Скільки договорів та на яку суму укладено у кожному філіалі

    1. Готель

  1. Номери кімнат люкс, які зайняті на поточну добу

  2. Кількість кімнат кожного класу у готелі

  3. Список кімнат, для яких термін оренди закінчується наступної доби

    1. Змагання

  1. У якій день тижня проводяться змагання зі зазначеного виду спорту (вид спорту вводиться з клавіатури)

  2. Які учасники мають три найкращих результати

  3. Кількість учасників за кожним видом змагання

    1. Рецепти

  1. Склад рецепту – назву та які продукти необхідні для виготовлення блюда за № (№ блюда вводиться з клавіатури)

  2. В які блюда входить зазначений продукт - вводиться з клавіатури

  3. Загальну кількість кожного продукту, яка необхідна на приготування всіх страв одночасно

    1. Рейтинг пісень

  1. Пісні, якого композитору мають найбільший рейтинг

  2. Пісні якого композитора виконують зазначені виконавці (ім’я виконавця вводиться з клавіатури)

  3. Пісні, які займають перші три місця у рейтингу

    1. Відділ кадрів

  1. Які працівники прийняти на роботу за останні 10 днів

  2. Список працівників з вищою освітою

  3. Загальну кількість працівників кожної посади у кожному відділі (перехресний запит)

    1. Наукова конференція

  1. Скільки учасників кожного статусу були присутні на конференції, яка проводилась у зазначену дату (дата замовлення вводиться з клавіатури)

  2. Знайти найбільш тривалу доповідь та якій тематиці вона була присвячена

  3. Кількість учасників конференцій по тематиці та даті проведення (перехресний запит)

    1. Ломбард

  1. Які товари здані у ломбард на зберігання у поточний день

  2. Якій товар оцінений найбільшою сумою

  3. Список клієнтів з зазначенням адреси, назви товару та терміну повернення грошей

    1. Бібліотека

  1. Скільки книг видається кожного дня

  2. Коли та кому видавалась зазначена книга (код книги ввести з клавіатури)

  3. Скільки книг кожного видавництва наявні у бібліотеці

    1. Специфікація виробу

  1. Визначити загальну вартість кожного виробу

  2. Підрахувати скільки деталей з міді входить до складу кожного виробу

  3. Яка вага кожного з матеріалів, з яких зроблені деталі кожного виробу

    1. Ремонт верстатів

  1. Вид ремонту, якій потребує найбільшого часу

  2. Які станки ремонтувались у останньому році та хто за них відповідає

  3. Визначити цех у якому не ремонтувались верстати минулого року

    1. Платна поліклініка

  1. Якій лікар працює у якому кабінеті у поточну дату (цех вводиться з клавіатури)

  2. Загальну кількість відвідувань кожного спеціаліста

  3. Кількість відвідувань хворих кожного лікаря за датою (перехресний запит)

    1. Бюро з працевлаштування

  1. Яку найбільшу заробітну платню пропонують роботодавці

  2. Яка потреба у фахівцях кожної спеціальності

  3. Скільки вакансій у кожного роботодавця

    1. Ювелірна майстерня

  1. Скільки замовлень з кожного металу було протягом поточного дня

  2. Які комісійні були отримані за роботу протягом останнього року

  3. Яка робота найдорожча

    1. Реклама

  1. Визначити найдорожчу рекламу та місце Ії розміщення

  2. Кількість замовлень по кожному виду реклами

  3. Загальну вартість замовлень на рекламу за останній місяць

    1. Телевізійна реклама

  1. Визначити кількість замовлень по днях та передачах

  2. Загальну суму комісійних за останній місяць

  3. Знайти передачу, реклама у якій найдорожча

    1. Нотаріальна контора

  1. Визначити, скільки раз звернувся у контору кожен клієнт

  2. Визначити загальну суму комісійних за останній місяць

  3. Визначити кількість клієнтів та комісійних по кожному виду послуг

    1. Виконання проектів

  1. Працівники якого відділу відповідають за роботу на проектом № (№ проекту визначається з клавіатури) зі зазначенням терміну його виконання

  2. Над якими проектами закінчена робота на поточну дату

  3. Список працівників, які виконують роботи над кожним проектом, зі зазначенням посади

    1. Розклад руху автобусів

  1. У якій день тижня відправляється автобус по зазначеному маршруту (маршрут вводиться з клавіатури)

  2. Які маршрути відправляються до 15 години

  3. Кількість маршрутів, які відправляються з кожного вокзалу

    1. Туристична фірма

  1. Скільки туристів у кожній групі по кожному маршруту

  2. Знайти не укомплектовану групу, у якій кількість туристів менше 25 осіб

  3. Знайти автобусні маршрути

    1. Агенція нерухомості

  1. Які трьох кімнатні квартири здаються у оренду

  2. Яка нерухомість здається у оренду зазначеним власником (ім’я власника вводиться з клавіатури)

  3. Загальну кількість об'єктів нерухомості, які здаються в оренду одночасно

    1. Кінофільми

  1. Скільки фільмів знято на кожній студії за останній рік

  2. Які відомі актори знялись у фільмі найбільшої тривалості

  3. У якому фільмі знімалась найбільша кількість акторів

    1. Комплектування виробу

  1. Які складові входять у склад зазначеного виробу (номер виробу вводиться з клавіатури)

  2. Загальну кількість використання кожної складової на поточну дату

  3. Графік комплектування виробів кожним комплектувальником по датах (перехресний запит)

    1. Комп’ютерні курси

  1. Для яких груп проводяться заняття о 18 год. в зазначений день тижня (день тижня вводиться з клавіатури)

  2. Максимальна кількість слухачів, які одночасно займаються на всіх курсах

  3. Розклад занять груп по днях тижня (перехресний запит)

    1. Ремонт обладнання

  1. Якій види ремонту виконуються та яке обладнання ремонтується у зазначеному цеху у поточну дату (цех вводиться з клавіатури)

  2. Загальну тривалість ремонту у кожному цеху

  3. Графік проведення ремонту - у якому цеху якій вид ремонту та у який термін виконується (перехресний запит)

    1. Видавництво

  1. Визначити кількість видань по жанрах за останній рік

  2. Скільки видань у кожного автора

  3. Знайти видання з найбільшою кількістю сторінок

    1. Пошта

  1. Якій види ремонту виконуються та яке обладнання ремонтується у зазначеному цеху у поточну дату (цех вводиться з клавіатури)

  2. Загальну тривалість ремонту у кожному цеху

  3. Графік проведення ремонту - у якому цеху якій вид ремонту та у який термін виконується (перехресний запит)

    1. Кіноафіша

  1. Які кінофільми демонструються у протягом тижня у зазначеному кінотеатрі (кінотеатр вводиться з клавіатури)

  2. Якій фільм має максимальну тривалість

  3. Які фільми можна переглянути о 13 годині та у яких кінотеатрах

  4. Які фільми демонструються у яких кінотеатрах протягом тижня (перехресний запит)

    1. Театральна афіша

  1. Які вистави тривають більше години?

  2. Загальну кількість вистав за зазначений місяць. (місяць вводиться з клавіатури)

  3. У скількох виставах зайнятий зазначений виконавець протягом місяця

    1. Патентне бюро

  1. Якій види ремонту виконуються та яке обладнання ремонтується у зазначеному цеху у поточну дату (цех вводиться з клавіатури)

  2. Загальну тривалість ремонту у кожному цеху

  3. Графік проведення ремонту - у якому цеху якій вид ремонту та у який термін виконується (перехресний запит)

Завдання 4. Створення запитів SQL- запитів

Найбільш важливими для користувача є оператори маніпулювання даними, а саме оператор SELECT.

Запис операторів SQL:

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

  • Зарезервовані слова не можна розбивати на частині для переносу на інший рядок.

  • Слова, обумовлених користувачем, являють собою імена об'єктів база даних

  • Слова в операторі розставляються відповідно до встановлених синтаксичних правил

  • Наприкінці оператора ставитися символ ;

  • Символьні дані необхідно вводити з урахуванням регістра

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

Синтаксис оператора SELECT має наступний вигляд:

SELECT [ALL | DISTINCT] {* [список полів [AS нове ім'я]][,....]|*)

FROM ім'я таблиці [alias][,...]

[WHERE Предикат-умова чи вибірки з'єднання]

[GROUP BY Список полів]

[HAVING Предикат-умова для групи]

[ORDER BY <Список полів, по яких упорядкувати висновок >]

Порядок пропозицій і фраз в операторі SELECT не може бути змінений

Ключове слово ALL – у результуючий набір рядків включаються всі рядки, що задовольняють умовам запиту. Без виключення дублікатів.

Ключове слово DISTINCT - у результуючий набір включаються тільки різні рядки, тобто дублікати рядків результату не включаються в набір.

Символ * (зірочка) - у результуючий набір включаються всі стовпці з вихідних таблиць запиту.

Приклад: Створити список студентів, із указівкою їхній ФИО і групи

SELECT ФИО, Група

FROM Студенти;

Вибір рядків WHERE <Предикат-умова вибірки або з’єднання >

Для обмеження набору рядків, що поміщаються в результуючу таблицю запиту використовується пропозиція WHERE.

Предикати, використовувані в пропозиції WHERE :

  • Порівняння – порівнюються результати обчислень двох виразів

  • Діапазон - перевіряється чи попадає результат обчислення в заданий діапазон значень

  • Предикат BETWEEN A AND У — приймає значення між А и В, включаючи границі діапазону

  • Приналежність до множини - перевіряється, чи належить результат до заданої множини значень

  • Предикат входження в множину IN (множина), приймає занчення TRUE коли порівнюване значення входить у множину заданих значень.

  • Відповідність шаблону – перевіряється, чи відповідає деяке строкове значення заданому шаблону.

  • Предикати порівняння зі зразком LIKE і NOT LIKE

  • % чи * - будь-яка послідовність символів, _ ( значення одиночного символу)

Значення NULL - перевіряється, чи містить заданий стовпець визначник NULL: < атрибут > IS NULL чи < атрибут > IS NOT NULL/

У пропозиції WHERE не можна використовувати агрегатні функції.

Приклад: визначити всіх студентів, що навчаються в групі РП-410

Select Прізвище

From Студенти

Where Група=”РП-410”;

У пропозиції WHERE можна використовувати складні умови пошуку.

Приклад Перелічити усіх викладачів – доцентів кафедри Фізики

SELECT Викладачі.* - вибірка всіх полів з таблиці Викладачі

FROM Викладачі

WHERE Кафедра= «Фізики» and Посада = «Доцент»;

Приклад використання діапазонів в умовах пошуку

SELECT Викладачі.*, Викладачі.[Дата народження]

FROM Викладачі

WHERE (((Викладачі.[Дата народження]) Between #1/1/1949# And #12/31/1953#));

Приклад використання умов пошуку з перевіркою входження в безліч (IN / NOT IN)

SELECT Викладачі.*

FROM Викладачі

WHERE Посада IN ("Доцент");

Приклад використання умов пошуку з указівкою шаблонів

Список усіх співробітників проживаючих на вулиці Горького

SELECT Викладачі.*

FROM Викладачі

WHERE Адреса LIKE "*Горького*" – адреса, що містить набір символів Горького

Приклад використання значення NULL в умовах пошуку

SELECT Прізвище, Іспит

FROM Сесія

WHERE Оцінка is null;

Сортування результатів ORDER BY < Список полів >

Приклад

SELECT Студенти.*,

FROM Студенти

ORDER BY Студенти.Прізвище DESC; // за зменшенням //

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

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

SUMM – визначається сума всіх обраних значень даного поля, застосовується тільки для числових полів

AVG – обчислюється середнеарифметичне значення всіх обраних значень даного поля, застосовується тільки для числових полів

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

MAX – вибирається найбільше з всіх обраних значень даного поля, застосовується для числових і нечислових полів

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

SELECT Р1.Дисципліна, Count(*) AS Кількість

FROM Р1

WHERE Р1.Оцінка is not null

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

Приклад Визначити число всіх студентів, що здали успішно здали сесію

SELECT COUNT(*)as Кількість

FROM Сесія

WHERE Оцінка > 2

Приклад Визначити скількох усього студентів здавало сесію

SELECT COUNT(DISTING, Код_Студента)as Кількість

FROM Сесія

WHERE Оцінка IS NOT NULL

Приклад Визначити кількість усіх студентів, що здавали сесію і середній бал на сесії

SELECT

COUNT(DISTING, Код_Студента)as Кількість,

AVG(Оцінка)аsср_бал

FROM Сесія

WHERE Оцінка IS NOT NULL

Агрегатні функції не можна використовувати в пропозиції WHERE, тому що предикати оцінюються в термінах одиночного рядка, а агрегатні функції — у термінах груп рядків.

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

Приклади

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

SELECT

Код_рабітника, ФІО, Зарплатня (SELECT avg(зарплатня) FROM Штат)

FROM Штат

WHERE Зарплатня >

(SELECT avg(зарплатня)

FROM Штат);

В цьому випадку необхідно використовувати підзапит, тому що не можна використовувати агрегатні функції в пропозиції WHERE.

Приклад

хто з клієнтів підписав більшу кількість видань

SELECT Замовник. замовник, count(*) as кількість

FROM Замовник inner join Передплата on Замовник.код_замовника =Переплата.код_ замовника

GROUP BY Замовник. замовник

HAVING Count(*)> any

(Select Count(*)

from передплата

group by Передплата.код_ замовника);

Соседние файлы в папке SUBD_ZAO