-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAlternativeSecondTask.sql
More file actions
56 lines (47 loc) · 1.29 KB
/
Copy pathAlternativeSecondTask.sql
File metadata and controls
56 lines (47 loc) · 1.29 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
create database SecondTask;
use SecondTask;
create schema Orders;
create table Orders.City
(
CityId INT IDENTITY PRIMARY KEY,
Name VARCHAR(100) NOT NULL
);
CREATE TABLE Orders.Address
(
AddressId INT IDENTITY PRIMARY KEY,
CityId INT NOT NULL,
Location VARCHAR(200) NOT NULL,
FOREIGN KEY (CityId) REFERENCES Orders.City(CityId)
);
CREATE TABLE Orders.Customers
(
CustomerId INT IDENTITY PRIMARY KEY,
FullName VARCHAR(200) NOT NULL,
Gender nchar(1) NOT NULL,
CONSTRAINT chk_gender CHECK (Gender IN ('M', 'F'))
);
CREATE TABLE Orders.Products
(
ProductId INT IDENTITY PRIMARY KEY,
ProductName VARCHAR(100) NOT NULL,
ProductPrice MONEY NOT NULL
);
CREATE TABLE Orders.OrderDetails
(
OrderId INT IDENTITY PRIMARY KEY,
OrderDate DATE NOT NULL,
CustomerId INT NOT NULL,
AddressId INT NOT NULL,
Total MONEY NOT NULL,
FOREIGN KEY (CustomerId) REFERENCES Orders.Customers(CustomerId),
FOREIGN KEY (AddressId) REFERENCES Orders.Address(AddressId),
);
CREATE TABLE Orders.Quantity
(
OrderId INT NOT NULL,
ProductId INT NOT NULL,
Quantity INT NOT NULL,
PRIMARY KEY (OrderId, ProductId),
FOREIGN KEY (OrderId) REFERENCES Orders.OrderDetails(OrderId),
FOREIGN KEY (ProductId) REFERENCES Orders.Products(ProductId)
)