|
|
3 years ago | |
|---|---|---|
| README.md | 3 years ago | |
README.md
task1
CREATE DATABASE dg_mysql;
SHOW DATABASES;
USE dg_mysql;
CREATE TABLE s( sno CHAR(2), sname VARCHAR(10), STATUS INT, city VARCHAR(10) ); CREATE TABLE p( pno CHAR(2), pname VARCHAR(10), color CHAR(1), weight INT ); CREATE TABLE j( jno CHAR(2), jname VARCHAR(10), city VARCHAR(10) ); CREATE TABLE spj( sno CHAR(2), pno CHAR(2), jno CHAR(2), qty INT );
DESCRIBE s; DESCRIBE p; DESCRIBE j; DESCRIBE spj;
INSERT INTO s VALUES ('S1','精益',20,'天津'), ('S2','盛锡',10,'北京'), ('S3','东方红',30,'北京'), ('S4','丰泰盛',20,'天津'), ('S5','为民',30,'上海');
INSERT INTO p VALUES ('P1','螺母','红',12), ('P2','螺栓','绿',17), ('P3','螺丝刀','蓝',14), ('P4','螺丝刀','红',14), ('P5','凸轮','蓝',40), ('P6','齿轮','红',30);
INSERT INTO j VALUES ('J1','三建','北京'), ('J2','一汽','长春'), ('J3','弹簧厂','天津'), ('J4','造船厂','天津'), ('J5','机车厂','唐山'), ('J6','无线电厂','常州'), ('J7','半导体厂','南京');
INSERT INTO spj 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',500);
SELECT* FROM s; SELECT* FROM p; SELECT* FROM j; SELECT* FROM spj;
SELECT sname,city FROM s ORDER BY sname ASC;
SELECT pname,color,weight FROM p ORDER BY pname ASC;
SELECT DISTINCT sno FROM j NATURAL JOIN spj WHERE jno='J1' ORDER BY sno ASC; SELECT DISTINCT sno FROM spj WHERE jno='J1' ORDER BY sno ASC;
SELECT sno FROM spj WHERE jno='J1'AND pno='P1' ORDER BY sno ASC;
SELECT jno FROM spj WHERE sno='S1' ORDER BY jno ASC;
SELECT pname,qty FROM spj NATURAL JOIN p WHERE jno='J2' ORDER BY pname ASC;
SELECT DISTINCT pno FROM s NATURAL JOIN spj WHERE city='上海' ORDER BY pno ASC;
SELECT DISTINCT jname FROM j INNER JOIN spj ON j.jno=spj.jno INNER JOIN s ON spj.sno=s.sno WHERE s.city='上海' ORDER BY jname ASC;
SELECT sno FROM p NATURAL JOIN spj WHERE jno='J1'AND color='红' ORDER BY sno ASC;
SELECT DISTINCT jno FROM j
WHERE jno NOT IN(
SELECT jno FROM s NATURAL JOIN spj NATURAL JOIN p WHERE s.city='天津'AND color='红') ORDER BY jno ASC;
SELECT DISTINCT jno FROM j WHERE jno NOT IN( SELECT jno FROM spj WHERE sno IN (SELECT sno FROM s WHERE city='天津') AND pno IN(SELECT pno FROM p WHERE color='红'));
SELECT DISTINCT jno FROM j
WHERE NOT EXISTS(
SELECT jno FROM spj NATURAL JOIN p NATURAL JOIN s WHERE city='天津'AND color='红'AND j.jno=jno) ORDER BY jno ASC;
UPDATE p SET color='蓝' WHERE color='红';
UPDATE spj SET sno='S3' WHERE sno='S5'AND jno='J4'AND pno='P6';
DELETE FROM s WHERE sno='S2'; DELETE FROM spj WHERE sno='s2';
INSERT INTO spj(sno,jno,pno,qty)VALUES('S2','J6','P4',200);
CREATE VIEW v_spj AS SELECT sno,pno,qty FROM spj WHERE jno IN( SELECT jno FROM j WHERE jname='三建' );
SELECT pno,SUM(qty) AS total FROM v_spj GROUP BY pno;
SELECT* FROM v_spj WHERE sno='S1';
CREATE INDEX IDX_SPJ ON spj(sno,pno,jno);
SHOW INDEX FROM spj; SELECT* FROM s; SELECT* FROM p; SELECT* FROM j; SELECT* FROM spj;