Repository navigation
Expand file tree
/
Copy pathDDL.sql
More file actions
75 lines (63 loc) · 1.79 KB
/
Copy pathDDL.sql
File metadata and controls
75 lines (63 loc) · 1.79 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
-- Create a new database
CREATE DATABASE IF NOT EXISTS ecom_db;
-- Bring the database in use
USE ecom_db;
-- Creating table in the ecom_db Database
CREATE TABLE IF NOT EXISTS dim_date(
date_key INT PRIMARY KEY,
date DATE,
day INT,
month INT,
month_name VARCHAR(20),
quarter INT,
year INT,
is_weekend TINYINT(1)
)
CREATE TABLE IF NOT EXISTS dim_customer(
customer_key INT PRIMARY KEY,
customer_id VARCHAR(20),
first_name VARCHAR(50),
last_name VARCHAR(50),
gender CHAR(1),
email VARCHAR(100),
phone VARCHAR(20),
country VARCHAR(50),
state VARCHAR(50),
city VARCHAR(50),
join_date DATE
)
CREATE TABLE IF NOT EXISTS dim_product (
product_key INT PRIMARY KEY,
product_id VARCHAR(20),
product_name VARCHAR(100),
category VARCHAR(50),
brand VARCHAR(50),
unit_price DECIMAL(10,2),
launch_date DATE
);
CREATE TABLE IF NOT EXISTS dim_store (
store_key INT PRIMARY KEY,
store_id VARCHAR(20),
store_name VARCHAR(100),
region VARCHAR(50),
country VARCHAR(50),
city VARCHAR(50)
);
-- Fact Table
CREATE TABLE IF NOT EXISTS fact_sales(
sales_id INT PRIMARY KEY,
date_key INT,
customer_key INT,
product_key INT,
store_key INT,
quantity_sold INT,
unit_price DECIMAL(10,2),
discount DECIMAL(10,2),
total_amount DECIMAL(10,2),
FOREIGN KEY (date_key) REFERENCES dim_date(date_key),
FOREIGN KEY (customer_key) REFERENCES dim_customer(customer_key),
FOREIGN KEY (product_key) REFERENCES dim_product(product_key),
FOREIGN KEY (store_key) REFERENCES dim_store(store_key)
)
-- Add entries into all tables in ecom_db DATABASE Tables
-- ### NOTE ---> THE INSERT STATEMENTS ARE PLACED IN FILE : insert_values_ecom_db_tables.sql ###