From d282556ab11672fd07f56b343ac3d9d96de1113d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arkadiusz=20Charli=C5=84ski?= Date: Mon, 28 Feb 2022 02:59:47 +0100 Subject: [PATCH] =?UTF-8?q?Prze=C5=9Blij=20pliki=20do=20'Ksi=C4=99garnia.s?= =?UTF-8?q?ql'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KsiÄ™garnia.sql/ksiÄ™garnia.sql | 207 ++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 KsiÄ™garnia.sql/ksiÄ™garnia.sql diff --git a/KsiÄ™garnia.sql/ksiÄ™garnia.sql b/KsiÄ™garnia.sql/ksiÄ™garnia.sql new file mode 100644 index 0000000..779bc37 --- /dev/null +++ b/KsiÄ™garnia.sql/ksiÄ™garnia.sql @@ -0,0 +1,207 @@ +/* +=================================================== +KONCEPCJA PROJEKTU BAZY DANYCH +=================================================== + +--------------------------------------------------- +1. Nazwa bazy danych: +--------------------------------------------------- +- Ksiegarnia + +--------------------------------------------------- +2. Nazwa tabeli transakcyjnej +--------------------------------------------------- +- sprzeda¿ - rejestracja sprzedarzy oraz wysy³ek + (id_sprzedazy, id_klienta, status[czeka,wys³ana,dostarczona], ³¹czny_koszt) + +--------------------------------------------------- +3. Nazwy pozosta³ych tabel (co najmniej czterech): +---------------------------------------------------- +- Kupuj¹cy (id_klienta, imie, miasto, nazwisko, ulica, nr domu, kod pocztowy) +- Ksi¹¿ki(id_ksi¹¿ki, tytu³, gatunek, ilosc stron, autor, iloœæ sztuk w magazynie, cena) +- sprzedane_ksi¹¿ki(id_sprzedazy, id_klienta, id_ksi¹¿ki) + +----------------------------------------------------------------- +4. Nazwy piêciu raportów zbudowanych na tabeli transakcyjnej + +------------------------------------------------------------------ + +*/ + +USE master +GO + +if DB_ID('Ksiegarnia') IS NULL +CREATE DATABASE Ksiegarnia +GO + +USE Ksiegarnia + +IF OBJECT_ID('sprzedane_ksiazki') IS NOT NULL +DROP TABLE sprzedane_ksiazki + +IF OBJECT_ID('ksiazki') IS NOT NULL +DROP TABLE ksiazki + +IF OBJECT_ID('sprzedaz') IS NOT NULL +DROP TABLE sprzedaz + +IF OBJECT_ID('kupujacy') IS NOT NULL +DROP TABLE kupujacy + + +IF OBJECT_ID('kupujacy') IS NULL +CREATE TABLE kupujacy( +id_klienta INT IDENTITY(1,1) PRIMARY KEY, +imie VARCHAR(20), +nazwisko VARCHAR(20), +miasto VARCHAR(20), +ulica VARCHAR(20), +nr_domu INT, +kod_pocztowy VARCHAR(6) +) + +IF OBJECT_ID('sprzedaz') IS NULL +CREATE TABLE sprzedaz( +id_sprzedazy INT IDENTITY(1,1) PRIMARY KEY, +id_klienta INT FOREIGN KEY REFERENCES kupujacy(id_klienta), +status_wysylki VARCHAR(11) CHECK(status_wysylki in ('czeka','wyslana','dostarczona')), +data_sprzedania DATE + +) + + +IF OBJECT_ID('ksiazki') IS NULL +CREATE TABLE ksiazki( +id_ksiazki INT IDENTITY(1,1) PRIMARY KEY , +tytul VARCHAR(20), +gatunek VARCHAR(30), +autor VARCHAR(30), +ile_w_magazynie INT, +cena INT +) + +IF OBJECT_ID('sprzedane_ksiazki') IS NULL +CREATE TABLE sprzedane_ksiazki( +id_sprzedazy INT FOREIGN KEY REFERENCES kupujacy(id_klienta), +id_ksiazki INT FOREIGN KEY REFERENCES ksiazki(id_ksiazki), +ile_sztuk INT, +) + +INSERT INTO kupujacy (imie, nazwisko, miasto, ulica, nr_domu, kod_pocztowy) VALUES +('Roman','Mak³owicz','Lublin','Szkolna',17,'21-102'), +('Robert','Lewandowski','Warszawa','Kwiatowa',12,'45-100'), +('Renata','Nowak','Poznañ','Wojaka',42, '21-241'), +('Kamil', 'Stary','Warszawa','Harnasia',89,'12-875'), +('Stachu', 'Stach','Wroc³aw','Jana Paw³a II',2,'53-023'), +('Justyna', 'Zeszyt','Warszawa','Wyzwolenia',123,'21-370'), +('Maciej', 'Nowak','Gdañsk','Pó³wiejska',232,'23-689'), +('Jakub', 'Kaczor', 'Kraków','Wroc³awska',897,'89-898'), +('Bartosz','Pawlik','Poznañ','Polska',34, '25-567'), +('Roman','Mak³owicz','Lublin','Szkolna',17,'21-102'), +('Robert','Lewandowski','Warszawa','Kwiatowa',12,'45-100'), +('Renata','Nowak','Poznañ','Wojaka',42, '21-241'), +('Kamil', 'Stary','Warszawa','Harnasia',89,'12-875'), +('Stachu', 'Stach','Wroc³aw','Jana Paw³a II',2,'53-023'), +('Justyna', 'Zeszyt','Warszawa','Wyzwolenia',123,'21-370'), +('Maciej', 'Nowak','Gdañsk','Pó³wiejska',232,'23-689'), +('Jakub', 'Kaczor', 'Kraków','Wroc³awska',897,'89-898'), +('Bartosz','Pawlik','Poznañ','Polska',34, '25-567'), +('Roman','Mak³owicz','Lublin','Szkolna',17,'21-102'), +('Robert','Lewandowski','Warszawa','Kwiatowa',12,'45-100'), +('Renata','Nowak','Poznañ','Wojaka',42, '21-241'), +('Kamil', 'Stary','Warszawa','Harnasia',89,'12-875'), +('Stachu', 'Stach','Wroc³aw','Jana Paw³a II',2,'53-023'), +('Justyna', 'Zeszyt','Warszawa','Wyzwolenia',123,'21-370'), +('Maciej', 'Nowak','Gdañsk','Pó³wiejska',232,'23-689'), +('Jakub', 'Kaczor', 'Kraków','Wroc³awska',897,'89-898'), +('Bartosz','Pawlik','Poznañ','Polska',34, '25-567') + + +INSERT INTO sprzedaz(id_klienta, status_wysylki, data_sprzedania) VALUES +(1, 'czeka','2022-01-31'), +(5, 'dostarczona','2022-01-31'), +(7, 'wyslana','2022-01-31'), +(2, 'czeka','2022-01-23'), +(3, 'dostarczona','2022-01-29'), +(6, 'wyslana','2022-02-28'), +(1, 'czeka','2022-01-31'), +(5, 'dostarczona','2022-01-31'), +(7, 'wyslana','2022-01-31'), +(2, 'czeka','2022-01-23'), +(3, 'dostarczona','2022-01-29'), +(6, 'wyslana','2022-02-28') + +INSERT INTO ksiazki(tytul, gatunek, autor, ile_w_magazynie, cena) VALUES +('System operacyjne', 'Nauka i technika', 'William Stallings', 50,79.99), +('Lœnienie', 'Horror', 'Stephen King', 272, 12.99), +('Pamiêæ nieulotna', 'Autobiografia', 'Edward Snowden', 87, 39.99), +('Metro 2033', 'sci-fy', 'Dimytry Glukhovsky', 52, 29.99), +('Uciekinier', 'Horror', 'Stephen King', 126, 15.99), +('Prymityw', 'Autobiografia','Jaros³aw Komputer', 666, 9.99) + + + +INSERT INTO sprzedane_ksiazki(id_sprzedazy, id_ksiazki, ile_sztuk) VALUES +(2,2,2), +(2,3,1), +(2,1,1), +(1,3,1), +(3,2,1), +(4,4,1), +(5,3,4), +(5,5,3), +(6,5,1), +(2,2,2), +(2,3,1), +(2,1,1), +(1,3,1), +(3,2,1), +(4,4,1), +(5,3,4), +(5,5,3), +(6,5,1), +(2,2,2), +(2,3,1), +(2,1,1), +(1,3,1), +(3,2,1), +(4,4,1), +(5,3,4), +(5,5,3), +(6,5,1) + + +IF OBJECT_ID('filtr_gatunki','P') IS NOT NULL +DROP PROCEDURE filtr_gatunki +GO + +CREATE PROCEDURE filtr_gatunki (@gatunek VARCHAR(30)) AS +SELECT tytul, autor FROM ksiazki +WHERE gatunek = @gatunek +GO + +EXEC filtr_gatunki Autobiografia + +IF OBJECT_ID('szczeguly_klienta','P') IS NOT NULL +DROP PROCEDURE szczeguly_klienta +GO + +CREATE PROCEDURE szczeguly_klienta (@nazwisko VARCHAR(20), @imie VARCHAR(20)) AS +SELECT kupujacy.*, ksiazki.tytul, sprzedaz.data_sprzedania, sprzedaz.status_wysylki, sprzedane_ksiazki.ile_sztuk FROM kupujacy +INNER JOIN sprzedaz ON kupujacy.id_klienta = sprzedaz.id_klienta +INNER JOIN sprzedane_ksiazki ON sprzedane_ksiazki.id_sprzedazy = sprzedaz.id_sprzedazy +INNER JOIN ksiazki ON ksiazki.id_ksiazki = sprzedane_ksiazki.id_ksiazki +WHERE nazwisko = @nazwisko AND imie = @imie +GO + +EXEC szczeguly_klienta Nowak, Maciej + +IF OBJECT_ID('bestselery','V') IS NOT NULL +DROP PROCEDURE bestselery +GO +SELECT DISTINCT TOP 5 ksiazki.tytul, SUM(sprzedane_ksiazki.ile_sztuk) AS ilosc_sprzedanych_ksiazek FROM ksiazki +INNER JOIN sprzedane_ksiazki ON ksiazki.id_ksiazki = sprzedane_ksiazki.id_ksiazki +GROUP BY tytul +ORDER BY ilosc_sprzedanych_ksiazek DESC +