· 4 years ago · May 30, 2021, 08:38 AM
1DROP DATABASE IF EXISTS CatenaSupermercati;
2CREATE DATABASE IF NOT EXISTS CatenaSupermercati;
3USE CatenaSupermercati;
4
5
6DROP TABLE IF EXISTS Prodotti;
7CREATE TABLE IF NOT EXISTS Prodotti(
8 idProdotto INT PRIMARY KEY AUTO_INCREMENT,
9 nome VARCHAR(20) NOT NULL,
10 marca VARCHAR(10) NOT NULL,
11 descrizione VARCHAR(40) NOT NULL,
12 UNIQUE KEY (nome, marca, descrizione),
13 prezzo DECIMAL(5,2) CHECK(prezzo > 0),
14 qt INT NOT NULL DEFAULT 1 CHECK(qt > 0)
15);
16
17
18DROP TABLE IF EXISTS Clienti;
19CREATE TABLE IF NOT EXISTS Clienti(
20 idCliente INT PRIMARY KEY AUTO_INCREMENT,
21 nome VARCHAR(50) NOT NULL,
22 cognome VARCHAR(50) NOT NULL,
23 indirizzo VARCHAR(30) NOT NULL,
24 citta VARCHAR (30) NOT NULL,
25 UNIQUE KEY (nome, cognome, indirizzo, citta),
26 email VARCHAR(24) NOT NULL UNIQUE KEY,
27 passwd VARCHAR(10) NOT NULL
28);
29
30
31DROP TABLE IF EXISTS Supermercati;
32CREATE TABLE IF NOT EXISTS Supermercati(
33 idSupermercato INT PRIMARY KEY AUTO_INCREMENT,
34 nome VARCHAR (24) NOT NULL,
35 indirizzo VARCHAR(30) NOT NULL,
36 citta VARCHAR (30) NOT NULL
37);
38
39
40DROP TABLE IF EXISTS Scorte;
41CREATE TABLE IF NOT EXISTS Scorte(
42 idScorta INT PRIMARY KEY AUTO_INCREMENT,
43 dtOrdine DATE NOT NULL DEFAULT CURRENT_DATE,
44 CHECK(dtOrdine <= CURRENT_DATE),
45 codSupermercato INT NOT NULL,
46 FOREIGN KEY (codSupermercato) REFERENCES Supermercati(idSupermercato),
47 codProdotto INT NOT NULL,
48 FOREIGN KEY (codProdotto) REFERENCES Prodotti(idProdotto),
49 qt INT NOT NULL DEFAULT 0,
50 CHECK (qt >= 0),
51 UNIQUE KEY(dtOrdine, codSupermercato, codProdotto)
52);
53
54
55DROP TABLE IF EXISTS AcquistiClienti;
56CREATE TABLE IF NOT EXISTS AcquistiClienti(
57 idAcquisto INT PRIMARY KEY AUTO_INCREMENT,
58
59 tempovendita DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
60 CHECK(tempovendita <= CURRENT_TIMESTAMP),
61
62 codCliente INT NOT NULL,
63 FOREIGN KEY (codCliente) REFERENCES Clienti(idCliente),
64 codProdotto INT NOT NULL,
65 FOREIGN KEY (codProdotto) REFERENCES Prodotti(idProdotto),
66
67 codSupermercato INT NOT NULL,
68 FOREIGN KEY (codSupermercato) REFERENCES Supermercati(idSupermercato),
69
70 UNIQUE KEY (codCliente,codProdotto,codSupermercato),
71
72 qt INT NOT NULL DEFAULT 1,
73 CHECK(qt > 0)
74);
75
76
77INSERT INTO Clienti (nome, cognome, indirizzo, citta, email, passwd) VALUES
78 ('Aniello', 'Breglia', 'P.zza LaBomba e scappa 23', 'Vico Equense', 'nello@prova.it', '12345');
79
80
81INSERT INTO Prodotti (nome, marca, descrizione, prezzo) VALUES
82 ('Caffè', 'Lavazza', 'miscela pregiata da 500g', '4.55'),
83 ('CocaCola', 'CocaCola', 'Convezione convenienza 1 litro', '1.49'),
84 ('Alcool denaturato', 'Sanitec', 'Alcool denaturato ml 500', '2.25'),
85 ('Aceto di miele', 'Ponti', 'Aceto di miele 1 l', '1.79'),
86 ('Penne Barilla', 'Barilla', '500g', '1.29'),
87 ('Confezione Limoni', 'Selex', '750g', '4.73'),
88 ('Lenticchie rosse', 'Selex', '400g', '3.78'),
89 ('Asiago Fresco', 'Juncu', '500 g', '4.43'),
90 ('Corn Flakes', 'Kellog\'s', '400g', '1.58'),
91 ('Polpo cotto', 'Riunione', '200g', '8.20'),
92 ('Birra Peroni', 'Peroni', '66cl', '0.80'),
93 ('Tarallucci', 'Mulino Bianco', 'Confezione di Biscotti da 200g', '1.20'),
94 ('Acqua Fabia', 'Fabia', 'Cassa d\'acqua 6 bottiglie', '1.10'),
95 ('Pan Bianco', 'Mulino Bianco', 'Confezione da 150g', '0.75'),
96 ('Pan Goccioli', 'Mulino Bianco', 'Pacco da 10 merendine', '1.99');
97
98
99INSERT INTO Supermercati (nome, indirizzo, citta) VALUES
100 ('Il Dollaro', 'Via Carlo 3, 21', 'Napoli'),
101 ('F.lli Russo', 'Via Santa Lucia 18', 'Napoli'),
102 ('Sole 365', 'Corso San Giovanni 75', 'Roma'),
103 ('Life 120', 'Via Mondedonzelli 26', 'Milano'),
104 ('Todis', 'Via Diocleziano 19', 'Calabria');