-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate.sql
More file actions
110 lines (100 loc) · 3.26 KB
/
Copy pathcreate.sql
File metadata and controls
110 lines (100 loc) · 3.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
CREATE TABLE IF NOT EXISTS Mega (
Address_ID UUID,
City VARCHAR(50),
State VARCHAR(50),
Country VARCHAR(50),
Postal_Code VARCHAR(10),
Region VARCHAR(50),
Market_ID UUID,
Market_Name VARCHAR(50),
Status VARCHAR(10),
Customer_ID VARCHAR(10),
Customer_Name VARCHAR(100),
Segment VARCHAR(50),
Product_ID VARCHAR(20),
Product_Name VARCHAR(255),
Category_ID UUID,
Category VARCHAR(50),
Sub_Category VARCHAR(50),
Order_ID VARCHAR(15),
Order_Date DATE,
Order_Priority VARCHAR(20),
Row_ID INT,
Quantity INT,
Shipment_ID UUID,
Shipping_Cost DECIMAL(10, 2),
Ship_Mode VARCHAR(20),
Ship_Date DATE,
Sales_ID UUID,
Sales DECIMAL(10, 2),
Discount DECIMAL(10, 2),
Profit DECIMAL(10, 2)
);
CREATE TABLE IF NOT EXISTS Address (
Address_ID UUID PRIMARY KEY,
City VARCHAR(50),
State VARCHAR(50),
Country VARCHAR(50),
Postal_Code VARCHAR(10),
Region VARCHAR(50)
);
CREATE TABLE IF NOT EXISTS Market (
Market_ID UUID PRIMARY KEY,
Market_Name VARCHAR(50) NOT NULL,
Region VARCHAR(50),
Status VARCHAR(10) DEFAULT 'Active' CHECK (Status IN ('Active', 'Inactive'))
);
CREATE TABLE IF NOT EXISTS Customers (
Customer_ID VARCHAR(20) PRIMARY KEY,
Customer_Name VARCHAR(100) NOT NULL,
Segment VARCHAR(50) DEFAULT 'Consumer',
Address_ID UUID,
Market_ID UUID,
FOREIGN KEY (Address_ID) REFERENCES Address(Address_ID) ON DELETE CASCADE,
FOREIGN KEY (Market_ID) REFERENCES Market(Market_ID) ON DELETE NO ACTION
);
CREATE TABLE IF NOT EXISTS Categories (
Category_ID UUID PRIMARY KEY,
Category VARCHAR(50),
Sub_Category VARCHAR(50)
);
CREATE TABLE IF NOT EXISTS Products (
Product_ID VARCHAR(20) PRIMARY KEY,
Product_Name VARCHAR(255) NOT NULL,
Category_ID UUID NOT NULL,
FOREIGN KEY (Category_ID) REFERENCES Categories(Category_ID) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS Orders (
Order_ID VARCHAR(15) PRIMARY KEY,
Order_Date DATE DEFAULT NULL,
Customer_ID VARCHAR(10) NOT NULL,
Order_Priority VARCHAR(20) DEFAULT 'Low',
FOREIGN KEY (Customer_ID) REFERENCES Customers(Customer_ID) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS Order_Details (
Row_ID INT PRIMARY KEY,
Order_ID VARCHAR(15) NOT NULL,
Product_ID VARCHAR(20) NOT NULL,
Quantity INT NOT NULL DEFAULT 1 CHECK (Quantity > 0),
FOREIGN KEY (Order_ID) REFERENCES Orders(Order_ID) ON DELETE CASCADE,
FOREIGN KEY (Product_ID) REFERENCES Products(Product_ID) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS Shipping (
Shipment_ID UUID PRIMARY KEY,
Shipping_Cost DECIMAL(10, 2),
Ship_Mode VARCHAR(20) DEFAULT 'Standard Class',
Ship_Date DATE DEFAULT NULL,
Order_ID VARCHAR(15) NOT NULL,
Address_ID UUID,
FOREIGN KEY (Order_ID) REFERENCES Orders(Order_ID) ON DELETE CASCADE,
FOREIGN KEY (Address_ID) REFERENCES Address(Address_ID)
);
CREATE TABLE IF NOT EXISTS Sales (
Sales_ID UUID PRIMARY KEY,
Order_ID VARCHAR(15) NOT NULL,
Product_ID VARCHAR(20) NOT NULL,
Sales DECIMAL(10, 2),
Profit DECIMAL(10, 2),
FOREIGN KEY (Order_ID) REFERENCES Orders(Order_ID) ON DELETE CASCADE,
FOREIGN KEY (Product_ID) REFERENCES Products(Product_ID) ON DELETE CASCADE
);