柚子快報邀請碼778899分享:數(shù)據(jù)庫 sql商品表
柚子快報邀請碼778899分享:數(shù)據(jù)庫 sql商品表
?? ?CREATE DATABASE mypos; ?
?? ?USE mypos; ?
?? ? ?
?? ?CREATE TABLE 客戶表 ( ?
?? ? ? ?客戶ID INT AUTO_INCREMENT PRIMARY KEY, ?
?? ? ? ?客戶名稱 VARCHAR(255) NOT NULL, ?
?? ? ? ?聯(lián)系方式 VARCHAR(50) NOT NULL ?
?? ?); ?
?? ? ?
?? ?CREATE TABLE 商品表 ( ?
?? ? ? ?商品ID INT AUTO_INCREMENT PRIMARY KEY, ?
?? ? ? ?商品名稱 VARCHAR(255) NOT NULL, ?
?? ? ? ?計量單位 VARCHAR(50) NOT NULL, ?
?? ? ? ?零售價 DECIMAL(10, 2) NOT NULL, ?
?? ? ? ?促銷價 DECIMAL(10, 2) ?
?? ?); ?
?? ? ?
?? ?CREATE TABLE 庫存表 ( ?
?? ? ? ?商品ID INT, ?
?? ? ? ?數(shù)量 INT, ?
?? ? ? ?FOREIGN KEY (商品ID) REFERENCES 商品表(商品ID) ON DELETE CASCADE ?
?? ?); ?
?? ? ?
?? ?CREATE TABLE 銷售總表 ( ?
?? ? ? ?銷售ID INT AUTO_INCREMENT PRIMARY KEY, ?
?? ? ? ?客戶ID INT, ?
?? ? ? ?銷售時間 DATETIME NOT NULL, ?
?? ? ? ?收銀員 VARCHAR(50), ?
?? ? ? ?應(yīng)收金額 DECIMAL(10, 2) NOT NULL, ?
?? ? ? ?實收金額 DECIMAL(10, 2) NOT NULL, ?
?? ? ? ?優(yōu)惠金額 DECIMAL(10, 2), ?
?? ? ? ?備注 TEXT, ?
?? ? ? ?FOREIGN KEY (客戶ID) REFERENCES 客戶表(客戶ID) ?
?? ?); ?
?? ? ?
?? ?CREATE TABLE 銷售明細表 ( ?
?? ? ? ?銷售明細ID INT AUTO_INCREMENT PRIMARY KEY, ?
?? ? ? ?銷售ID INT, ?
?? ? ? ?商品ID INT, ?
?? ? ? ?數(shù)量 INT, ?
?? ? ? ?零售價 DECIMAL(10, 2), ?
?? ? ? ?促銷價 DECIMAL(10, 2), ?
?? ? ? ?FOREIGN KEY (銷售ID) REFERENCES 銷售總表(銷售ID) ON DELETE CASCADE, ?
?? ? ? ?FOREIGN KEY (商品ID) REFERENCES 商品表(商品ID) ON DELETE CASCADE ?
?? ?); ?? ?DELIMITER // ?
?? ?CREATE PROCEDURE insert_商品表( ?
?? ? ? ?IN p_商品名稱 VARCHAR(255), ?
?? ? ? ?IN p_計量單位 VARCHAR(50), ?
?? ? ? ?IN p_零售價 DECIMAL(10, 2), ?
?? ? ? ?IN p_促銷價 DECIMAL(10, 2) ?
?? ?) ?
?? ?BEGIN ?
?? ? ? ?INSERT INTO 商品表 (商品名稱, 計量單位, 零售價, 促銷價) ?
?? ? ? ?VALUES (p_商品名稱, p_計量單位, p_零售價, p_促銷價); ?
?? ?END // ?
?? ?DELIMITER ;
?? ?DELIMITER // ?
?? ?CREATE PROCEDURE insert_商品表( ?
?? ? ? ?IN p_商品名稱 VARCHAR(255), ?
?? ? ? ?IN p_計量單位 VARCHAR(50), ?
?? ? ? ?IN p_零售價 DECIMAL(10, 2), ?
?? ? ? ?IN p_促銷價 DECIMAL(10, 2) ?
?? ?) ?
?? ?BEGIN ?
?? ? ? ?INSERT INTO 商品表 (商品名稱, 計量單位, 零售價, 促銷價) ?
?? ? ? ?VALUES (p_商品名稱, p_計量單位, p_零售價, p_促銷價); ?
?? ?END // ?
?? ?DELIMITER ;
?? ?CALL insert_商品表('可口可樂', '瓶', 2.50, 2.30); ?
?? ?CALL insert_商品表('百事可樂', '瓶', 2.50, 2.30); ?
?? ?CALL insert_商品表('伊利牛奶', '盒', 5.20, 4.80); ?
?? ?CALL insert_商品表('農(nóng)夫山泉', '瓶', 1.50, 1.30); ?
?? ?CALL insert_商品表('涪陵榨菜', '袋', 1.00, 0.80); CREATE INDEX index_商品名稱 ON 商品表(商品名稱);
?? ?CREATE VIEW v_庫存 AS ?
?? ?SELECT 商品表.商品名稱, 庫存表.數(shù)量 ?
?? ?FROM 商品表 ?
?? ?JOIN 庫存表 ON 商品表.商品ID = 庫存表.商品ID;
??
?? ?CREATE TRIGGER delete_銷售記錄 ?
?? ?AFTER DELETE ON 銷售總表 ?
?? ?FOR EACH ROW ?
?? ?BEGIN ?
?? ? ? ?-- 刪除與被刪除銷售記錄相關(guān)的銷售明細 ?
?? ? ? ?DELETE FROM 銷售明細表 WHERE 銷售ID = OLD.銷售ID; ?
?? ? ?
?? ? ? ?-- 更新庫存,基于被刪除的銷售明細中的商品和數(shù)量 ?
?? ? ? ?UPDATE 庫存表 k ?
?? ? ? ?JOIN ( ?
?? ? ? ? ? ?SELECT 商品ID, SUM(數(shù)量) AS total_quantity ?
?? ? ? ? ? ?FROM 銷售明細表 ?
?? ? ? ? ? ?WHERE 銷售ID = OLD.銷售ID ?
?? ? ? ? ? ?GROUP BY 商品ID ?
?? ? ? ?) s ON k.商品ID = s.商品ID ?
?? ? ? ?SET k.數(shù)量 = k.數(shù)量 + s.total_quantity; ?
?? ?END // ?
?? ?DELIMITER ;
柚子快報邀請碼778899分享:數(shù)據(jù)庫 sql商品表
好文閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。