针对SPJ数据库,请使用ALTER TABLE命令按下述要求修改SPJ数据库中的数据表结构: ① 定义各关系模式的主码及外码约束。 ② 定义产品的颜色只允许取“Red”、“Yellow”、“Green”或“Blue”。 ③ 定义厂家位于“London”时其STATUS(状态)均为20。
时间: 2023-08-31 11:06:27 浏览: 38
以下是对SPJ数据库进行修改的ALTER TABLE命令:
① 定义主码和外码约束:
```sql
-- S表主码
ALTER TABLE S ADD PRIMARY KEY (SNO);
-- P表主码
ALTER TABLE P ADD PRIMARY KEY (PNO);
-- J表主码
ALTER TABLE J ADD PRIMARY KEY (JNO);
-- SP表外键
ALTER TABLE SP ADD CONSTRAINT fk_SP_S FOREIGN KEY (SNO) REFERENCES S(SNO);
ALTER TABLE SP ADD CONSTRAINT fk_SP_P FOREIGN KEY (PNO) REFERENCES P(PNO);
```
② 定义产品颜色的约束:
```sql
ALTER TABLE P ADD CONSTRAINT chk_P_COLOR CHECK (COLOR IN ('Red', 'Yellow', 'Green', 'Blue'));
```
③ 定义厂家状态的约束:
```sql
-- 方法1:使用触发器
CREATE OR REPLACE TRIGGER trg_S_STATUS
BEFORE INSERT OR UPDATE ON S
FOR EACH ROW
BEGIN
IF :NEW.CITY = 'London' THEN
:NEW.STATUS := 20;
END IF;
END;
/
-- 方法2:使用检查约束
ALTER TABLE S ADD CONSTRAINT chk_S_STATUS CHECK (STATUS = CASE WHEN CITY = 'London' THEN 20 ELSE STATUS END);
```
以上是针对SPJ数据库的ALTER TABLE命令,可以根据需要进行修改或调整。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)