-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSQLQuery1.sql
155 lines (136 loc) · 8.19 KB
/
SQLQuery1.sql
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
CREATE DATABASE db_ECommerceShop
GO
USE db_ECommerceShop
GO
CREATE TABLE Users (
UserId INT PRIMARY KEY IDENTITY(1,1),
UserName NVARCHAR(255) NOT NULL,
UserEmail NVARCHAR(255) NOT NULL,
UserPassword NVARCHAR(255) NOT NULL,
UserRole NVARCHAR(50) NOT NULL,
FullName NVARCHAR(255) NOT NULL,
Gender BIT,
AddressInfo NVARCHAR(MAX),
PhoneNum VARCHAR (50)
);
--Trường Id: khóa chính của bảng, là số nguyên duy nhất định danh cho mỗi user.
--Trường Name: tên của user.
--Trường Email: địa chỉ email của user.
--Trường Password: mật khẩu của user.
--Trường Role: vai trò của user trong hệ thống (ví dụ: customer, employee, admin).
GO
CREATE TABLE Categories (
CategoryId INT PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(255) NOT NULL
);
GO
CREATE TABLE Products (
ProductId INT PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(255) NOT NULL,
Description NVARCHAR(MAX) NOT NULL,
Price DECIMAL(18, 2) NOT NULL,
LastPrice DECIMAL (18, 2) NOT NULL,
CategoryId INT NOT NULL,
FOREIGN KEY (CategoryId) REFERENCES Categories(CategoryId)
);
-- Insert some fake categories
INSERT INTO Categories (Name) VALUES ('Electronics');
INSERT INTO Categories (Name) VALUES ('Clothing');
INSERT INTO Categories (Name) VALUES ('Books');
INSERT INTO Categories (Name) VALUES ('Furniture');
-- Insert some fake products
INSERT INTO Products (Name, Description, Price, LastPrice, CategoryId)
VALUES ('Laptop', 'High-performance laptop with SSD', 999.99, 1099.99, 1);
INSERT INTO Products (Name, Description, Price, LastPrice, CategoryId)
VALUES ('T-shirt', 'Cotton T-shirt with logo', 19.99, 24.99, 2);
INSERT INTO Products (Name, Description, Price, LastPrice, CategoryId)
VALUES ('Java Programming Book', 'Comprehensive guide to Java programming', 39.99, 49.99, 3);
INSERT INTO Products (Name, Description, Price, LastPrice, CategoryId)
VALUES ('Sofa', 'Comfortable sofa for your living room', 499.99, 599.99, 4);
--Trường Id: khóa chính của bảng, là số nguyên duy nhất định danh cho mỗi product.
--Trường Name: tên của product.
--Trường Description: mô tả của product.
--Trường Price: giá của product.
--Trường CategoryId: khóa ngoại đến category mà product thuộc về.
GO
CREATE TABLE ProductImages (
Id INT PRIMARY KEY,
ProductId INT NOT NULL,
Url NVARCHAR(MAX) NOT NULL,
FOREIGN KEY (ProductId) REFERENCES Products(ProductId)
);
--Trường Id: khóa chính của bảng, là số nguyên duy nhất định danh cho mỗi image.
--Trường ProductId: khóa ngoại đến product mà image thuộc về.
--Trường Url: đường dẫn đến image.
GO
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
UserId INT NOT NULL,
CreatedAt DATETIME NOT NULL,
UpdatedAt DATETIME,
Status INT NOT NULL,
ShippingCost DECIMAL(18, 2) NOT NULL,
Tax DECIMAL(18, 2) NOT NULL,
Discount DECIMAL(18, 2) NOT NULL,
FOREIGN KEY (UserId) REFERENCES Users(UserId)
);
--Trường Id: khóa chính của bảng, là số nguyên duy nhất định danh cho mỗi order.
--Trường UserId: khóa ngoại đến user tạo order.
--Trường CreatedAt: thời gian tạo order.
--Trường UpdatedAt: thời gian cập nhật order (nếu có).
--Trường Status: trạng thái của order.
--Trường ShippingCost: chi phí vận chuyển của order.
--Trường Tax: thuế giá trị gia tăng của order.
--Trường Discount: tỉ lệ giảm giá của order.
GO
CREATE TABLE OrderItems (
OrderID INT NOT NULL,
ProductID INT NOT NULL,
Quantity INT NOT NULL,
Price DECIMAL(18,2) NOT NULL,
CONSTRAINT PK_OrderItems PRIMARY KEY (OrderID, ProductID),
CONSTRAINT FK_OrderID FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
CONSTRAINT FK_ProductID FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
CREATE TABLE OrderStatuses (
OrderStatusID INT PRIMARY KEY,
OrderStatusName VARCHAR(50) NOT NULL
);
CREATE TABLE OrderHistories (
OrderHistoryID INT PRIMARY KEY,
OrderID INT NOT NULL,
OrderStatusID INT NOT NULL,
UserID INT NOT NULL,
ChangeDate DATETIME NOT NULL,
Note VARCHAR(500) NOT NULL,
CONSTRAINT FK_OrderID_2 FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
CONSTRAINT FK_OrderStatusID_2 FOREIGN KEY (OrderStatusID) REFERENCES OrderStatuses(OrderStatusID),
CONSTRAINT FK_UserID_2 FOREIGN KEY (UserID) REFERENCES Users(UserID)
);
---DATA----
INSERT INTO Users (username, useremail, userpassword, userrole, fullname, gender, addressinfo, phonenum)
VALUES ('lethaivinh', 'lethaivinh@example.com', 'password', 'user', N'Lê Thái Vinh', 1, N'123 Đường Trần Phú, Thành phố Hải Phòng, Tỉnh Hải Phòng', '123-456-7890');
INSERT INTO Users (username, useremail, userpassword, userrole, fullname, gender, addressinfo, phonenum)
VALUES ('tranxuanhung', 'tranxuanhung@example.com', 'password', 'user', N'Trần Xuân Hùng', 1, N'123 Đường Lê Duẩn, Thành phố Hà Nội, Tỉnh Hà Nội', '123-456-7890');
INSERT INTO Users (username, useremail, userpassword, userrole, fullname, gender, addressinfo, phonenum)
VALUES ('lyvanlinh', 'lyvanlinh@example.com', 'password', 'user', N'Lý Văn Linh', 1, N'123 Đường Nguyễn Huệ, Thành phố Hồ Chí Minh, Tỉnh Hồ Chí Minh', '123-456-7890');
INSERT INTO Users (username, useremail, userpassword, userrole, fullname, gender, addressinfo, phonenum)
VALUES ('dinhhuuhuy', 'dinhhuuhuy@example.com', 'password', 'user', N'Đinh Hữu Huy', 1, N'123 Đường Hùng Vương, Thành phố Đà Nẵng, Tỉnh Đà Nẵng', '123-456-7890');
INSERT INTO Users (username, useremail, userpassword, userrole, fullname, gender, addressinfo, phonenum)
VALUES ('tranvannam', 'tranvannam@example.com', 'password', 'user', N'Trần Văn Nam', 1, N'123 Đường Bạch Đằng, Thành phố Hải Dương, Tỉnh Hải Dương', '123-456-7890');
INSERT INTO Users (username, useremail, userpassword, userrole, fullname, gender, addressinfo, phonenum)
VALUES ('lehuuhung', 'lehuuhung@example.com', 'password', 'user', N'Lê Hữu Hùng', 1, N'123 Đường 3 Tháng 2, Thành phố Cần Thơ, Tỉnh Cần Thơ', '123-456-7890');
INSERT INTO Users (username, useremail, userpassword, userrole, fullname, gender, addressinfo, phonenum)
VALUES ('dinhxuantuan', 'dinhxuantuan@example.com', 'password', 'user', N'Đinh Xuân Tuấn', 1, N'123 Đường Trần Hưng Đạo, Thành phố Hải Dương, Tỉnh Hải Dương', '123-456-7890');
GO
INSERT INTO Users (username, useremail, userpassword, userrole, fullname, gender, addressinfo, phonenum)
VALUES
('nguyenthihuongs', 'nguyenthihuongs@example.com', 'password', 'user', N'Nguyễn Thị Hương', 0, N'123 Đường Trần Phú, Thành phố Hải Phòng, Tỉnh Hải Phòng', '123-456-7890'),
('lethuhanhs', 'lethuhanhs@example.com', 'password', 'user', N'Lê Thu Hạnh', 0, N'123 Đường Lê Duẩn, Thành phố Hà Nội, Tỉnh Hà Nội', '123-456-7890'),
('tranthuyngocs', 'tranthuyngocs@example.com', 'password', 'user', N'Trần Thuỷ Ngọc', 0, N'123 Đường Nguyễn Huệ, Thành phố Hồ Chí Minh, Tỉnh Hồ Chí Minh', '123-456-7890'),
('nguyenthanhhoas', 'nguyenthanhhoas@example.com', 'password', 'user', N'Nguyễn Thanh Hoa', 0, N'123 Đường Hùng Vương, Thành phố Đà Nẵng, Tỉnh Đà Nẵng', '123-456-7890'),
('lethubichs', 'lethubichs@example.com', 'password', 'user', N'Lê Thu Bích', 0, N'123 Đường Bạch Đằng, Thành phố Hải Dương, Tỉnh Hải Dương', '123-456-7890'),
('tranngocvans', 'tranngocvans@example.com', 'password', 'user', N'Trần Ngọc Vân', 0, N'123 Đường 3 Tháng 2, Thành phố Cần Thơ, Tỉnh Cần Thơ', '123-456-7890'),
('nguyenthuThanhs', 'nguyenthuThanhs@example.com', 'password', 'user', N'Nguyễn Thu Thanh', 0, N'123 Đường Trần Hưng Đạo, Thành phố Hải Dương, Tỉnh Hải Dương', '123-456-7890'),
('lehanhthuys', 'lehanhthuys@example.com', 'password', 'user', N'Lê Hạnh Thuỷ', 0, N'123 Đường Phan Chu Trinh, Thành phố Hà Nội, Tỉnh Hà Nội', '123-456-7890'),
('tranbichhuongs', 'tranbichhuongs@example.com', 'password', 'user', N'Trần Bích Hương', 0, N'123 Đường Nguyễn Văn Cừ, Thành phố Hồ Chí Minh, Tỉnh Hồ Chí Minh', '123-456-7890')