Êý¾Ý¿âÔ­Àí¼°Ó¦ÓÃϰÌâ²Î¿¼´ð°¸

µÚ 10 Ò³

SET GRADE=GRADE*1.04

WHERE C#=¡¯4¡¯AND GRADE>75; UPDATE SC

SET GRADE=GRADE*1.05

WHERE C#=¡¯4¡¯AND GRADE<=75;

×¢Ò⣺ÕâÁ½¸öUPDATEÓï¾äµÄ˳Ðò²»Äܵߵ¹¡£

4-5 ¼ÙÉèij¡°²Ö¿â¹ÜÀí¡±¹ØÏµÄ£ÐÍÓÐÏÂÁÐÎå¸ö¹ØÏµÄ£Ê½£º Áã¼þPART(PNO,PNAME,COLOR,WEIGHT) ÏîÄ¿PROJECT(JNO,JNAME,JDATE)

¹©Ó¦ÉÌSUPPLIER(SNO,SNAME,SADDR) ¹©Ó¦P_P(JNO,PNO,TOTAL)

²É¹ºP_S(PNO,SNO,QUANTITY)

¢Å ÊÔÓÃSQL DDLÓï¾ä¶¨ÒåÉÏÊöÎå¸ö»ù±¾±í£¬²¢ËµÃ÷Ö÷¼üºÍÍâ¼ü¡£

¢Æ ÊÔ½«PROJECT¡¢P_P¡¢PARTÈý¸ö»ù±¾±íµÄ×ÔÈ»Áª½Ó¶¨ÒåΪһ¸öÊÓͼVIEW1£¬ PART¡¢P_S¡¢SUPPLIERÈý¸ö»ù±¾±íµÄ×ÔÈ»Áª½Ó¶¨ÒåΪһ¸öÊÓͼVIEW2¡£ ¢Ç ÊÔÔÚÉÏÊöÁ½¸öÊÓͼµÄ»ù´¡ÉϽøÐÐÊý¾Ý²éѯ£º ¢Ù ¼ìË÷ÉϺ£µÄ¹©Ó¦ÉÌËù¹©Ó¦µÄÁã¼þµÄ±àºÅºÍÃû×Ö¡£

¢Ú ¼ìË÷ÏîÄ¿J4ËùÓÃÁã¼þµÄ¹©Ó¦É̱àºÅºÍÃû×Ö¡£ ½â£º

¢Å CREATE TABLE PART

(PNO CHAR(6),PNAME CHAR(10) NOT NULL,COLOR CHAR(6),WEIGHT FLOAT(6),PRIMARY KEY(PNO));

CREATE TABLE PROJECT

(JNO CHAR(6),JNAME CHAR(12)NOT NULL,DATE DATE,PRIMARY KEY(JNO)); CREATE TABLE SUPPLIER

(SNO CHAR(8),SNAME CHAR(12)NOT NULL,SADDR VARCHAR(30),PRIMARY KEY(SNO));

CREATE TABLE P_P

(JNO CHAR(6),PNO CHAR(6),TOTAL INTEGER,PRIMARY KEY(JNO,PNO); FOREIGN KEY(JNO) REFERENCES PROJECT(JNO), FOREIGN KEY(PNO) REFERENCES PART(PNO)); CREATE TABLE P_S

(PNO CHAR(6),SNO CHAR(8),QUANTITY INTEGER,PRIMARY KEY(PNO,SNO) FOREIGN KEY(PNO) REFERENCES PART(PNO),

FOREIGN KEY(SNO) REFERENCES SUPPLIER(SNO));

¢Æ CREATE VIEW VIEWl

AS SELECT A.JNO,JNAME,DATE,C.PNO,PNAME,COLOR,WEIGHT,TOTAL FROM PROJECT A,P_P B£¬PART C

WHERE A.JNO=B.JNO AND B.PNO=C.PNO; CREATE VIEW VIEW2

AS SELECT A.PNO,PNAME,COLOR,WEIGHT,C.SNO,SNAME,SADDR,QUANTITY FROM PART A,P_S B,SUPPLIER C

WHERE A.PNO=B.PNO AND B.SNO=C.SNO; ¢Ç¢Ù

µÚ 11 Ò³

SELECT PNO,PNAME FROM VIEW2

WHERE SADDR LIKE ¡¯ÉϺ££¥¡¯; ¢Ú SELECT SNO,SNAME FROM VIEWl,VIEW2

WHERE VIEWl.PNO=VIEW2.PNO AND JNO=¡¯J4¡¯; 4-6 ¶ÔÓÚ½ÌÎñ¹ÜÀíÊý¾Ý¿âÖлù±¾±íSC£¬Òѽ¨Á¢ÏÂÁÐÊÓͼ£º CREATE VIEW S_GRADE(SNO,C_NUM,AVG_GRADE) AS SELECT SNO,COUNT(CNO),AVG(GRADE) FROM SC

GROUP BY SNO;

ÊÔÅжÏÏÂÁвéѯºÍ¸üÐÂÊÇ·ñÔÊÐíÖ´ÐС£ÈôÔÊÐí£¬Ð´³öת»»µ½»ù±¾±íSCÉϵÄÏàÓ¦²Ù ×÷£º ¢Å SELECT * FROM S_GRADE ¢Æ SELECT SNO,C_NUM FROM S_GRADE

WHERE AVG_GRADE>80; ¢Ç SELECT SNO,AVG_GRADE FROM S_GRADE

WHERE C_NUM>(SELECT C_NUM FROM S_GRADE

SNO=¡¯200912121¡¯); ¢È UPDATE S_GRADE SET C_NUM=C_NUM+1

WHERE SNO=¡¯200915122¡¯ ¢É DELETE FROM S_GRADE WHERE C_NUM>4;

´ð£º¢Å ÔÊÐí²éѯ¡£ÏàÓ¦µÄ²Ù×÷ÈçÏ£º

SELECT SNO,COUNT(CNO) AS C_NUM,AVG(GRADE) AS AVG_GRADE FROM SC

GROUP BY SNO;

¢Æ ÔÊÐí²éѯ¡£ÏàÓ¦µÄ²Ù×÷ÈçÏ£º

SELECT SNO,COUNT(CNO)AS C_NUM FROM SC

GROUP BY SNO

HAVING AVG(GRADE)>80;

¢Ç ÔÊÐí²éѯ¡£ÏàÓ¦µÄ²Ù×÷ÈçÏ£º

SELECT SNO,AVG(GRADE) AS AVG_GRADE FROM SC

GROUP BY SNO

HAVING COUNT(CNO)>(SELECT COUNT(CNO) FROM SC

GROUP BY SNO

HAVING SNO=¡¯200912121¡¯);

µÚ 12 Ò³

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)