Initial commit

This commit is contained in:
2025-11-06 09:53:12 +08:00
commit ea8d38c146
50 changed files with 1200 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
USE Homework250313;
CREATE TABLE S
(
SNO CHAR(2) PRIMARY KEY,
SNAME VARCHAR(20),
STATUS INT,
CITY VARCHAR(20)
);
CREATE TABLE P
(
PNO CHAR(2) PRIMARY KEY,
PNAME VARCHAR(20),
COLOR VARCHAR(10),
WEIGHT INT
);
CREATE TABLE J
(
JNO CHAR(2) PRIMARY KEY,
JNAME VARCHAR(20),
CITY VARCHAR(20)
);
CREATE TABLE SPJ
(
SNO CHAR(2),
PNO CHAR(2),
JNO CHAR(2),
QTY INT,
PRIMARY KEY (SNO, PNO, JNO),
FOREIGN KEY (SNO) REFERENCES S (SNO),
FOREIGN KEY (PNO) REFERENCES P (PNO),
FOREIGN KEY (JNO) REFERENCES J (JNO)
);

View File

@@ -0,0 +1,42 @@
USE Homework250313;
INSERT INTO S (SNO, SNAME, STATUS, CITY)
VALUES ('S1', N'精益', 20, N'天津'),
('S2', N'盛锡', 10, N'北京'),
('S3', N'东方红', 30, N'北京'),
('S4', N'丰泰盛', 20, N'天津'),
('S5', N'为民', 30, N'上海');
INSERT INTO P (PNO, PNAME, COLOR, WEIGHT)
VALUES ('P1', N'螺母', N'', 12),
('P2', N'螺栓', N'绿', 17),
('P3', N'螺丝刀', N'', 14),
('P4', N'螺丝刀', N'', 14),
('P5', N'凸轮', N'', 40),
('P6', N'齿轮', N'', 30);
INSERT INTO J (JNO, JNAME, CITY)
VALUES ('J1', N'三建', N'北京'),
('J2', N'一汽', N'长春'),
('J3', N'弹簧厂', N'天津'),
('J4', N'造船厂', N'天津'),
('J5', N'机车厂', N'唐山'),
('J6', N'无线电厂', N'常州'),
('J7', N'半导体厂', N'南京');
INSERT INTO SPJ (SNO, PNO, JNO, QTY)
VALUES ('S1', 'P1', 'J1', 200),
('S1', 'P1', 'J3', 100),
('S1', 'P1', 'J4', 700),
('S1', 'P2', 'J2', 100),
('S2', 'P3', 'J1', 400),
('S2', 'P3', 'J2', 200),
('S2', 'P3', 'J4', 500),
('S2', 'P3', 'J5', 400),
('S2', 'P5', 'J1', 400),
('S2', 'P5', 'J2', 100),
('S3', 'P1', 'J1', 200),
('S3', 'P3', 'J1', 200),
('S4', 'P5', 'J1', 100),
('S4', 'P6', 'J3', 300),
('S4', 'P6', 'J4', 200),
('S5', 'P2', 'J4', 100),
('S5', 'P3', 'J1', 200),
('S5', 'P6', 'J2', 200),
('S5', 'P6', 'J4', 50);

View File

@@ -0,0 +1,50 @@
USE Homework250313
Go
-- 求供应工程 J1 零件的供应商号 SNO
SELECT DISTINCT SNO
FROM SPJ
WHERE JNO = 'J1';
Go
-- 求供应工程 J1 零件 P1 的供应商号 SNO
SELECT DISTINCT SNO
FROM SPJ
WHERE JNO = 'J1'
AND PNO = 'P1';
Go
-- 求供应工程 J1 红色零件的供应商号 SNO
SELECT DISTINCT SPJ.SNO
FROM SPJ
JOIN P ON SPJ.PNO = P.PNO
WHERE SPJ.JNO = 'J1'
AND P.COLOR = N'';
Go
-- 求没有使用天津供应商生产的红色零件的工程号 JNO
SELECT JNO
FROM J
WHERE JNO NOT IN (SELECT DISTINCT SPJ.JNO
FROM SPJ
JOIN S ON SPJ.SNO = S.SNO
JOIN P ON SPJ.PNO = P.PNO
WHERE S.CITY = N'天津'
AND P.COLOR = N'');
Go
-- 求至少用了 S1 供应商所供应的全部零件的工程号 JNO
SELECT JNO
FROM SPJ
WHERE PNO IN (SELECT PNO FROM SPJ WHERE SNO = 'S1')
GROUP BY JNO
HAVING COUNT(DISTINCT PNO) = (SELECT COUNT(DISTINCT PNO) FROM SPJ WHERE SNO = 'S1');
Go
-- 找出所有供应商的姓名和所在城市
SELECT SNAME, CITY
FROM S;
Go
-- 找出所有零件的名称、颜色、重量
SELECT PNAME, COLOR, WEIGHT
FROM P;
Go
-- 找出使用供应商 S1 所供应零件的工程号码
SELECT DISTINCT JNO
FROM SPJ
WHERE SNO = 'S1';
Go