diff --git a/README.md b/README.md index 720c1d2..9e65edf 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,183 @@ # 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; \ No newline at end of file