Verified Commit efbf55fa authored by Kiryuu Sakuya's avatar Kiryuu Sakuya 🎵
Browse files

Initial commit

parents
# 物流公司数据库
## 数据库
快递员C(Cno,Cname,Cage,Csalary),分别为快递员编号、快递员姓名、快递员年龄和快递员底薪。
包裹信息P(Pno,Pfrom,Pto,Preceiver,Ptel,Pstatus),分别为物流号、寄出地址、收货地址、收件人姓名、收件人联系方式和包裹状态。
仓库W(Wno,Wname,Waddress),分别为仓库编号、仓库名和仓库地址。
配送D(Cno,Pno,Dtime),分别为快递员编号、物流号和配送时间。
存储S(Wno,Pno),分别为仓库编号和物流号。
其中C由Cno唯一标识,P由Pno唯一标识,W由Wno唯一标识,D由Cno和Pno唯一标识,S由Wno和Pno唯一标识。其中Dtime格式为yyyy-MM-dd(统一格式可直接比较大小)
### 建库命令
```mysql
CREATE DATABASE taobao;
USE taobao;
CREATE TABLE C (
Cno INT NOT NULL COMMENT "快递员编号",
Cname VARCHAR(25) NOT NULL COMMENT "快递员姓名",
Cage INT NOT NULL COMMENT "快递员年龄",
Csalary INT NOT NULL COMMENT "快递员底薪",
PRIMARY KEY (Cno)
);
CREATE TABLE P (
Pno BIGINT NOT NULL COMMENT "物流号",
Pfrom VARCHAR(256) NOT NULL COMMENT "寄出地址",
Pto VARCHAR(256) NOT NULL COMMENT "收货地址",
Preceiver VARCHAR(25) NOT NULL COMMENT "收件人姓名",
Ptel BIGINT NOT NULL COMMENT "收件人联系方式",
Pstatus VARCHAR(50) NOT NULL COMMENT "包裹状态"
);
CREATE TABLE W (
Wno INT NOT NULL COMMENT "仓库编号",
Wname VARCHAR(25) NOT NULL COMMENT "仓库名",
Waddress VARCHAR(256) NOT NULL COMMENT "仓库地址"
);
CREATE TABLE D (
Cno INT NOT NULL COMMENT "快递员编号",
Pno BIGINT NOT NULL COMMENT "物流号",
Dtime DATE NOT NULL COMMENT "配送时间"
);
CREATE TABLE S (
Wno INT NOT NULL COMMENT "仓库编号",
Pno BIGINT NOT NULL COMMENT "物流号"
);
```
## 题目与解答
### 1. 用SQL查询收件人姓名为 “李四” 的包裹物流号、配送员姓名和配送时间
```mysql
SELECT P.Pno AS "包裹物流号", C.Cname AS "快递员姓名", D.Dtime AS "配送时间" FROM P, C, D WHERE P.Preceiver = "李四";
```
### 2. 查询2017-4-1至2017-5-1(包括2017-4-1和2017-5-1这两天)配送包裹数量至少为100个的快递员的姓名、年龄和底薪
```mysql
SELECT Cname, Cage, Csalary FROM C, D WHERE D.Dtime >= '2017-04-01' AND D.Dtime <= '2017-54-01' HAVING COUNT(D.Cno)>100;
```
### 3. 对所有年龄低于40的快递员,若底薪小于2500,则增加400工资,若大于等于2500,则增加200工资
```mysql
SELECT
```
### 4. 给定仓库的名称,输出为在该仓库有存储记录,且包裹状态为“派件中”的配送信息,输出格式为“快递员姓名/收货地址/收件人姓名/收件人联系方式/配送状态”,这里的“配送状态”设置方法为:若配送时间(Dtime)距今超过5天,则设置为“异常”;否则设置为“正常”
### 5. 输出2017-4-1至2017-5-1期间(不包括2017-4-1和2017-5-1这两天),收货地址包含“景德镇”的配送信息,输出格式化为“快递员姓名/物流号”,多个物流号之间以逗号隔开
### 6. 用SQL写一个完整性规则,当插入配送信息时,将包裹状态置为“派件中”
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment