创建数据库库存表(编号,名称下FK(商品表,商品名称), 数量) 商品表(编号,商品名称,规格,单价) 出库(编号,时间,商品名称,经手人,数量) 触发器〈修改军存表•数量为 原数量-新出库数量) 入库(编号,时间,商品名称,经手人,数量), 触发器 (判断 库存表里是香有该南品信息,如果设有则创建,如果有则修改库存为 原库存+新增库存) 创建一个视图 (商品表•名称,商品表,单价.库存表,数量,生成列 库存总价
时间: 2024-03-24 10:40:09 浏览: 21
)来展示商品的名称、单价、库存数量和库存总价。其中,库存总价为库存数量乘以商品单价。
下面是创建数据库库存表的 SQL 语句:
```
-- 创建商品表
CREATE TABLE 商品表 (
编号 INT PRIMARY KEY,
商品名称 VARCHAR(50) NOT NULL,
规格 VARCHAR(50),
单价 DECIMAL(10,2) NOT NULL
);
-- 创建库存表
CREATE TABLE 库存表 (
编号 INT PRIMARY KEY,
商品名称 VARCHAR(50),
数量 INT,
FOREIGN KEY (商品名称) REFERENCES 商品表(商品名称) ON DELETE CASCADE
);
-- 创建出库表
CREATE TABLE 出库 (
编号 INT PRIMARY KEY,
时间 DATETIME,
商品名称 VARCHAR(50) NOT NULL,
经手人 VARCHAR(50),
数量 INT,
FOREIGN KEY (商品名称) REFERENCES 商品表(商品名称) ON DELETE CASCADE
);
-- 创建触发器,当出库时修改库存表数量
CREATE TRIGGER 出库触发器
AFTER INSERT ON 出库
FOR EACH ROW
UPDATE 库存表 SET 数量 = 数量 - NEW.数量 WHERE 商品名称 = NEW.商品名称;
-- 创建入库表
CREATE TABLE 入库 (
编号 INT PRIMARY KEY,
时间 DATETIME,
商品名称 VARCHAR(50) NOT NULL,
经手人 VARCHAR(50),
数量 INT,
FOREIGN KEY (商品名称) REFERENCES 商品表(商品名称) ON DELETE CASCADE
);
-- 创建触发器,当入库时修改或创建库存表信息
CREATE TRIGGER 入库触发器
AFTER INSERT ON 入库
FOR EACH ROW
BEGIN
IF EXISTS (SELECT * FROM 库存表 WHERE 商品名称 = NEW.商品名称) THEN
UPDATE 库存表 SET 数量 = 数量 + NEW.数量 WHERE 商品名称 = NEW.商品名称;
ELSE
INSERT INTO 库存表 (商品名称, 数量) VALUES (NEW.商品名称, NEW.数量);
END IF;
END;
-- 创建视图,展示商品的名称、单价、库存数量和库存总价
CREATE VIEW 商品库存视图 AS
SELECT 商品表.商品名称, 商品表.单价, 库存表.数量, 商品表.单价 * 库存表.数量 AS 库存总价
FROM 商品表
JOIN 库存表 ON 商品表.商品名称 = 库存表.商品名称;
```