针对SPJ数据库,请使用ALTER TABLE命令按下述要求修改SPJ数据库中的数据表结构: ① 定义各关系模式的主码及外码约束。 ② 定义产品的颜色只允许取“Red”、“Yellow”、“Green”或“Blue”。 ③ 定义厂家位于“London”时其STATUS(状态)均为20。
时间: 2023-08-31 19:13:30 浏览: 143
数据库实验
下面是针对SPJ数据库的ALTER TABLE命令修改:
① 定义各关系模式的主码及外码约束。
```sql
-- S表主码为SNO
ALTER TABLE S ADD PRIMARY KEY (SNO);
-- P表主码为PNO
ALTER TABLE P ADD PRIMARY KEY (PNO);
-- J表主码为JNO
ALTER TABLE J ADD PRIMARY KEY (JNO);
-- SP表联合主码为(SNO, PNO),同时定义外键约束
ALTER TABLE SP ADD CONSTRAINT fk_SP_SNO FOREIGN KEY (SNO) REFERENCES S(SNO);
ALTER TABLE SP ADD CONSTRAINT fk_SP_PNO FOREIGN KEY (PNO) REFERENCES P(PNO);
-- PS表联合主码为(PNO, SNO),同时定义外键约束
ALTER TABLE PS ADD CONSTRAINT fk_PS_PNO FOREIGN KEY (PNO) REFERENCES P(PNO);
ALTER TABLE PS ADD CONSTRAINT fk_PS_SNO FOREIGN KEY (SNO) REFERENCES S(SNO);
-- PJ表联合主码为(PNO, JNO),同时定义外键约束
ALTER TABLE PJ ADD CONSTRAINT fk_PJ_PNO FOREIGN KEY (PNO) REFERENCES P(PNO);
ALTER TABLE PJ ADD CONSTRAINT fk_PJ_JNO FOREIGN KEY (JNO) REFERENCES J(JNO);
-- SPJ表联合主码为(SNO, PNO, JNO),同时定义外键约束
ALTER TABLE SPJ ADD CONSTRAINT fk_SPJ_SNO FOREIGN KEY (SNO) REFERENCES S(SNO);
ALTER TABLE SPJ ADD CONSTRAINT fk_SPJ_PNO FOREIGN KEY (PNO) REFERENCES P(PNO);
ALTER TABLE SPJ ADD CONSTRAINT fk_SPJ_JNO FOREIGN KEY (JNO) REFERENCES J(JNO);
```
② 定义产品的颜色只允许取“Red”、“Yellow”、“Green”或“Blue”。
```sql
ALTER TABLE P ADD CONSTRAINT ck_P_COLOR CHECK (COLOR IN ('Red', 'Yellow', 'Green', 'Blue'));
```
③ 定义厂家位于“London”时其STATUS(状态)均为20。
```sql
ALTER TABLE S ADD CONSTRAINT ck_S_STATUS CHECK (STATUS = 20 OR CITY <> 'London');
```
阅读全文