Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Бази даних та знань

Частина тексту файла (без зображень, графіків і формул):

eМІНІСТЕРСТВО ОСВІТИІ НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА Лабораторна робота №2 з дисципліни "Бази даних та знань" Отримання даних та статистичної інформації з бази даних за допомогою запитів мовою T-SQL Варіант №12 Львів – 2012 Мета роботи: ознайомитися зі структурованою мовою запитів SQL на основі її діалекту Transact-SQL для СКБД Microsoft SQL Server 2005 та отримати навики написання SQL-запитів для здійснення вибірки даних та отримання статистичної інформації за допомогою інструментарію Management Studio. Порядок виконання роботи Вдома детально вивчити поданий у інструкції довідковий теоретичний матеріал до лабораторної роботи. Згідно варіанту (порядкового номера в журналі викладача) завдання (таблиця 4.1), вдома написати SQL-запити для вибірки необхідних даних та статистичної інформації з баз даних, що вказані в додатку, а в лабораторії виконати ці запити до БД у графічному інструменті Management Studio, перевірити на працездатність та правильність отримуваних даних. Отримані результати на комп’ютері продемонструвати викладачу. За результатами виконаної роботи оформити звіт та здати його. Завдання  Варіант 12. 1. БД «Комп. фірма». Знайти модель, частоту процесора та об’єм жорсткого диску для тих комп’ютерів, що комплектуються накопичувачами 10 або 20 Мб та випускаються виробником 'A'. Вивести: model, speed, hd. Вихідні дані впорядкувати за зростанням за стовпцем speed. 2. БД «Фірма прий. вторсировини». З таблиці Outcome_o вивести всю інформацію за 14 число будь-якого місяця. 3. БД «Комп. фірма». Знайдіть виробників ПК із процесором не менше 600 МГц. Вивести: maker. 4. БД «Комп. фірма». Знайти виробників ПК, моделей яких немає в продажу (тобто відсутні в таблиці PC). 5. БД «Комп. фірма». Знайти тих виробників ПК, усі моделі ПК яких є в наявності в таблиці PC (використовуючи операцію EXISTS). Вивести maker. 6. БД «Кораблі». Вивести значення таблиці Ships із коментарями, наприклад, 'name: California', 'class: Tennessee', 'launched: 1921'. 7. БД «Комп. фірма». Знайти тих виробників ПК, для яких не всі моделі ПК є в наявності в таблиці PC (використовувати засоби групової статистики). Вивести maker. 8. БД «Кораблі». Вкажіть назву та країну кораблів, що були потоплені в битвах, але лише для тих кораблів, для яких ця інформація є відомою. Вивести: ship, country. (Підказка: використовувати підзапити в якості обчислювальних стовпців та перевірку на NULL) 9. БД «Комп. фірма». Для таблиці Product отримати підсумковий набір у вигляді таблиці зі стовпцями maker, pc, у якій для кожного виробника необхідно вказати, чи виробляє він ('yes'), чи ні ('no') відповідний тип продукції. У першому випадку ('yes') додатково вказати поруч у круглих дужках загальну кількість наявної (тобто, що знаходиться в таблиці PC) продукції, наприклад, 'yes(2)'. (Підказка: використовувати підзапити в якості обчислювальних стовпців та оператор CASE) 10. БД «Комп. фірма». Для кожної моделі продукції з усієї БД виведіть її найвищу ціну. Вивести: type, model, максимальна ціна. (Підказка: використовувати оператор UNION)  Короткі теоретичні відомості, що необхідні для виконання лабораторної роботи 1. Відомості про Transact-SQL Мова Transact-SQL (чи скорочено T-SQL) – це власний діалект мови структурованих запитів (Structured Query Language – SQL), що використовується в системі керування базами даних (СКБД) Microsoft SQL Server. Мова T-SQL призначена виключно для роботи з СКБД Microsoft SQL Server, хоча і є сумісною на початковому рівні зі стандартом ANSI SQL-92. Це означає, що основні базові оператори є такими ж, як і для інших відомих СКБД: Oracle, Sybase, DB2, MySQL, PostgreSQL. Тому отримані навики написання SQL-запитів за допомогою T-SQL можуть бути використані й при роботі із цими переліченими серверами баз даних. Але при цьому слід враховувати, що в кожній реляційній СКБД використовуються різні розширення та способи підвищення продуктивності, що доповнюють вказаний стандарт та навіть виходять далеко за його рамки. Це такі засоби, як умовна обробка (IF … THEN), керуючі оператори (наприклад, цикли WHILE), змінні, засоби оброблення помилок тощо. У загальному мова SQL поділяється на три частини: Оператори визначення даних – DDL (Data Definition Language). Призначені для опису структури баз даних. Це такі як: CREATE (створити), ALTER (змінити), DROP (видалити). Оператори маніпулювання даними – DML (Data Manipulation Language). Призначені для отримання, вставки, видалення чи зміни даних у базі даних. Це такі як: SELECT (вибрати), INSERT (вставити), UPDATE (обновити), DELETE (видалити). Оператори керування доступом до даних – DCL (Data Control Language). Це такі як: GRANT (надати доступ), REVOKE (анулювати попередні права). Цей «кістяк» є загальним для всіх існуючих діалектів мови SQL. Найбільшим по своїй структурі та можливостям серед них є оператор вибірки SELECT. Саме тому ця лабораторна робота і є зорієнтованою на написання SQL-запитів на основі оператора SELECT. Оператор вибірки SELECT SELECT – основний оператор. Після нього перераховуються стовпці, які необхідно отримати від сервера. FROM – у цій секції вказуються таблиці, з яких необхідно отримати певні дані. WHERE – у цій секції можна задати параметри пошуку та обмеження для вихідних даних. GROUP BY – у цій секції можна вказати перелік стовпців, за якими необхідно згрупувати дані. HAVING – у цій секції можна задати додаткові обмеження пошуку для створених груп. ORDER BY – у цій секції можна вказати параметри сортування, а точніше, стовпці, за якими буде відсортований результат. Запити мовою T-SQL /*1*/ SELECT PC.model,speed,hd FROM PC JOIN Product ON (Pc.model=Product.model) WHERE hd=10 or hd=20 and maker='A' ORDER BY speed ASC; /*2*/SELECT * FROM Outcome_o WHERE DAY (date) =14; /*3*/ SELECT DISTINCT maker FROM Product JOIN PC ON (Product.model=PC.model) WHERE speed>=600; /*4*/SELECT maker FROM Product WHERE NOT EXISTS (Select*FROM PC WHERE PC.model=Product.model) AND type= 'PC'; /*5*/ SELECT distinct maker FROM Product Where Type='PC' AND maker not in (SELECT maker FROM Product WHERE NOT EXISTS (Select*FROM PC WHERE PC.model=Product.model) AND type= 'PC') /*6*/SELECT 'name: ' + name name, 'class: '+class class, 'launched: '+cast(launched AS NCHAR) launched FROM Ships /*7*/ SELECT Pl.maker FROM product Pl WHERE type ='PC' --AND NOT EXISTS (SELECT PC.model FROM PC WHERE PC.model=Pl.model) GROUP BY Pl.maker HAVING count(*)!= (SELECT COUNT(*) FROM (select distinct P2.model from Product P2,PC WHERE P2.maker=Pl.maker AND P2.model=PC.model) aa) /*8*/SELECT ship, (SELECT country FROM Classes WhERE class = (SELECT class From ships WHERE name = ship))country FROM Outcomes WHERE result = 'sunk' AND (SELECT country FROM Classes WHERE class = (SELECT class FROM ships WHERE name=ship )) is not null /*9*/SELECT DISTINCT P.maker, CASE WHEN (SELECT count(model)FROM PC WHERE model IN (SELECT P2.model FROM product P2 WHERE P2.maker=P.maker ) ) <>0 THEN 'YES('+ CAST ((SELECT count (model)FROM PC WHERE model IN (SELECT P2.model FROM product P2 WHERE P2.maker = P.maker)) AS nvarchar)+')' ELSE 'NO' END pc FROM product P --GROUP BY P.maker /*10*/ SELECT 'PC' type, model, MAX(price) maxprice FROM PC GROUP BY model UNION SELECT 'Printer' type, model, MAX(price) maxprice FROM Printer GROUP BY model UNION SELECT 'Laptop' type, model, MAX(price) maxprice FROM Laptop GROUP BY model Отриманий результат model speed hd ---------- ------ ------------- 1232 450 10 1260 500 10 1232 500 10 1233 750 20 (строк обработано: 4) point date out ----- ----------------------- --------------------- 1 2001-03-14 00:00:00.000 15348,00 3 2001-09-14 00:00:00.000 2300,00 (строк обработано: 2) maker ---------- A B (строк обработано: 2) maker ---------- E E (строк обработано: 2) maker ---------- A B (строк обработано: 2) name class launched -------------------------- --------------------------- ---------------------------------------- name: California class: Tennessee launched: 1921 name: Haruna class: Kongo launched: 1916 name: Hiei class: Kongo launched: 1914 name: Iowa class: Iowa launched: 1943 name: Kirishima class: Kongo launched: 1915 name: Kongo class: Kongo launched: 1913 name: Missouri class: Iowa launched: 1944 name: Musashi class: Yamato launched: 1942 name: New Jersey class: Iowa launched: 1943 name: North Carolina class: North Carolina launched: 1941 name: Ramillies class: Revenge launched: 1917 name: Renown class: Renown launched: 1916 name: Repulse class: Renown launched: 1916 name: Resolution class: Renown launched: 1916 name: Revenge class: Revenge launched: 1916 name: Royal Oak class: Revenge launched: 1916 name: Royal Sovereign class: Revenge launched: 1916 name: South Dakota class: North Carolina launched: 1941 name: Tennessee class: Tennessee launched: 1920 name: Washington class: North Carolina launched: 1941 name: Wisconsin class: Iowa launched: 1944 name: Yamato class: Yamato launched: 1941 (строк обработано: 22) maker ---------- E (строк обработано: 1) ship country -------------------- -------------------- Kirishima Japan (строк обработано: 1) maker pc ---------- ----------------------------------- A YES(7) B YES(3) C NO D NO E YES(1) (строк обработано: 5) type model maxprice ------- ---------- --------------------- Laptop 1298 1050,00 Laptop 1321 970,00 Laptop 1750 1200,00 Laptop 1752 1150,00 PC 1121 850,00 PC 1232 600,00 PC 1233 980,00 PC 1260 350,00 Printer 1276 400,00 Printer 1288 400,00 Printer 1401 150,00 Printer 1408 270,00 Printer 1433 270,00 Printer 1434 290,00 (строк обработано: 14) Висновок: На цій лабораторній роботі я ознайомилась зі структурованою мовою запитів SQL на основі її діалекту Transact-SQL для СКБД Microsoft SQL Server 2005 та отримати навики написання SQL-запитів для здійснення вибірки даних та отримання статистичної інформації за допомогою інструментарію Management Studio.
Антиботан аватар за замовчуванням

11.04.2013 22:04-

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!