-- 第 14 章实验三数据:实验二建好的十张表,装入供应商、商品、分类和用户的数据
-- 整段执行一次即可,想从头再做时重新执行。
DROP USER IF EXISTS 'sale1'@'localhost';
DROP DATABASE IF EXISTS ecommerce;
CREATE DATABASE ecommerce DEFAULT CHARACTER SET utf8mb4;
USE ecommerce;
-- 表 14-1 供应商表
CREATE TABLE Supplier (
supid CHAR(5) NOT NULL COMMENT '供应商编号',
supname VARCHAR(40) NOT NULL COMMENT '供应商名称',
email VARCHAR(40) COMMENT '电子邮箱',
telephone CHAR(11) COMMENT '联系方式',
PRIMARY KEY (supid)
);
-- 表 14-2 商品表
CREATE TABLE Commodity (
commodityid CHAR(11) NOT NULL COMMENT '商品编号',
commodityname VARCHAR(40) NOT NULL COMMENT '商品名',
manufacturer VARCHAR(40) COMMENT '生产厂家',
storagetime DATETIME COMMENT '入库时间',
summary VARCHAR(500) COMMENT '概述',
thumbnail VARCHAR(100) COMMENT '缩略图的路径',
PRIMARY KEY (commodityid)
);
-- 表 14-4 分类表
CREATE TABLE Type (
typeid CHAR(2) NOT NULL COMMENT '分类编号',
typename CHAR(10) NOT NULL COMMENT '分类名称',
typedetail VARCHAR(50) COMMENT '分类概述',
PRIMARY KEY (typeid)
);
-- 表 14-8 用户表
CREATE TABLE Customer (
customerid INT NOT NULL AUTO_INCREMENT COMMENT '用户编号',
cusname CHAR(20) NOT NULL COMMENT '登录名',
cuspassword VARCHAR(64) NOT NULL COMMENT '登录密码',
cusemail VARCHAR(40) COMMENT '登录邮箱',
cusauthority TINYINT COMMENT '用户权限,1 采购用户,2 销售用户',
registime DATETIME COMMENT '注册时间',
logtime DATETIME COMMENT '上次登录时间',
PRIMARY KEY (customerid)
);
-- 表 14-7 地址表
CREATE TABLE Address (
addressid CHAR(10) NOT NULL COMMENT '地址编号',
person CHAR(4) NOT NULL COMMENT '联系人',
sex CHAR(2) COMMENT '性别',
telephone CHAR(11) NOT NULL COMMENT '手机',
email VARCHAR(40) COMMENT '电子邮箱',
country CHAR(10) COMMENT '国家',
province CHAR(10) COMMENT '省',
city CHAR(10) COMMENT '市',
street CHAR(20) COMMENT '街道',
customerid INT COMMENT '用户编号',
PRIMARY KEY (addressid),
FOREIGN KEY (customerid) REFERENCES Customer (customerid)
);
-- 表 14-5 订单表,Order 是保留字,要加反引号
CREATE TABLE `Order` (
orderid CHAR(17) NOT NULL COMMENT '订单编号',
committime DATETIME NOT NULL COMMENT '提交时间',
orderstate CHAR(6) NOT NULL COMMENT '订单状态',
addressid CHAR(10) COMMENT '地址编号',
PRIMARY KEY (orderid),
FOREIGN KEY (addressid) REFERENCES Address (addressid)
);
-- 表 14-6 物流表
CREATE TABLE Logistics (
logisticsid CHAR(3) NOT NULL COMMENT '物流编号',
logisticsname CHAR(10) NOT NULL COMMENT '物流公司',
logisticstel CHAR(11) COMMENT '公司电话',
expressid CHAR(14) NOT NULL COMMENT '快递单号',
orderid CHAR(17) COMMENT '订单编号',
PRIMARY KEY (logisticsid),
FOREIGN KEY (orderid) REFERENCES `Order` (orderid)
);
-- 表 14-3 供应表
CREATE TABLE Supply (
supid CHAR(5) NOT NULL COMMENT '供应商编号',
commodityid CHAR(11) NOT NULL COMMENT '商品编号',
supplytime DATE NOT NULL COMMENT '供应时间',
supplyprice DECIMAL(9,2) NOT NULL COMMENT '供应单价',
supplynumber INT NOT NULL COMMENT '供应数量',
PRIMARY KEY (supid, commodityid),
FOREIGN KEY (supid) REFERENCES Supplier (supid),
FOREIGN KEY (commodityid) REFERENCES Commodity (commodityid)
);
-- 表 14-9 属于表
CREATE TABLE Classification (
typeid CHAR(2) NOT NULL COMMENT '分类编号',
commodityid CHAR(11) NOT NULL COMMENT '商品编号',
PRIMARY KEY (typeid, commodityid),
FOREIGN KEY (typeid) REFERENCES Type (typeid),
FOREIGN KEY (commodityid) REFERENCES Commodity (commodityid)
);
-- 表 14-10 包含表
CREATE TABLE Contain (
orderid CHAR(17) NOT NULL COMMENT '订单编号',
commodityid CHAR(11) NOT NULL COMMENT '商品编号',
saleprice DECIMAL(9,2) COMMENT '销售单价',
salenumber INT COMMENT '销售数量',
PRIMARY KEY (orderid, commodityid),
FOREIGN KEY (orderid) REFERENCES `Order` (orderid),
FOREIGN KEY (commodityid) REFERENCES Commodity (commodityid)
);
-- 基础数据
INSERT INTO Supplier VALUES
('01001', '华信图书公司', 'hx@163.com', '18600008965'),
('01002', '东方数码公司', 'df@163.com', '13900001234'),
('02001', '远达文具公司', 'yd@163.com', '13600007788');
INSERT INTO Commodity VALUES
('11000000112', '数据库原理及应用教程', '人民邮电出版社', '2020-02-11 11:15:25', '全面讲解数据库的基本原理和应用', 'img/11000000112.jpg'),
('11000000118', 'MySQL 数据库实用教程', '人民邮电出版社', '2020-02-11 11:20:10', 'MySQL 的安装、使用和管理', 'img/11000000118.jpg'),
('21200000109', '联想笔记本电脑 E14', '联想集团', '2020-03-02 09:30:00', '14 英寸轻薄笔记本', 'img/21200000109.jpg'),
('33000000201', '得力中性笔', '得力集团', '2020-03-05 14:00:00', '0.5 毫米黑色', 'img/33000000201.jpg');
INSERT INTO Type VALUES
('01', '图书', '各类图书和教材'), ('02', '电脑', '笔记本和台式电脑'), ('03', '文具', '办公和学习用品');
INSERT INTO Classification VALUES
('01', '11000000112'), ('01', '11000000118'), ('02', '21200000109'), ('03', '33000000201');
INSERT INTO Supply VALUES
('01001', '11000000112', '2020-02-11', 40.00, 100),
('01001', '11000000118', '2020-02-11', 32.00, 80),
('01002', '21200000109', '2020-03-02', 5000.00, 20),
('02001', '33000000201', '2020-03-05', 1.50, 500);
INSERT INTO Customer (cusname, cuspassword, cusemail, cusauthority, registime, logtime) VALUES
('lina', 'e10adc3949ba59abbe56e057f20f883e', 'lina@163.com', 2, '2020-04-01 10:00:00', '2020-04-10 16:58:02'),
('caigou1', 'fcea920f7412b5da7be0cf42b8c93759', 'cg1@163.com', 1, '2020-01-05 09:00:00', '2020-03-05 13:50:00');
SHOW TABLES;