Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки
Національний університет „Львівська політехніка”
Кафедра EОМ
Звіт
з лабораторної роботи № 5
з дисципліни: “ Організація баз даних”
Створення та використання представлень, функцій та тригерів
2018
Тема: Створення та використання представлень, функцій та тригерів
Мета: Отримати навики використання функцій, представлень та тригерів
Завдання
До кожної таблиці, що була створена у попередніх лабораторних роботах створити представлення
До довільної таблиці додати колонку із типом datetime, яка буде автоматично заповнюватись за допомогою тригера під час INSERT операції.
Написати 3 запити із довільними вбудованими функціями
Написати одну користувацьку функцію, яка повертає скалярне значення і одну користувацьку функцію, яка повертатиме таблицю
При захисті лабораторної роботи взяти індивідуальне завдання у викладача
Вибір варіанту:
№
Завдання
3.
База даних продуктового супермаркету
Хід роботи:
Код запиту що сторює представлення для таблиць:
USE LAB1
GO
CREATE VIEW SHELVES_VIEW AS
SELECT * FROM LAB1.DBO.SHELVES
GO
USE LAB1
GO
CREATE VIEW PRODUCT_PROPERTIES_VIEW AS
SELECT * FROM LAB1.DBO.PRODUCT_PROPERTIES
GO
USE LAB1
GO
CREATE VIEW PRODUCT_VIEW AS
SELECT * FROM LAB1.DBO.PRODUCT
GO
USE LAB1
GO
CREATE VIEW SHELVES_VIEW AS
SELECT * FROM LAB1.DBO.SHELVES
GO
USE LAB1_report
GO
CREATE VIEW SECTION_REPORT_VIEW AS
SELECT * FROM LAB1_report.DBO.SECTION_report
GO
USE LAB1_report
GO
CREATE VIEW SHELVES_REPORT_VIEW AS
SELECT * FROM LAB1_report.DBO.SHELVES_report
GO
Код запиту що сторює тригер для таблиці PRODUCT_PROPERTIES:
USE LAB1
GO
CREATE TRIGGER PRODUCT_PROPERTIES_TIME ON PRODUCT_PROPERTIES FOR INSERT
AS BEGIN
UPDATE PRODUCT_PROPERTIES SET PRODUCT_TIME = GETDATE()
END
GO
Код запиту що використовує вбудовані функції:
SELECT SUM(SHELVE_NUMBER), ID FROM SHELVES
GROUP BY ID HAVING ID > 3
SELECT COUNT(SECTION_NUMBER), SECTION_NAME FROM SECTION
GROUP BY SECTION_NAME
SELECT COUNT(QANTITY), PRICE FROM PRODUCT_PROPERTIES
GROUP BY PRICE HAVING PRICE < 13
Код запиту в якому реалізуюється скалярна та таблична функції:
USE LAB1
GO
CREATE FUNCTION GetShelvesOfProduct
(
@ProductId CHAR(20)
)
RETURNS MONEY
AS
BEGIN
DECLARE @NumberOfShelves AS INT;
SELECT TOP 1
@NumberOfShelves = SHELVE_NUMBER
FROM PRODUCT WHERE PRODUCT_NAME = @ProductId
RETURN @NumberOfShelves;
END
USE LAB1
GO
CREATE FUNCTION GetNameOfProduct( )
RETURNS TABLE
AS
RETURN
SELECT PRODUCT_NAME FROM PRODUCT_PROPERTIES
GROUP BY PRODUCT_NAME
GO
/
Рис.1. Результат виконнання функцій
/
Рис.2. Спрацювання тригера встановлення дати
/
Рис.3. Використання вбудованих функцій
Висновок: В даній лабораторній роботі я отримав отримав навики використання функцій, представлень та тригерів.