有一个大的卖场有多个仓库,每种商品只存放在一个仓库,每个仓库可以存放多种商品,每种商品存放在一个仓库有一个库存数量。商品有商品编号、商品名称和商品单价等属性,仓库有仓库编号、仓库名称、仓库地址和仓库电话等属性。客户可以向卖场订购商品,每种商品可有多个客户订购,每个客户可以订购多种商品,订购商品有订货日期和订货数量。客户有客户编号、客户名称、客户地址和客户电话等属性。具体数据如下表:商品编号商品名称商品单价仓库编号库存数量客户编号客户名称客户地址客户电话订货日期订货数量SP002红牛702200KH01张三湖北武汉130000000002023-06-2050SP004牛肉粒2001500KH01张三湖北武汉130000000002023-06-2030SP002红牛702200KH03王五湖北武汉156231235612023-06-1050SP003雪碧502120KH01张三湖北武汉130000000002023-06-1020SP005抽纸12022000KH02李四河南郑州198123123122023-05-06100SP001娃哈哈301100KH02李四河南郑州198123123122023-05-0110请完成以下任务:画出这个数据库的E-R图;写出对应的关系模式; 根据上述关系模式,用SQL语句,在MySQL里创建数据库“自己的姓名”,并对应建立相应表。通过完整性约束命名子句给“订货”关系定义主码。用SQL语句批量导入表中的数据。
时间: 2024-03-19 19:42:10 浏览: 53
1. E-R图如下:
![E-R图](https://i.imgur.com/c7bC5li.png)
2. 关系模式如下:
商品表(商品编号,商品名称,商品单价,仓库编号,库存数量)
仓库表(仓库编号,仓库名称,仓库地址,仓库电话)
客户表(客户编号,客户名称,客户地址,客户电话)
订货表(商品编号,客户编号,订货日期,订货数量)
3. 创建数据库和相应表的SQL语句如下:
```
CREATE DATABASE your_name;
USE your_name;
CREATE TABLE 商品表 (
商品编号 VARCHAR(10) NOT NULL PRIMARY KEY,
商品名称 VARCHAR(20) NOT NULL,
商品单价 DECIMAL(8, 2) NOT NULL,
仓库编号 VARCHAR(10) NOT NULL,
库存数量 INT NOT NULL,
CONSTRAINT FK_商品表_仓库表 FOREIGN KEY (仓库编号) REFERENCES 仓库表 (仓库编号)
);
CREATE TABLE 仓库表 (
仓库编号 VARCHAR(10) NOT NULL PRIMARY KEY,
仓库名称 VARCHAR(20) NOT NULL,
仓库地址 VARCHAR(50) NOT NULL,
仓库电话 VARCHAR(20) NOT NULL
);
CREATE TABLE 客户表 (
客户编号 VARCHAR(10) NOT NULL PRIMARY KEY,
客户名称 VARCHAR(20) NOT NULL,
客户地址 VARCHAR(50) NOT NULL,
客户电话 VARCHAR(20) NOT NULL
);
CREATE TABLE 订货表 (
商品编号 VARCHAR(10) NOT NULL,
客户编号 VARCHAR(10) NOT NULL,
订货日期 DATE NOT NULL,
订货数量 INT NOT NULL,
PRIMARY KEY (商品编号, 客户编号, 订货日期),
CONSTRAINT FK_订货表_商品表 FOREIGN KEY (商品编号) REFERENCES 商品表 (商品编号),
CONSTRAINT FK_订货表_客户表 FOREIGN KEY (客户编号) REFERENCES 客户表 (客户编号)
);
```
4. 使用以下SQL语句批量导入数据:
```
USE your_name;
LOAD DATA LOCAL INFILE '/path/to/data.csv'
INTO TABLE 商品表
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;
LOAD DATA LOCAL INFILE '/path/to/data.csv'
INTO TABLE 仓库表
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;
LOAD DATA LOCAL INFILE '/path/to/data.csv'
INTO TABLE 客户表
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;
LOAD DATA LOCAL INFILE '/path/to/data.csv'
INTO TABLE 订货表
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;
```
其中,`/path/to/data.csv`表示数据文件的路径。
阅读全文