sqlserver小商店销售管理系统
时间: 2025-01-02 15:29:36 浏览: 3
### 使用 SQL Server 构建小商店销售管理系统
#### 设计数据库结构
为了构建一个小商店销售管理系统,首先需要设计合理的数据库表来存储商品信息、客户信息以及交易记录。
```sql
CREATE TABLE Products (
ProductID INT PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(50) NOT NULL,
Description NVARCHAR(MAX),
Price DECIMAL(18, 2) NOT NULL,
StockQuantity INT NOT NULL
);
```
此段代码创建了一个名为 `Products` 的表格用于保存产品详情[^1]。
```sql
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY IDENTITY(1,1),
FirstName NVARCHAR(50) NOT NULL,
LastName NVARCHAR(50) NOT NULL,
Email NVARCHAR(100),
PhoneNumber VARCHAR(20)
);
```
这段代码定义了顾客的信息表单 `Customers`。
```sql
CREATE TABLE Orders (
OrderID INT PRIMARY KEY IDENTITY(1,1),
CustomerID INT FOREIGN KEY REFERENCES Customers(CustomerID),
OrderDate DATETIME DEFAULT GETDATE(),
TotalAmount DECIMAL(18, 2)
);
CREATE TABLE OrderDetails (
DetailID INT PRIMARY KEY IDENTITY(1,1),
OrderID INT FOREIGN KEY REFERENCES Orders(OrderID),
ProductID INT FOREIGN KEY REFERENCES Products(ProductID),
Quantity INT NOT NULL,
UnitPrice DECIMAL(18, 2) NOT NULL
);
```
上述两段代码分别建立了订单总览 (`Orders`) 和具体项 (`OrderDetails`) 表格之间的关系。
#### 插入测试数据
接下来可以向这些新建立的表里添加一些初始的数据以便于后续操作:
```sql
INSERT INTO Products (Name, Description, Price, StockQuantity)
VALUES ('Laptop', 'High performance laptop.', 999.99, 10),
('Mouse', 'Wireless mouse with long battery life.', 49.99, 50);
INSERT INTO Customers (FirstName, LastName, Email, PhoneNumber)
VALUES ('John', 'Doe', 'john.doe@example.com', '+123456789'),
('Jane', 'Smith', 'jane.smith@example.org', '+987654321');
INSERT INTO Orders (CustomerID, TotalAmount)
OUTPUT INSERTED.*
VALUES ((SELECT TOP 1 CustomerID FROM Customers), 1049.98); -- 假设这是 John Doe 下的第一笔订单
DECLARE @LastOrderId INT;
SET @LastOrderId = SCOPE_IDENTITY();
INSERT INTO OrderDetails (OrderID, ProductID, Quantity, UnitPrice)
VALUES (@LastOrderId, (SELECT TOP 1 ProductID FROM Products WHERE Name='Laptop'), 1, 999.99),
(@LastOrderId, (SELECT TOP 1 ProductID FROM Products WHERE Name='Mouse'), 1, 49.99);
```
以上命令实现了插入几个示例性的条目到之前所提到的各种表中去。
#### 查询功能实现
最后展示如何编写简单的查询语句来进行基本的操作比如查看某个客户的全部购买历史:
```sql
SELECT o.OrderID, p.Name AS ProductName, od.Quantity, od.UnitPrice, o.TotalAmount, o.OrderDate
FROM Orders o
JOIN OrderDetails od ON o.OrderID = od.OrderID
JOIN Products p ON od.ProductID = p.ProductID
WHERE o.CustomerID = (SELECT CustomerID FROM Customers WHERE Email = 'john.doe@example.com');
```
这条 SELECT 语句通过连接多个表的方式获取指定用户的完整购物清单并显示出来。
阅读全文