<think>
我们将在Oracle中创建一个表,并插入2013年前三月的数据作为示例。
表结构设计:
表名:sales
字段:
sale_id NUMBER 主键
sale_date DATE 销售日期
customer_id NUMBER 客户ID
product_id NUMBER 产品ID
amount NUMBER(10,2) 销售额
我们将创建表并插入2013年1月、2月、3月的数据,其他月份没有数据。
</think>
### 创建包含2013年前三个月销售数据的Oracle表
以下是完整的SQL脚本,包含表结构和样本数据:
```sql
-- 创建销售表
CREATE TABLE sales (
sale_id NUMBER PRIMARY KEY,
sale_date DATE NOT NULL,
customer_id NUMBER NOT NULL,
product_id NUMBER NOT NULL,
amount NUMBER(10,2) NOT NULL
);
-- 插入2013年1-3月样本数据
INSERT INTO sales (sale_id, sale_date, customer_id, product_id, amount)
VALUES
(1, TO_DATE('2013-01-05', 'YYYY-MM-DD'), 101, 1001, 1500.00),
(2, TO_DATE('2013-01-15', 'YYYY-MM-DD'), 102, 1002, 780.50),
(3, TO_DATE('2013-01-25', 'YYYY-MM-DD'), 103, 1003, 2200.00),
(4, TO_DATE('2013-02-03', 'YYYY-MM-DD'), 101, 1001, 1200.00),
(5, TO_DATE('2013-02-12', 'YYYY-MM-DD'), 104, 1004, 950.75),
(6, TO_DATE('2013-02-28', 'YYYY-MM-DD'), 102, 1005, 3450.25),
(7, TO_DATE('2013-03-08', 'YYYY-MM-DD'), 105, 1002, 1820.40),
(8, TO_DATE('2013-03-17', 'YYYY-MM-DD'), 103, 1006, 750.30),
(9, TO_DATE('2013-03-29', 'YYYY-MM-DD'), 101, 1003, 3100.00);
```
### 表结构说明:
| 字段名 | 数据类型 | 约束 | 描述 |
|-------------|---------------|--------------|--------------|
| sale_id | NUMBER | PRIMARY KEY | 销售ID(主键)|
| sale_date | DATE | NOT NULL | 销售日期 |
| customer_id | NUMBER | NOT NULL | 客户ID |
| product_id | NUMBER | NOT NULL | 产品ID |
| amount | NUMBER(10,2) | NOT NULL | 销售金额 |
### 数据验证查询:
```sql
-- 验证数据范围(仅2013年1-3月)
SELECT
EXTRACT(MONTH FROM sale_date) AS month,
COUNT(*) AS order_count,
SUM(amount) AS total_amount
FROM sales
GROUP BY EXTRACT(MONTH FROM sale_date)
ORDER BY month;
```
### 输出结果:
```
MONTH | ORDER_COUNT | TOTAL_AMOUNT
------|-------------|-------------
1 | 3 | 4480.50
2 | 3 | 5601.00
3 | 3 | 5670.70
```
### 关键特性:
1. **日期范围限制**:
- 所有数据严格限定在2013年1月1日到2013年3月31日之间
- 使用`TO_DATE`函数确保日期格式正确
2. **数据完整性**:
- `PRIMARY KEY`约束确保销售ID唯一
- `NOT NULL`约束防止关键字段为空
- `NUMBER(10,2)`精确存储金额(最大99999999.99)
3. **真实数据分布**:
- 1月:3条记录,总额4480.50
- 2月:3条记录,总额5601.00
- 3月:3条记录,总额5670.70
4. **业务逻辑模拟**:
- 客户101在1、2、3月都有购买(回头客)
- 产品1001在1月和2月都有销售(热门商品)
- 2月底有大额销售(月末集中销售)