¡¶Êý¾Ý¿âϵͳԭÀí¡·ÊµÑ鱨¸æ ÁªÏµ¿Í·þ

·¢²¼Ê±¼ä : ÐÇÆÚÈý ÎÄÕ¡¶Êý¾Ý¿âϵͳԭÀí¡·ÊµÑ鱨¸æ¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ1f1142d8376baf1ffd4fadbb

£¨3£©¶¨Òå»ù±¾±í

ÔÚTPCHÊý¾Ý¿âµÄSalesģʽÖд´½¨8¸ö»ù±¾±í¡£

/*ÉèÖõ±Ç°»á»°µÄËÑË÷·¾¶Îªsalesģʽ¡¢publicģʽ£¬»ù±¾±í¾Í»á×Ô¶¯´´½¨ÔÚsalesģʽÏ¡£*/

SET SEARCH_PATH TO Sales, Public; CREATE TABLE Region(

regionkey INTEGER PRIMARY KEY, name CHAR(25),

comment VARCHAR(152)); CREATE TABLE Nation(

nationkey INTEGER PRIMARY KEY, name CHAR(25),

address VARCHAR(40),

regionkey INTEGER REFERENCES REGION(REGIONKEY), comment VARCHAR(152)); CREATE TABLE Supplier(

suppkey INTEGER PRIMARY KEY, name CHAR(25),

address VARCHAR(40),

nationkey INTEGER REFERENCES Nation(nationkey), phone CHAR(15), acctbal REAL,

comment VARCHAR(101)); CREATE TABLE Part(

partkey INTEGER PRIMARY KEY, name VARCHAR(55), mfgr CHAR(25), /*ÖÆÔ쳧*/ brand CHAR(10), type VARCHAR (25), size INTEGER,

container CHAR(10), retailprice REAL,

comment VARCHAR(23)); CREATE TABLE PartSupp(

partkey INTEGER REFERENCES Part(partkey),

suppkey INTEGER REFERENCES Supplier(suppkey), availqty INTEGER, supplycost REAL ,

comment varchar(199),

PRIMARY KEY (parkey,suppkey)); CREATE TABLE Costomer(

custkey INTEGER PRIMARY KEY, name VARCHAR(25), address VARCHAR(40),

nationkey INTEGER REFERENCES Nation(nationkey), phone CHAR(15), acctbal REAL,

mktsegment CHAR(10), comment VARCHAR(117)); CREATE TABLE Orders(

orderkey INTEGER PRIMARY KEY,

custkey INTEGER REFERENCES Customer(custkey), orderstatus CHAR(1), totalprice REAL, orderdate DATE,

orderpriority INTEGER, comment VARCHAR(79)); CREATE TABLE Lineitem(

orderkey INTEGER REFERENCES Order(orderkey), partkey INTEGER REFERENCES Part(partkey),

suppkey INTEGER REFERENCES Supplier(suppkey), linenumber INTEGER, quantity REAL,

extendedprice REAL, discount REAL, tax REAL,

returnflag CHAR(1), linestatus CHAR(1), shipinstruct CHAR(25), shipmode CHAR(10), comment VARCHAR(44),

PRIMARY KEY(orderkey,linenumber),

FOREIGN KEY(Partkey,suppkey) REFERENCES PartSupp(partkey,suppkey)); 2¡¢Êý¾Ý»ù±¾²éѯ

£¨1£©µ¥±í²éѯ£¨ÊµÏÖͶӰ²Ù×÷£©

²éѯ¹©Ó¦É̵ÄÃû³Æ¡¢µØÖ·ºÍÁªÏµµç»°¡£

SELECTE name,address,phone FROMSupplier; £¨2£©µ¥±í²éѯ£¨ÊµÏÖÑ¡Ôñ²Ù×÷£©

²éѯ×î½üÒ»ÖÜÄÚÌá½»µÄ×ܼ۴óÓÚ1000ÔªµÄ¶©µ¥µÄ±àºÅ¡¢¹Ë¿Í±àºÅµÈ¶©µ¥µÄËùÓÐÐÅÏ¢¡£

SELECT *FROM Sales.Orders WHERE CURRENT_DATE-orderdata<7 AND totalprice >1000;

£¨3£©²»´ø·Ö×é¹ýÂËÌõ¼þµÄ·Ö×éͳ¼Æ²éѯ ͳ¼Æÿ¸ö¹Ë¿ÍµÄ¶©¹º½ð¶î

SELECT C.custkey ,SUM(O.totalprice) FROM customer C,Orders O WHERE C.custkey=O.custkey GROUP BY C.custkey;

£¨4£©´ø·Ö×é¹ýÂËÌõ¼þµÄ·Ö×éͳ¼Æ²éѯ

²éѯ¶©µ¥Æ½¾ù½ð¶î³¬¹ý1000ÔªµÄ¹Ë¿Í±àºÅ¼°ÆäÐÕÃû SELECT C.custkey£¬MAX£¨C.name£© FROM Customer C,Orders O WHERE C.custkey=O.custkey GROUP BY C.custkey;

HAVING AVG£¨O.totalprice£©>1000; £¨5£©±íµ¥×ÔÉíÁ¬½Ó²éѯ

²éѯÓë¡°½ð²Ö¼¯ÍÅ¡±ÔÚͬһ¸ö¹ú¼ÒµÄ¹©Ó¦É̱àºÅ¡¢Ãû³ÆºÍµØÖ·ÐÅÏ¢¡£ SELECT F.suppkey,F.name£¬F.address FROM Supplier F,Supplier S

WHERE F.nationkey=S.nationkey AND S.name='½ð²Ö¼¯ÍÅ'; £¨6£©Á½±íÁ¬½Ó²éѯ£¨ÆÕͨÁ¬½Ó£©

²éѯ¹©Ó¦¼Û¸ñ´óÓÚÁãÊÛ¼Û¸ñµÄÁã¼þÃû¡¢ÖÆÔìÉÌÃû¡¢ÁãÊÛ¼Û¸ñºÍ¹©Ó¦¼Û¸ñ¡£ SELECT P.name,P.mfgr,P.retailprice,PS.supplycost FROM Part P,Partsupp PS

WHERE P.retailprice>PS.supplycost; £¨7£©Á½±íÁ¬½Ó²éѯ£¨×ÔÈ»Á¬½Ó£©

²éѯ¹©Ó¦¼Û¸ñ´óÓÚÁãÊÛ¼Û¸ñµÄÁã¼þÃû¡¢ÖÆÔìÉÌÃû¡¢ÁãÊÛ¼Û¸ñºÍ¹©Ó¦¼Û¸ñ¡£ SELECT P.name,P.mfgr,P.retailprice,PS.supplycost FROM Part P,Partsupp PS

WHERE P.partkey=PS.partkey AND P.retailprice>PS.supplycost; £¨8£©Èý±íÁ¬½Ó²éѯ

²éѯ¹Ë¿Í¡°Ëվٿ⡱¶©¹ºµÄ¶©µ¥±àºÅ¡¢×ܼۼ°Æ䶩¹ºµÄÁã¼þ±àºÅ¡¢ÊýÁ¿ºÍÃ÷ϸ¼Û¸ñ¡£

SELECT O.orderkey,O.totalprice,L.partkey,L.quantity,L.extendedprice FROM Custom C,Orders O,Lineitem L

WHERE C.custkey=O.custkey AND O.orderkey=L.orderkey AND C.name='ËÕ¾Ù¿â'; 3¡¢Êý¾Ý¸ß¼¶²éѯʵÑé £¨1£©INǶÌײéѯ

²éѯ¶©¹ºÁË¡°º£´ó¡±ÖÆÔìµÄ¡°´¬²°Ä£Äâ¼ÝÊ»²Õ¡±µÄ¹Ë¿Í¡£ SELECT custkey£¬name FROM Customer

WHERE custkey IN ( SELECT O.custkey FROM Orders O,Lineitme L£¬PartSupp PS,Part P WHERE O.orderkey=L.orderkey AND L.partkey=PS.partkey AND L.suppkey=PS.suppkey AND PS.partkey=P.partkey AND P.mfgr='º£´ó' AND P.name='´¬²°Ä£Äâ¼ÝÊ»²Õ'); SELECT custkey,name FROM Customer

WHERE cuskey IN ( SELECT O.custkey

FROM Orders O,Lineitem L,Part P WHERE O.orderkey=L.orderkey AND L.partkey=P.partkey AND p.mfgr='º£´ó' AND P.name='´¬²°Ä£Äâ¼ÝÊ»²Õ'); £¨2£©µ¥²ãEXISTSǶÌײéѯ

²éѯûÓйºÂò¹ý¡°º£´ó¡±ÖÆÔìµÄ¡°´¬²°Ä£Äâ¼ÝÊ»²Õ¡±µÄ¹Ë¿Í¡£ SELECT custkey,name FROM Customer

WHERE NOT EXISTS( SELECT O.custkey FROM Orders O,Lineitem L,PartSupp PS,Part P WHERE C.cuskey=O.custkey AND O.orderkey=L.orderkey AND L.partkey=PS.partkey AND L.suppkey=PS.suppkey AND PS.partkey=P.partkey AND p.mfgr='º£´ó' AND P.name='´¬²°Ä£Äâ¼ÝÊ»²Õ'); £¨3£©Ë«²ãEXISTSǶÌײéѯ

²éѯÖÁÉÙ¹ºÂò¹ý¹Ë¿Í¡°ÕÅÈý¡±¹ºÂò¹ýµÄÈ«²¿Áã¼þµÄ¹Ë¿ÍÐÕÃû¡£ SELECT CA.name FROM Customer CA WHERE NOT EXISTS £¨SELECT *

FROM Customer CB,Oders OB,Lineitem LB WHERE CB.custkey=OB.custkey AND OB.orderkey=LB.orderkey AND CB.name='ÕÅÈý' AND NOT EXISTS(SELECT * FROM Orders OC,Lineitem LC WHERE CA.custkey=LC.custkey AND OC.orderkey=LC.orderkey AND LB.suppkey=LC.suppkey AND LB.partkey=LC.partkey)); £¨4£©FROM×Ó¾äÖеÄǶÌײéѯ

²éѯ¶©µ¥Æ½¾ù½ð¶î³¬¹ý1ÍòÔªµÄ¹Ë¿ÍÖеÄÖйú¼®¹Ë¿ÍÐÅÏ¢¡£ SELECT C.*

FROM Customer C,(SELECT custkey FROM Orders GROUP BY custkey HAVING AVG(totalprice)>10000) B,Nation N WHERE C.custkey=B.custkey AND C.nationkey=N.nationkey AND N.name='Öйú'; £¨5£©¼¯ºÏ²éѯ£¨½»£©

²éѯ¹Ë¿Í¡°ÕÅÈý¡±ºÍ¡°ÀîËÄ¡±¶¼¶©¹º¹ýµÄÈ«²¿Áã¼þµÄÐÅÏ¢¡£ SELECT P.*