根据文档里的问题要求将剩下的代码补充完整
时间: 2024-09-30 11:05:15 浏览: 9
为了满足文档中的要求,需要为每个表添加指定类型的约束(主键约束、唯一约束、外键约束、检查约束以及空值约束)。以下是相应的SQL语句:
对于`DEPTEXPM`表,已有一个主键约束,因此可以增加其他类型的约束:
```sql
ALTER TABLE DEPTEXPM
ADD CONSTRAINT CHK_DEPTNAME CHECK (DEPTNAME IS NOT NULL AND DEPTNAME != ''); -- 检查部门名称不为空且非空白字符串
```
对于`GOODSEXPM`表,已有一个唯一约束,这里添加其余类型的约束:
```sql
ALTER TABLE GOODSEXPM
ADD CONSTRAINT CHK_UNITPRICE CHECK (UNITPRICE >= 0); -- 单价需大于等于零
```
对于`EMPLEXPM`表,已经存在一个错误的外键约束(应指向DEPTNO而非EMPLNO),修正这个外键并添加其他约束:
```sql
ALTER TABLE EMPLEXPM
ADD CONSTRAINT FK_DEPT_EMPLEXPM FOREIGN KEY(DEPTNO) REFERENCES DEPTEXPM(DEPTNO);
ALTER TABLE EMPLEXPM
ADD CONSTRAINT CHK_WAGES CHECK (WAGES > 0); -- 工资必须是正数
```
对于`ORDEREXPM`表,可以添加如下约束:
```sql
ALTER TABLE ORDEREXPM
ADD CONSTRAINT CHK_COST CHECK (COST > 0); -- 销售额需大于零
ALTER TABLE ORDEREXPM
ADD CONSTRAINT FK_EMP_ORDEREXPM FOREIGN KEY(EMPLNO) REFERENCES EMPLEXPM(EMPLNO); -- 外键约束
```
对于`DETAILEXPM`表,可以添加以下约束:
```sql
ALTER TABLE DETAILEXPM
ADD CONSTRAINT CHK_DISCOUNT CHECK (DISCOUNT BETWEEN 0 AND 1); -- 折扣比例应在0到1之间
ALTER TABLE DETAILEXPM
ADD CONSTRAINT FK_ORDER_DETAIL FOREIGN KEY(ORDERNO) REFERENCES ORDEREXPM(ORDERNO); -- 外键约束
```
以上就是针对各个表分别增加不同类型约束的例子。注意,在实际应用时还需要考虑具体的业务逻辑来定义合适的约束条件。