Міністерство освіти і науки
Національний університет „Львівська політехніка”
Кафедра EОМ
Звіт
з лабораторної роботи № 2
з дисципліни: “ Організація баз даних”
Використання запитів SELECT, WHERE, LIKE, HAVING, GROUP BY, ORDER BY
2018
Тема: Використання запитів SELECT, WHERE, LIKE, HAVING, GROUP BY, ORDER BY
Мета: отримати навички створення баз даних засобами Microsoft SQL Server 2012, а також заповнення даними створеної бази даних.
Завдання:
Відповідно до діаграми побудованої в лабораторній роботі №1 створити скріпти для таблиць. Таблиці повинні містити первинні та вторинні ключі відповідно діаграм (приклад https://www.youtube.com/watch?v=WKDAX7wN4QQ )
Наповнити таблиці даними (кожна таблиця повинна містити не менше 10 рядків) приклад https://www.youtube.com/watch?v=Kgr8pqEn_ak
Написати по три запити в використанням:
SELECT
WHERE
LIKE
HAVING
GROUP BY
ORDER BY
Ознайомитись і вивчити команди, які описані у теоретичних відомостях
При захисті лабораторної роботи взяти індивідуальне завдання у викладача
Вибір варіанту:
№
Завдання
3.
База даних продуктового супермаркету
Хід роботи:
Код запитів до бази даних:
CREATE TABLE SECTION(SECTION_NUMBER INT PRIMARY KEY NOT NULL,
SECTION_NAME CHAR(20));
CREATE TABLE SHELVES(ID INT PRIMARY KEY NOT NULL,
SHELVE_NUMBER INT NOT NULL,
PRODUCT_NAME CHAR(20),
SECTION_NUMBER INT);
CREATE TABLE PRODUCT(PRODUCT_NAME CHAR(20) PRIMARY KEY NOT NULL,
SHELVE_NUMBER INT);
CREATE TABLE PRODUCT_PROPERTIES(PRODUCT_NAME CHAR(20) PRIMARY KEY NOT NULL,
QANTITY INT,
PRICE FLOAT);
INSERT INTO SECTION VALUES(1, 'TOYS')
INSERT INTO SECTION VALUES(2, 'CLOTHES')
INSERT INTO SECTION VALUES(3, 'BOOKS')
INSERT INTO SECTION VALUES(4, 'SPORTS')
INSERT INTO SECTION VALUES(5, 'OFFICE')
INSERT INTO SECTION VALUES(6, 'DAIRY_PRODUCTS')
INSERT INTO SECTION VALUES(7, 'FRESH_MEAT')
INSERT INTO SECTION VALUES(8, 'VEGETABLE')
INSERT INTO SECTION VALUES(9, 'VIDEO_GAMES')
INSERT INTO SECTION VALUES(10, 'DVD')
SELECT * FROM SECTION
ORDER BY SECTION_NUMBER DESC
SELECT * FROM SECTION
WHERE SECTION_NAME LIKE 'FRESH%'
SELECT COUNT(SECTION_NUMBER), SECTION_NAME FROM SECTION
GROUP BY SECTION_NAME
INSERT INTO SHELVES VALUES(1, 1, 'MILK_3%', 1)
INSERT INTO SHELVES VALUES(2, 1, 'THE_CATCHER_IN_THE_RYE', 2)
INSERT INTO SHELVES VALUES(3, 2,'MEAT', 3)
INSERT INTO SHELVES VALUES(4, 3,'MILK_5%', 4)
INSERT INTO SHELVES VALUES(5, 4,'MILK_7%', 5)
INSERT INTO SHELVES VALUES(6, 5,'MILK_10%', 6)
INSERT INTO SHELVES VALUES(7, 6,'TOMATOES', 7)
INSERT INTO SHELVES VALUES(8, 6,'POTATOES', 8)
INSERT INTO SHELVES VALUES(9, 4,'CHICKEN', 9)
INSERT INTO SHELVES VALUES(10, 4,'WATERMELON', 10)
SELECT * FROM SHELVES
WHERE PRODUCT = 'MILK_3%'
SELECT * FROM SHELVES
ORDER BY SHELVE_NUMBER DESC
SELECT SUM(SHELVE_NUMBER), ID FROM SHELVES
GROUP BY ID HAVING ID > 3
INSERT INTO PRODUCT VALUES('MILK_3%', 1)
INSERT INTO PRODUCT VALUES('MILK_5%', 2)
INSERT INTO PRODUCT VALUES('MILK_7%', 3)
INSERT INTO PRODUCT VALUES('MILK_10%', 4)
INSERT INTO PRODUCT VALUES('THE_CATCHER_IN_THE_RYE', 5)
INSERT INTO PRODUCT VALUES('MEAT', 6)
INSERT INTO PRODUCT VALUES('POTATOES', 7)
INSERT INTO PRODUCT VALUES('TOMATOES', 8)
INSERT INTO PRODUCT VALUES('CHICKEN', 9)
INSERT INTO PRODUCT VALUES('WATERMELON', 10)
SELECT * FROM PRODUCT
SELECT * FROM PRODUCT
WHERE PRODUCT_NAME = 'TOMATOES'
SELECT * FROM PRODUCT
ORDER BY SHELVE_NUMBER ASC
INSERT INTO PRODUCT_PROPERTIES VALUES('MILK_3%', 1, 1.2)
INSERT INTO PRODUCT_PROPERTIES VALUES('MILK_5%', 2, 13.23)
INSERT INTO PRODUCT_PROPERTIES VALUES('MILK_7%', 3, 16.25)
INSERT INTO PRODUCT_PROPERTIES VALUES('MILK_10%', 4, 14.27)
INSERT INTO PRODUCT_PROPERTIES VALUES('THE_CATCHER_IN_THE_RYE', 5, 12.2)
INSERT INTO PRODUCT_PROPERTIES VALUES('MEAT', 6, 1.2)
INSERT INTO PRODUCT_PROPERTIES VALUES('POTATOES', 7, 3.23)
INSERT INTO PRODUCT_PROPERTIES VALUES('TOMATOES', 8, 8.2)
INSERT INTO PRODUCT_PROPERTIES VALUES('CHICKEN', 9, 6.2)
INSERT INTO PRODUCT_PROPERTIES VALUES('WATERMELON', 10, 1.56)
SELECT * FROM PRODUCT_PROPERTIES
ORDER BY PRICE
SELECT * FROM PRODUCT_PROPERTIES
WHERE QANTITY > 3
SELECT COUNT(QANTITY), PRICE FROM PRODUCT_PROPERTIES
GROUP BY PRICE HAVING PRICE < 13.3
/
Рис.1. Приклад виконання оператора SELECT з різними параметрами
Висновок: В даній лабораторній роботі я зрозумів принципи створення таблиць баз даних та навчився використовувати запити SELECT, WHERE, LIKE, HAVING, GROUP BY, ORDER BY