SELECT CNO
FROM S JOIN SC ON S.SNO=SC.SNO AND S.SNAME='ÀîС¸Õ' GO
(6) USE JXGL
GO
select SNO,count(CNO) as Ñ¡ÐÞÃÅÊý from sc
group by SNO having count(CNO)>1 GO
3. ÊÔÓÃT-SQL²éѯÓï¾ä±í´ïÏÂÁжÔϰÌâ2Êý¾Ý¿âÖÐÈý¸ö»ù±¾±íS¡¢SC¡¢CµÄ²éѯ£º (1) ͳ¼ÆÓÐѧÉúÑ¡Ð޵ĿγÌÃÅÊý¡£
(2) ÇóÑ¡ÐÞC4ºÅ¿Î³ÌµÄѧÉúµÄƽ¾ùÄêÁä¡£
(3) Çó¡°Íõ־ǿ¡±ÀÏʦËùÊڿγ̵ÄÿÃſγ̵ÄѧÉúƽ¾ù³É¼¨¡£ (4) ͳ¼ÆÃ¿Ãſγ̵ÄѧÉúÑ¡ÐÞÈËÊý£¨³¬¹ý10È˵Ŀγ̲Åͳ¼Æ£©¡£ÒªÇóÊä³ö¿Î³ÌºÅºÍÑ¡ÐÞÈËÊý£¬²éѯ½á¹û°´ÈËÊý½µÐòÅÅÁУ¬ÈôÈËÊýÏàͬ£¬°´¿Î³ÌºÅÉýÐòÅÅÁС£ (5) ²éѯÐÕ¡°Íõ¡±µÄËùÓÐѧÉúµÄÐÕÃûºÍÄêÁä¡£
(6) ÔÚSCÖвéѯ³É¼¨Îª¿ÕÖµµÄѧÉúѧºÅºÍ¿Î³ÌºÅ¡£
(7) ²éѯÄêÁä´óÓÚŮͬѧƽ¾ùÄêÁäµÄÄÐѧÉúÐÕÃûºÍÄêÁä¡£ ½â£º
(1) USE JXGL
GO
SELECT COUNT(DISTINCT CNO) FROM SC GO
(2) USE JXGL
GO
SELECT AVG(AGE)
FROM S JOIN SC ON S.SNO=SC.SNO AND CNO='C4' GO
(3) USE JXGL
GO
SELECT SC.CNO,AVG(GRADE)
FROM SC JOIN C ON SC.CNO=C.CNO AND TNAME='Íõ־ǿ' GROUP BY SC.CNO GO
(4) USE JXGL
GO
SELECT CNO,COUNT(SNO) FROM SC
GROUP BY CNO HAVING COUNT(*)>10 ORDER BY 2 DESC,1 GO
(5) USE JXGL
GO
17
SELECT SNAME,AGE FROM S
WHERE SNAME LIKE 'Íõ%' GO
(6) USE JXGL
GO
SELECT SNO,CNO FROM SC
WHERE GRADE IS NULL GO
(7) USE JXGL
GO
SELECT SNAME,AGE
FROM S
WHERE SEX='M' AND AGE>(SELECT AVG(AGE) FROM S
WHERE SEX='F')
GO
4. ÊÔÓÃT-SQL¸üÐÂÓï¾ä±í´ï¶ÔϰÌâ6-2ÖÐÊý¾Ý¿âÖÐÈý¸ö»ù±¾±íS¡¢SC¡¢CµÄ¸÷¸ö¸üвÙ×÷£º
(1) ÔÚ»ù±¾±íSÖмìË÷ÿһÃſγ̳ɼ¨¶¼´óÓÚµÈÓÚ80·ÖµÄѧÉúѧºÅ¡¢ÐÕÃûºÍÐԱ𣬲¢°Ñ¼ìË÷µ½µÄÖµËÍÍùÁíÒ»¸öÒÑ´æÔڵĻù±¾±íSTUDENT(SNO,SNAME,SEX)¡£ (2) ÔÚ»ù±¾±íSCÖÐɾ³ýÉÐÎ޳ɼ¨µÄÑ¡¿ÎÔª×é¡£
(3) °Ñ¡°ÕųÉÃñ¡±Í¬Ñ§ÔÚSCÖеÄÑ¡¿Î¼Ç¼ȫ²¿É¾È¥¡£
(4) °ÑÑ¡ÐÞ¡°¸ßµÈÊýѧ¡±¿Î³ÌÖв»¼°¸ñµÄ³É¼¨È«²¿¸ÄΪ¿ÕÖµ¡£
(5) °ÑµÍÓÚ×ÜÆ½¾ù³É¼¨µÄŮͬѧ³É¼¨Ìá¸ß5%¡£ ½â£º
(1) ½¨±í£º
USE JXGL GO
CREATE TABLE STUDENT(SNO CHAR(9) NOT NULL,
SNAME CHAR(8) NOT NULL, SEX CHAR(2))
GO
²éѯ½á¹û²åÈ룺
USE JXGL GO
INSERT INTO STUDENT(SNO,SNAME,SEX) SELECT SNO,SNAME,SEX FROM S
WHERE SNO IN (SELECT SNO
FROM SC
GROUP BY SNO HAVING MIN(GRADE)>80)
GO
18
(2) USE JXGL
GO
DELETE FROM SC
WHERE GRADE IS NULL
GO
(3) USE JXGL
GO DELETE
FROM SC
WHERE SNO IN(SELECT SNO FROM S
WHERE SNAME='ÕųÉÃñ')
GO
(4) USE JXGL
GO
UPDATE SC
SET GRADE=NULL
WHERE GRADE<60 AND CNO IN(SELECT CNO FROM C
WHERE CNAME='¸ßµÈÊýѧ')
GO
(5) USE JXGL
GO
UPDATE SC
SET GRADE=GRADE*1.05 WHERE SNO IN(SELECT SNO FROM S
WHERE SEX='F')
AND GRADE<(SELECT AVG(GRADE) FROM SC)
GO
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)
ÊÔÓÃT-SQL DDLÓï¾ä¶¨ÒåÉÏÊöÎå¸ö»ù±¾±í£¬²¢ËµÃ÷Ö÷¼üºÍÍâ¼ü¡£ ½â£º
CREATE TABLE PART
(PNO CHAR(6),PNAME CHAR(10) NOT NULL,COLOR CHAR(6),WEIGHT FLOAT(6),PRIMARY KEY(PNO));
CREATE TABLE PROJECT
19
(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)); 6£®ÀûÓÃT-SQLÓï¾äÉùÃ÷Ò»¸öÓα꣬²éѯϰÌâ2Êý¾Ý¿âS±íÖÐËùÓÐÄÐÉúµÄÐÅÏ¢£¬²¢¶ÁÈ¡Êý¾Ý¡£
(1) ¶ÁÈ¡×îºóÒ»Ìõ¼Ç¼¡£ (2) ¶ÁÈ¡µÚÒ»Ìõ¼Ç¼¡£ (3) ¶ÁÈ¡µÚ5Ìõ¼Ç¼¡£
(4) ¶ÁÈ¡µ±Ç°¼Ç¼ָÕëλÖúóµÚ3Ìõ¼Ç¼¡£
½â£ºUSE JXGL
GO
DECLARE S_Cursor SCROLL CURSOR FOR SELECT *
FROM S
WHERE SEX='M'
OPEN S_Cursor
FETCH LAST FROM S_Cursor FETCH PRIOR FROM S_Cursor FETCH ABSOLUTE 5 FROM S_Cursor CLOSE S_Cursor DEALLOCATE S_Cursor GO
ϰ Ìâ 7
1£®Ãû´Ê½âÊÍ£º
ÊÓͼ Ë÷Òý ¾Û¼¯Ë÷Òý ΨһË÷Òý ´ð£º
ÊÓͼ£ºÊÇ´Ó»ù±¾±í»òÆäËûÊÓͼÖе¼³öµÄ±í£¬Ëü±¾Éí²»¶ÀÁ¢´æ´¢ÔÚÊý¾Ý¿âÖУ¬Ò²¾ÍÊÇÊý¾Ý¿âÖÐÖ»´æ·ÅÊÓͼµÄ¶¨Òå¶ø²»´æ·ÅÊÓͼµÄÊý¾Ý¡£
Ë÷Òý£ºÊǶÔÊý¾Ý¿â±íÖÐÒ»Áлò¶àÁеÄÖµ½øÐÐÅÅÐòµÄÒ»Öֽṹ£¬Ê¹ÓÃË÷Òý¿É¿ìËÙ·ÃÎÊÊý¾Ý¿â±íÖеÄÌØ¶¨ÐÅÏ¢¡£
¾Û¼¯Ë÷Òý£º¸ÃË÷ÒýÖмüÖµµÄÂ߼˳Ðò¾ö¶¨Á˱íÖÐÏàÓ¦ÐеÄÎïÀí˳Ðò¡£ÕâÖÖË÷Òý¶Ô²éѯ·Ç
20
Ïà¹ØÍÆ¼ö£º