sql server创建超市销售分析数据库,建立事实表,商品表,商店表,时间表,并设置主键及参照约束
时间: 2024-10-25 20:06:01 浏览: 43
在SQL Server中创建一个超市销售分析数据库通常涉及以下几个步骤:
1. **创建数据库**:
使用 `CREATE DATABASE` 语句创建一个新的数据库,例如 "SupermarketSalesDB"。
```sql
CREATE DATABASE SupermarketSalesDB;
```
2. **创建表 - 事实表(Fact_Sales)**:
这张表用于存储详细的销售数据,可以包括销售ID、商品ID、商店ID、销售日期等信息。设置 "SaleID" 为主键。
```sql
CREATE TABLE Fact_Sales (
SaleID INT PRIMARY KEY,
ProductID INT,
StoreID INT,
SaleDate DATE NOT NULL,
QuantitySold INT,
SaleAmount DECIMAL(10, 2)
);
```
3. **创建表 - 商品表(Product)**:
保存商品的信息,如商品ID、名称、类别等,"ProductID" 作为主键。
```sql
CREATE TABLE Product (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(50),
Category VARCHAR(50),
Price DECIMAL(10, 2)
);
```
4. **创建表 - 商店表(Store)**:
包含商店的ID、名称和地址信息,"StoreID" 作为主键。
```sql
CREATE TABLE Store (
StoreID INT PRIMARY KEY,
StoreName VARCHAR(50),
Address VARCHAR(100)
);
```
5. **创建表 - 时间表(TimeDimension)**:
时间维度表用来记录日期和其他时间相关的详细度量,如星期、季度等。假设 "DateKey" 表示时间序列。
```sql
CREATE TABLE TimeDimension (
DateKey INT IDENTITY(1, 1) PRIMARY KEY,
SalesDate DATE NOT NULL,
DayOfWeek TINYINT,
MonthOfYear SMALLINT,
Quarter YEAR,
Year INT
);
```
6. **关联表之间的外键约束**:
使用 FOREIGN KEY 来确保数据一致性,如将 "ProductID" 和 "StoreID" 引用到对应的主键。
```sql
ALTER TABLE Fact_Sales
ADD FOREIGN KEY (ProductID) REFERENCES Product(ProductID);
ALTER TABLE Fact_Sales
ADD FOREIGN KEY (StoreID) REFERENCES Store(StoreID);
ALTER TABLE Fact_Sales
ADD FOREIGN KEY (SaleDate) REFERENCES TimeDimension(SaleDate);
```
阅读全文