Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра інформаційних
систем та мереж
Звіт
до лабораторної роботи №5
Виконання теоретико-множинних операцій реляційної алгебри засобами SQL
Виконав:
Студент гр. КН-419
Прийняв:
Завалій
Львів - 2008
Мета роботи: Розробити SQL запити для виконання операцій реляційної алгебри: об’єднання, перетину, різниці, Декартового добутку.
Хід роботи
Для простоти заповнимо таблиці tblUsergroup і tblUser фіктивними значеннями.
tblUsergroup:
UsergroupID UsergroupName UsergroupDescription
----------- -------------------------------------------------- --------------------------
1 Admin Administrator
2 User Just a user
tblUser:
UserID UserLogin UserName UserUsergroupID
----------- -------------------- -------------------- ---------------
1 aaa a 1
2 bbb b 2
3 ccc c 1
4 ddd d 2
5 eee e 1
6 fff f 2
7 ggg g 1
8 hhh h 2
Створимо на основі останньої дві нові:
DECLARE @tblUser1 AS TABLE (UserID int, UserLogin nvarchar(20), UserName nvarchar(20), UserUsergroupID int)
INSERT INTO @tblUser1 SELECT UserID, UserLogin, UserName, UserUsergroupID FROM tblUser WHERE UserID < 6
DECLARE @tblUser2 AS TABLE (UserID int, UserLogin nvarchar(20), UserName nvarchar(20), UserUsergroupID int)
INSERT INTO @tblUser2 SELECT UserID, UserLogin, UserName, UserUsergroupID FROM tblUser WHERE UserID > 3
@tblUser1:
UserID UserLogin UserName tblUser2
----------- -------------------- -------------------- -----------
1 aaa a 1
2 bbb b 2
3 ccc c 1
4 ddd d 2
5 eee e 1
@tblUser2:
UserID UserLogin UserName tblUser1
----------- -------------------- -------------------- -----------
4 ddd d 2
5 eee e 1
6 fff f 2
7 ggg g 1
8 hhh h 2
Запит для виконання об‘ єднання:
SELECT * FROM @tblUser1
UNION
SELECT * FROM @tblUser2
Результат:
UserID UserLogin UserName UserUsergroupID
----------- -------------------- -------------------- ---------------
1 aaa a 1
2 bbb b 2
3 ccc c 1
4 ddd d 2
5 eee e 1
6 fff f 2
7 ggg g 1
8 hhh h 2
Запит для виконання перетину:
SELECT * FROM @tblUser1
WHERE UserID IN (SELECT UserID FROM @tblUser2)
Результат:
UserID UserLogin UserName UserUsergroupID
----------- -------------------- -------------------- ---------------
4 ddd d 2
5 eee e 1
Запит для виконання різниці:
SELECT * FROM @tblUser1
WHERE UserID NOT IN (SELECT UserID FROM @tblUser2
Результат:
UserID UserLogin UserName UserUsergroupID
----------- -------------------- -------------------- ---------------
1 aaa a 1
2 bbb b 2
3 ccc c 1
Запит для виконання Декартового добутку:
SELECT * FROM @tblUser1, @tblUser2
Результат:
UserID UserLogin UserName UserUsergroupID UserID UserLogin UserName UserUsergroupID
----------- -------------------- -------------------- --------------- ----------- -------------------- -------------------- ---------------
1 aaa a 1 4 ddd d 2
2 bbb b 2 4 ddd d 2
3 ccc c 1 4 ddd d 2
4 ddd d 2 4 ddd d 2
5 eee e 1 4 ddd d 2
1 aaa a 1 5 eee e 1
2 bbb b 2 5 eee e 1
3 ccc c 1 5 eee e 1
4 ddd d 2 5 eee e 1
5 eee e 1 5 eee e 1
1 aaa a 1 6 fff f 2
2 bbb b 2 6 fff f 2
3 ccc c 1 6 fff f 2
4 ddd d 2 6 fff f 2
5 eee e 1 6 fff f 2
1 aaa a 1 7 ggg g 1
2 bbb b 2 7 ggg g 1
3 ccc c 1 7 ggg g 1
Висновок: на цій лабораторній роботі було розглянуто операції реляційної алгебри та
проведено об’єднання, перетин, різницю та декартовий добуток таблиць.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!