Prześlij pliki do 'Księgarnia.sql'
This commit is contained in:
parent
653cd2cdeb
commit
d282556ab1
207
Księgarnia.sql/księgarnia.sql
Normal file
207
Księgarnia.sql/księgarnia.sql
Normal file
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user