·¢²¼Ê±¼ä : ÐÇÆÚÈý ÎÄÕÂÉϺ£´óѧÊý¾Ý¿âÉÏ»ú×÷ÒµÉÏ»úÁ·Ï°4×÷Òµ¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ
ÉÏ´óѧÊý¾Ý¿âÉÏ»ú×÷Òµ
¡¶Êý¾Ý¿âϵͳÓëÓ¦Óá·ÉÏ»úÏ°Ìâ*************************************************************************************************
µÚËIJ¿·Ö¡¢SQL²éѯ©¥©¥Ç¶Ì׺Í×éºÏͳ¼Æ²éѯ
ÒªÇóÕÆÎÕ£ºÀûÓÃSQL²éѯÓïÑÔ±í´ïǶÌײéѯÓï¾äÒÔ¼°Êý¾Ý²éѯÖеÄͳ¼Æ¼ÆËãºÍ×éºÏ²Ù×÷¡£
Ò»¡¢×öÊéÉϵھÅÕÂÓàϵÄÀýÌ⣬²¢Íê³ÉÊéÉÏÁ·Ï°Ìâ9ÖеÚ11¡¢12¡¢13¡¢14Ìâ
11.ifexists(SELECT*FROMsys.objectsWHEREname=student) 12.
¶þ¡¢ÀûÓÃͼÊé_¶ÁÕßÊý¾Ý¿â
1. Çó»úе¹¤Òµ³ö°æÉç³ö°æµÄ¸÷ÀàͼÊéµÄƽ¾ù¼Û¡£
USEͼÊé¶ÁÕß
SELECTÀà±ð,AVG(¶¨¼Û)ASƽ¾ù¼Û FROMͼÊé
WHERE³ö°æÉç='»úе¹¤Òµ³ö°æÉç' GROUPBYÀà±ð
2. Çó¸÷ÀàͼÊéµÄ×î¸ß¼Û¡¢×îµÍ¼Û¡¢Í¼ÊéµÄÊýÁ¿¡£
USEͼÊé¶ÁÕß
SELECTÀà±ð,MAX(¶¨¼Û)AS×î¸ß¼Û,MIN(¶¨¼Û)AS×îµÍ¼Û,COUNT(*)ASÊýÁ¿ FROMͼÊé
GROUPBYÀà±ð
3. ²éÕÒͼÊéÀà±ð£¬ÒªÇóÀà±ðÖÐ×î¸ßµÄͼÊ鶨¼Û²»µÍÓÚÈ«²¿°´Àà±ð·Ö×éµÄͼÊéƽ¾ù¶¨¼ÛµÄ1.5±¶¡£
USEͼÊé¶ÁÕß SELECTÀà±ð FROMͼÊé
WHERE¶¨¼Û=ALL (SELECTMAX(¶¨¼Û) FROMͼÊé
WHERE¶¨¼Û<=ALL
(SELECTAVG(¶¨¼Û)*1.5 FROMͼÊé))
4.¼ÆËã»úÀàºÍ»úе¹¤Òµ³ö°æÉç³ö°æµÄͼÊé¡£
USEͼÊé¶ÁÕß SELECT* FROMͼÊé
WHERE³ö°æÉç='»úе¹¤Òµ³ö°æÉç'ANDÀà±ð='¼ÆËã»ú'
5.²éѯËùÓжÁÕß½èÔĹýµÄÊ飬ҪÇó°´¶ÁÕßÐÕÃû¡¢ÊéÃûÀ´ÅÅÐò¡£
USEͼÊé¶ÁÕß
SELECT¶ÁÕß.±àºÅ,½èÔÄ.¶ÁÕß±àºÅ,ÐÕÃû,ÊéÃû FROMͼÊé,¶ÁÕß,½èÔÄ
WHERE¶ÁÕß.±àºÅ=½èÔÄ.¶ÁÕß±àºÅAND½èÔÄ.ÊéºÅ=ͼÊé.ÊéºÅ ORDERBYÐÕÃû
6. ²éѯËùÓÐÔÚ2008.11.15ÈÕÒÔºó±»½èÔĹýµÄͼÊéÃû¼°½èÔÄÕß¡£
USEͼÊé¶ÁÕß
SELECT¶ÁÕß.±àºÅ,½èÔÄ.¶ÁÕß±àºÅ,ÊéÃû,ÐÕÃû,½èÔÄÈÕÆÚ FROMͼÊé,¶ÁÕß,½èÔÄ
1
WHERE¶ÁÕß.±àºÅ=½èÔÄ.¶ÁÕß±àºÅAND½èÔÄ.ÊéºÅ=ͼÊé.ÊéºÅ AND½èÔÄÈÕÆÚ>'2008-11-15' ORDERBYÐÕÃû
Èý¡¢ÀûÓÃÉÏ´ÎÉÏ»úµÄѧÉú_¿Î³ÌÊý¾Ý¿â 1. ²éѯÿ¸öѧÉúµÄÇé¿öÒÔ¼°ËûËùÑ¡Ð޵Ŀγ̡£
USEѧÉú¿Î³Ì
SELECTѧÉú.ѧºÅ,ÐÕÃû,Ñ¡¿Î.¿Î³ÌºÅ,¿Î³ÌÃû,µ¥Î» FROMѧÉú,Ñ¡¿Î,¿Î³Ì
WHEREѧÉú.ѧºÅ=Ñ¡¿Î.ѧºÅANDÑ¡¿Î.¿Î³ÌºÅ=¿Î³Ì.¿Î³ÌºÅ ORDERBYѧºÅ
2. ÇóѧÉúµÄѧºÅ¡¢ÐÕÃû¡¢Ñ¡Ð޵ĿγÌÃû¼°³É¼¨¡£
USEѧÉú¿Î³Ì
SELECTѧÉú.ѧºÅ,ÐÕÃû,Ñ¡¿Î.¿Î³ÌºÅ,¿Î³ÌÃû,³É¼¨ FROMѧÉú,Ñ¡¿Î,¿Î³Ì
WHEREѧÉú.ѧºÅ=Ñ¡¿Î.ѧºÅANDÑ¡¿Î.¿Î³ÌºÅ=¿Î³Ì.¿Î³ÌºÅ ORDERBYѧºÅ
3. ÇóÑ¡ÐÞC1¿Î³ÌÇҳɼ¨Îª90·ÖÒÔÉϵÄѧÉúѧºÅ¡¢ÐÕÃû¼°³É¼¨¡£
USEѧÉú¿Î³Ì
SELECTѧÉú.ѧºÅ,ÐÕÃû,Ñ¡¿Î.¿Î³ÌºÅ,¿Î³ÌÃû,³É¼¨ FROMѧÉú,Ñ¡¿Î,¿Î³Ì
WHEREѧÉú.ѧºÅ=Ñ¡¿Î.ѧºÅANDÑ¡¿Î.¿Î³ÌºÅ=¿Î³Ì.¿Î³ÌºÅANDÑ¡¿Î.¿Î³ÌºÅ=¡¯C1¡¯AND³É¼¨>90 ORDERBYѧÉú.ѧºÅ
4. ²éѯÿÃſγ̵ļä½ÓÏÈÐпΣ¨¾ÍÊÇÏÈÐпεÄÏÈÐпΣ©¡£
USEѧÉú¿Î³Ì
SELECTÑ¡¿Î.¿Î³ÌºÅ,¿Î³ÌÃû,ÏÈÐпΠFROMÑ¡¿Î,¿Î³Ì
WHEREÑ¡¿Î.¿Î³ÌºÅ=¿Î³Ì.¿Î³ÌºÅ
ËÄ¡¢Íê³ÉÊéÉÏP158Ò³ÉÏ»úʵÑéÌâ4
1.ÏÔʾËùÓÐÖ°¹¤µÄÄêÁ䣬²¢°´Ö°¹¤ºÅµÝÔöÅÅÐò¡£
USEfactory
SELECTÖ°¹¤ºÅ,DATEDIFF(YY,GETDATE(),³öÉúÈÕÆÚ)ASÄêÁä FROMworker ORDERBYÖ°¹¤ºÅ
2.Çó³ö¸÷²¿Ãŵĵ³Ô±ÈËÊý¡£
USEfactory
SELECT²¿ÃźÅ,SUM(cast(µ³Ô±·ñasbigint))ASµ³Ô±ÈËÊý FROMworker
WHEREµ³Ô±·ñ='True' GROUPBY²¿ÃźÅ
3.ÏÔʾËùÓÐÖ°¹¤µÄÐÕÃûºÍ2004Äê1Ô·ݵŤ×ÊÊý¡£
USEfactory
SELECTÐÕÃû,¹¤×Ê FROMsalary
WHEREÈÕÆÚ='2004-01-04'
4.ÏÔʾËùÓÐÖ°¹¤µÄÖ°¹¤ºÅ¡¢ÐÕÃûºÍƽ¾ù¹¤×Ê¡£
USEfactory
SELECTÖ°¹¤ºÅ,ÐÕÃû,AVG(¹¤×Ê)ASƽ¾ù¹¤×Ê FROMsalary
GROUPBYÖ°¹¤ºÅ,ÐÕÃû
5.ÏÔʾËùÓÐÖ°¹¤µÄÖ°¹¤ºÅ¡¢ÐÕÃû¡¢²¿ÃÅÃûºÍ2004Äê2Ô·ݵŤ×Ê£¬²¢°´²¿ÃÅÃû˳ÐòÅÅ
2
Ðò¡£
USEfactory
SELECTsalary.Ö°¹¤ºÅ,salary.ÐÕÃû,²¿ÃÅÃû,¹¤×Ê FROMsalary,depart,worker
WHEREworker.²¿ÃźÅ=depart.²¿ÃźÅANDÈÕÆÚ='2004-02-03'ANDworker.Ö°¹¤ºÅ=salary.Ö°¹¤ºÅ ORDERBY²¿ÃÅÃû
6.ÏÔʾ¸ö²¿ÃÅÃûºÍ¸Ã²¿ÃŵÄËùÓÐÖ°¹¤Æ½¾ù¹¤×Ê¡£
USEfactory
SELECTdepart.²¿ÃÅÃû,AVG(¹¤×Ê)ASƽ¾ù¹¤×Ê FROMsalary,depart,worker
WHEREworker.²¿ÃźÅ=depart.²¿ÃźÅANDworker.Ö°¹¤ºÅ=salary.Ö°¹¤ºÅ GROUPBYdepart.²¿ÃÅÃû
7.ÏÔʾËùÓÐƽ¾ù¹¤×ʸßÓÚ1200µÄ²¿ÃÅÃûºÍ¶ÔÓ¦µÄƽ¾ù¹¤×Ê¡£
USEfactory
SELECTdepart.²¿ÃÅÃû,AVG(¹¤×Ê)ASƽ¾ù¹¤×Ê FROMsalary,depart,worker
WHEREworker.²¿ÃźÅ=depart.²¿ÃźŠANDworker.Ö°¹¤ºÅ=salary.Ö°¹¤ºÅ GROUPBYdepart.²¿ÃÅÃû HAVINGAVG(¹¤×Ê)>1200
8.ÏÔʾËùÓÐÖ°¹¤µÄÖ°¹¤ºÅ¡¢ÐÕÃûºÍ²¿ÃÅÀàÐÍ£¬ÆäÖвÆÎñ²¿ºÍÈËʲ¿Êô¹ÜÀí²¿ÃÅ£¬Êг¡²¿
ÊôÊг¡²¿ÃÅ¡£
USEfactory
SELECTworker.Ö°¹¤ºÅ,worker.ÐÕÃû, CASErtrim(²¿ÃÅÃû)
WHEN'²ÆÎñ´¦'THEN'¹ÜÀí²¿ÃÅ' WHEN'ÈËÊ´¦'THEN'¹ÜÀí²¿ÃÅ' WHEN'Êг¡²¿'THEN'Êг¡²¿ÃÅ' ELSE'ÆäËû²¿ÃÅ' ENDAS²¿ÃÅÀàÐÍ
FROMworkerinnerjoindepartOnworker.²¿ÃźÅ=depart.²¿ÃźÅ
9.Èô´æÔÚÖ°¹¤ºÅΪ10µÄÖ°¹¤£¬ÔòÏÔʾÆ乤×÷²¿ÃÅÃû³Æ£¬·ñÔòÏÔʾÏàÓ¦µÄÌáʾÐÅÏ¢¡£ USEfactory GO
DECLARE@noint,@depchar(10) SET@no=10
IFEXISTS(SELECT*FROMworkerWHEREÖ°¹¤ºÅ=@no) BEGIN
SELECT@dep=depart.²¿ÃÅÃû FROMworker,depart
WHEREworker.Ö°¹¤ºÅ=@noANDworker.²¿ÃźÅ=depart.²¿ÃźŠPRINT'Ö°¹¤ºÅΪ'+CAST(@noASCHAR(2))+'µÄÖ°¹¤ÔÚ'+ CAST(@depASchar(6))+'¹¤×÷' END ELSEqw
PRINT'²»´æÔÚ¸ÃÔ±¹¤µÄ¼Ç¼' GO
µÚ¶þÖÖ£º USE factory
DECLARE@cnoint SET@cno=10
IF EXISTI (SELECT * FROM worker WHERE Ö°¹¤ºÅ=@cno)
3
SELECT ²¿ÃÅÃû FROM depart WHERE ²¿ÃźŠIN(SELECT ²¿ÃźŠFROM worker WHERE Ö°¹¤ºÅ=@cno) ELSE
SELECT ¡®Ã»Óиù¤ºÅ¡¯
10.Çó³öÄÐŮְ¹¤µÄƽ¾ù¹¤×Ê£¬ÈôÄÐÖ°¹¤Æ½¾ù¹¤×ʸßÓÚŮְ¹¤Æ½¾ù¹¤×Ê50%£¬ÔõÏÔʾ?ÄÏ
¡®ÄÐÖ°¹¤±ÈŮְ¹¤µÄ¹¤×ʸ߶àÁË¡¯£¬ÈôÄÐÖ°¹¤Æ½¾ù¹¤×ʸßÓÚŮְ¹¤Æ½¾ù¹¤×ʱÈÂÊÔÚ1.5-0.8Ö®¼ä£¬ÔòÏÔʾÄÐÖ°¹¤Æ½¾ù¹¤×ʸßÓÚŮְ¹¤Æ½¾ù¹¤×ʲ¶à??µÄÐÅÏ¢£¬·ñÔò?Ůְ¹¤Æ½¾ù¹¤×ʸßÓÚÄÐÖ°¹¤Æ½¾ù¹¤×Ê?
USEfactory GO
DECLARE@avg1float,@avg2float,@ratiofloat --¼ÆËãÄÐÖ°¹¤Æ½¾ù¹¤×Ê
SELECT@avg1=AVG(¹¤×Ê) FROMworker,salary
WHEREworker.Ö°¹¤ºÅ=salary.Ö°¹¤ºÅANDworker.ÐÔ±ð='ÄÐ' --¼ÆËãŮְ¹¤Æ½¾ù¹¤×Ê
SELECT@avg2=AVG(¹¤×Ê) FROMworker,salary
WHEREworker.Ö°¹¤ºÅ=salary.Ö°¹¤ºÅANDworker.ÐÔ±ð='Å®' SET@ratio=@avg1/@avg2 IF@ratio>1.5
PRINT'ÄÐÖ°¹¤±ÈŮְ¹¤µÄ¹¤×ʸ߶àÁË' ELSE
IF@ratio>=0.8
PRINT'ÄÐÖ°¹¤¸úŮְ¹¤µÄ¹¤×ʲ¶à' ELSE
PRINT'Ůְ¹¤±ÈÄÐÖ°¹¤µÄ¹¤×ʸ߶àÁË' GO
4