Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
/
Звіт
до лабораторної роботи № 2
з дисципліни: «Організація баз даних»
«Використання запитів SELECT, WHERE, LIKE, HAVING, GROUP BY, ORDER BY»
Варіант №11
Мета роботи: отримати навички створення баз даних засобами Microsoft SQL Server 2012, а також заповнення даними створеної бази даних.
Завдання:
Відповідно до діаграми побудованої в лабораторній роботі №1 створити скріпти для таблиць. Таблиці повинні містити первинні та вторинні ключі відповідно діаграм
Наповнити таблиці даними (кожна таблиця повинна містити не менше 10 рядків)
Написати по три запити в використанням:
SELECT
WHERE
LIKE
HAVING
GROUP BY
ORDER BY
Ознайомитись і вивчити команди, які описані у теоретичних відомостях
Варіант № 11 - База даних цирку
Скріпти таблиць:
CREATE TABLE CUST (
ID INT PRIMARY KEY,
FirstName VARCHAR (25),
SecondName VARCHAR (25));
CREATE TABLE TICKET (
TicketID INT PRIMARY KEY,
CustomerID INT FOREIGN KEY REFERENCES CUST(ID),
ShowNum INT);
CREATE TABLE SHOW (
ShowID INT PRIMARY KEY,
ShowName VARCHAR (45),
date_n_time DATETIME,
);
CREATE TABLE REF_TICK_SHOW (
ticket_id INT FOREIGN KEY REFERENCES TICKET(TicketID),
show_id INT FOREIGN KEY REFERENCES SHOW(ShowID),
PRIMARY KEY (ticket_id , show_id )
);
CREATE TABLE SHOW_PRICE (
Price REAL PRIMARY KEY,
show_id INT UNIQUE FOREIGN KEY REFERENCES SHOW(ShowID)
);
2. Заповнення таблиць:
INSERT INTO CUST VALUES (123, 'John', 'Smith')
INSERT INTO CUST VALUES (124, 'James', 'Hetfield')
INSERT INTO CUST VALUES (125, 'Lars', 'Ulrich')
INSERT INTO CUST VALUES (126, 'Kirk', 'Hammett')
INSERT INTO CUST VALUES (127, 'Roberto', 'Trujillo')
INSERT INTO CUST VALUES (128, 'Cliff', 'Burton')
INSERT INTO CUST VALUES (129, 'David', 'Mustaine')
INSERT INTO CUST VALUES (130, 'Klaus', 'Meine')
INSERT INTO CUST VALUES (131, 'Rudolf', 'Schenker')
INSERT INTO CUST VALUES (132, 'Matthias', 'Jabs')
INSERT INTO TICKET VALUES (1824, 123, 3)
INSERT INTO TICKET VALUES (1594, 131, 2)
INSERT INTO TICKET VALUES (2563, 131, 1)
INSERT INTO TICKET VALUES (8433, 125, 1)
INSERT INTO TICKET VALUES (1465, 127, 2)
INSERT INTO TICKET VALUES (8662, 124, 3)
INSERT INTO TICKET VALUES (4256, 128, 3)
INSERT INTO TICKET VALUES (8335, 127, 1)
INSERT INTO TICKET VALUES (2466, 124, 3)
INSERT INTO TICKET VALUES (2589, 126, 1)
INSERT INTO SHOW VALUES (1000, 'Gymnastics show', '2018-09-21 16:00:00')
INSERT INTO SHOW VALUES (1001, 'The Big 4, Antrax', '2018-09-22 15:00:00')
INSERT INTO SHOW VALUES (1002, 'The Big 4, Megadeth', '2018-09-21 17:30:00')
INSERT INTO SHOW VALUES (1003, 'The Big 4, Slayer', '2018-09-21 20:00:00')
INSERT INTO SHOW VALUES (1004, 'The Big 4, Metallica', '2018-09-21 22:00:00')
INSERT INTO SHOW VALUES (1005, 'Water circus', '2018-09-22 10:00:00')
INSERT INTO SHOW VALUES (1006, 'Clowns and comedy only', '2018-09-22 16:00:00')
INSERT INTO SHOW VALUES (1007, 'Almeras Live Show', '2018-09-23 16:00:00')
INSERT INTO SHOW VALUES (1008, 'Circus de la Christophe Vingrau', '2018-09-23 18:00:00')
INSERT INTO SHOW VALUES (1009, 'The Greatest Show by P.T. barnum', '2018-09-24 16:00:00')
INSERT INTO SHOW VALUES (1010, 'Circus on ice', '2018-09-24 18:00:00')
INSERT INTO REF_TICK_SHOW VALUES (1465, 1000)
INSERT INTO REF_TICK_SHOW VALUES (1465, 1010)
INSERT INTO REF_TICK_SHOW VALUES (1594, 1000)
INSERT INTO REF_TICK_SHOW VALUES (1594, 1007)
INSERT INTO REF_TICK_SHOW VALUES (1824, 1001)
INSERT INTO REF_TICK_SHOW VALUES (1824, 1002)
INSERT INTO REF_TICK_SHOW VALUES (1824, 1003)
INSERT INTO REF_TICK_SHOW VALUES (2466, 1005)
INSERT INTO REF_TICK_SHOW VALUES (2466, 1001)
INSERT INTO REF_TICK_SHOW VALUES (2466, 1007)
INSERT INTO SHOW_PRICE VALUES (150, 1000)
INSERT INTO SHOW_PRICE VALUES (160, 1001)
INSERT INTO SHOW_PRICE VALUES (170, 1002)
INSERT INTO SHOW_PRICE VALUES (190, 1003)
INSERT INTO SHOW_PRICE VALUES (100, 1004)
INSERT INTO SHOW_PRICE VALUES (240, 1005)
INSERT INTO SHOW_PRICE VALUES (300, 1006)
INSERT INTO SHOW_PRICE VALUES (175, 1007)
INSERT INTO SHOW_PRICE VALUES (320, 1008)
INSERT INTO SHOW_PRICE VALUES (350, 1009)
INSERT INTO SHOW_PRICE VALUES (400, 1010)
///
//
Рис.1. Заповнені таблиці
3. Написання запитів:
Таблиця TICKET
SELECT * FROM TICKET
WHERE ShowNum = 3
/
SELECT * FROM TICKET
ORDER BY ShowNum
/
SELECT COUNT(TicketID), ShowNum
FROM TICKET
GROUP BY ShowNum
HAVING COUNT(TicketID) > 1;
/
*no column name = count(TicketID)
Таблиця CUST
SELECT * FROM CUST
WHERE SecondName LIKE 'H%'
/
SELECT * FROM CUST
ORDER BY SecondName
/
SELECT MAX(ID), FirstName
FROM CUST
GROUP BY FirstName
HAVING MAX(ID) >125;
/
REF_TICK_SHOW
SELECT COUNT(show_id), ticket_id
FROM REF_TICK_SHOW
GROUP BY ticket_id;
/
*no column name = count(show_id)
SELECT * FROM REF_TICK_SHOW
where ticket_id > 1600;
/
SELECT SUM(show_id), ticket_id
FROM REF_TICK_SHOW
GROUP BY ticket_id
HAVING SUM(show_id) >= 2010;
/
*no column name = sum(show_id)
Висновок. На даній лабораторній роботі я отримала навички створення баз даних засобами Microsoft SQL Server 2012, а також заповнила даними базу даних цирку.