41 lines
1.5 KiB
Transact-SQL
41 lines
1.5 KiB
Transact-SQL
IF DB_ID('demo') IS NULL CREATE DATABASE demo;
|
|
GO
|
|
USE demo;
|
|
GO
|
|
IF OBJECT_ID('dbo.users','U') IS NOT NULL DROP TABLE dbo.order_items;
|
|
IF OBJECT_ID('dbo.orders','U') IS NOT NULL DROP TABLE dbo.orders;
|
|
IF OBJECT_ID('dbo.users','U') IS NOT NULL DROP TABLE dbo.users;
|
|
GO
|
|
CREATE TABLE dbo.users (
|
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
|
name NVARCHAR(64) NOT NULL,
|
|
email NVARCHAR(128) NULL,
|
|
status TINYINT NOT NULL DEFAULT 1,
|
|
created_at DATETIME2 DEFAULT SYSUTCDATETIME()
|
|
);
|
|
CREATE TABLE dbo.orders (
|
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
|
user_id INT NOT NULL,
|
|
amount DECIMAL(12,2) NOT NULL DEFAULT 0,
|
|
status NVARCHAR(16) NOT NULL DEFAULT 'pending',
|
|
created_at DATETIME2 DEFAULT SYSUTCDATETIME()
|
|
);
|
|
CREATE TABLE dbo.order_items (
|
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
|
order_id INT NOT NULL,
|
|
sku NVARCHAR(64) NOT NULL,
|
|
qty INT NOT NULL DEFAULT 1,
|
|
price DECIMAL(12,2) NOT NULL DEFAULT 0
|
|
);
|
|
INSERT INTO dbo.users (name, email, status) VALUES
|
|
(N'alice', N'alice@demo.local', 1),
|
|
(N'bob', N'bob@demo.local', 1),
|
|
(N'carol', N'carol@demo.local', 1),
|
|
(N'dave', N'dave@demo.local', 0),
|
|
(N'erin', N'erin@demo.local', 1);
|
|
INSERT INTO dbo.orders (user_id, amount, status) VALUES
|
|
(1, 99.50, N'paid'), (1, 12.00, N'pending'), (2, 250.00, N'paid'), (3, 8.80, N'cancelled'), (5, 41.20, N'paid');
|
|
INSERT INTO dbo.order_items (order_id, sku, qty, price) VALUES
|
|
(1, N'SKU-A', 1, 99.50), (2, N'SKU-B', 2, 6.00), (3, N'SKU-C', 5, 50.00), (4, N'SKU-D', 1, 8.80), (5, N'SKU-E', 2, 20.60);
|
|
GO
|