用SQL语句建立第2章习题中的SPJ数据库的SPJ表;其中,SNO、PNO和JNO长度不超过3位。(注意定义必要的约束)
时间: 2024-06-11 12:09:44 浏览: 14
CREATE TABLE SPJ (
SNO VARCHAR(3) NOT NULL,
PNO VARCHAR(3) NOT NULL,
JNO VARCHAR(3) NOT NULL,
QTY INT NOT NULL,
PRIMARY KEY (SNO, PNO, JNO),
FOREIGN KEY (SNO) REFERENCES S(SNO),
FOREIGN KEY (PNO) REFERENCES P(PNO),
FOREIGN KEY (JNO) REFERENCES J(JNO)
);
其中 S, P, J 表分别表示供应商、零件、工程表。需要注意的约束有:
1. SNO、PNO、JNO 长度不超过 3 位;
2. SNO、PNO、JNO 三个字段一起作为主键;
3. SNO、PNO、JNO 三个字段都是非空的;
4. SNO、PNO、JNO 需要引用对应表的主键;
5. QTY 表示供应商 SNO 提供给工程 JNO 的零件 PNO 的数量,也是非空的。
相关问题
用SQL语句建立第2章习题中的SPJ数据库的SPJ表;其中,SNO、PNO和JNO长度不超过3位。(注意定义必要的约束) 备注: 1、数据库已经建好,不必考虑。 2、S、P、J表都已经建好,这些都不必考虑。 3、只需直接建SPJ表就可以了。
CREATE TABLE SPJ (
SNO CHAR(3) NOT NULL,
PNO CHAR(3) NOT NULL,
JNO CHAR(3) NOT NULL,
QTY INT NOT NULL,
PRIMARY KEY (SNO, PNO, JNO),
FOREIGN KEY (SNO) REFERENCES S(SNO),
FOREIGN KEY (PNO) REFERENCES P(PNO),
FOREIGN KEY (JNO) REFERENCES J(JNO),
CHECK (QTY >= 0)
);
建立一个视图V_SPJ(SNO,SNAME,PNO,JNO,JNAME,QTY)。
好的,我理解你的问题是让我帮你建立一个名为V_SPJ的视图,包含SNO、SNAME、PNO、JNO、JNAME和QTY这6个字段。视图中的数据来自于不同的表,具体的SQL语句如下:
```sql
CREATE VIEW V_SPJ AS
SELECT S.SNO, S.SNAME, SP.PNO, SP.JNO, J.JNAME, SP.QTY
FROM S, SP, J
WHERE S.SNO = SP.SNO AND SP.JNO = J.JNO;
```
这个视图包含了供应商、零件和工程三个表的数据,通过内连接将它们联合起来,以便查询时可以方便地获取到这些表的数据。在视图中,每一行都表示一个供应商提供了多少个零件给一个工程。