SQL ±í¸ñÁ¬½ÓµÄÓ÷¨
ÏÖÔÚÎÒÃǽéÉÜÁ¬½Ó(join)µÄ¸ÅÄî¡£ÒªÁ˽âÁ¬½Ó£¬ÎÒÃÇÐèÒªÓõ½Ðí¶àÎÒÃÇ֮ǰÒѽéÉܹýµÄÖ¸Áî¡£ ÎÒÃÇÏȼÙÉèÎÒÃÇÓÐÒÔϵÄÁ½¸ö±í¸ñ£¬
Store_Information ±í¸ñ
store_name
Sales
Date
Los Angeles
$1500
Jan-05-1999
San Diego
$250
Jan-07-1999
Los Angeles
$300
Jan-08-1999
Boston
$700
Jan-08-1999
Geography ±í¸ñ
region_name
store_name
East
Boston
East
New York
West
Los Angeles
West
San Diego
¶øÎÒÃÇÒªÖªµÀÃ¿Ò»Çø (region_name) µÄÓªÒµ¶î (sales)¡£ Geography Õâ¸ö±í¸ñ¸æËßÎÒÃÇÃ¿Ò»ÇøÓÐÄÄЩµê£¬¶ø Store_Information ¸æËßÎÒÃÇÿһ¸öµêµÄÓªÒµ¶î¡£ ÈôÎÒÃÇÒªÖªµÀÃ¿Ò»ÇøµÄÓªÒµ¶î£¬ÎÒÃÇÐèÒª½«ÕâÁ½¸ö²»Í¬±í¸ñÖеÄ×ÊÁÏ´®ÁªÆðÀ´¡£µ±ÎÒÃÇ×ÐϸÁ˽âÕâÁ½¸ö ±í¸ñºó£¬ÎÒÃǻᷢÏÖËüÃǿɾÓÉÒ»¸öÏàͬµÄÀ¸Î»£¬store_name£¬Á¬½ÓÆðÀ´¡£ÎÒÃÇÏȽ« SQL ¾äÁгö£¬ Ö®ºóÔÙÌÖÂÛÿһ¸ö×Ó¾äµÄÒâÒ壺
SELECT A1.region_name REGION, SUM(A2.Sales) SALES
from Geography A1, Store_Information A2
WHERE A1.store_name = A2.store_name
GROUP BY A1.region_name
½á¹û:
REGION
SALES
East
$700
West
$2050
ÔÚµÚÒ»ÐÐÖУ¬ÎÒÃǸæËß SQL ȥѡ³öÁ½¸öÀ¸Î»£ºµÚÒ»¸öÀ¸Î»ÊÇ Geography ±í¸ñÖÐµÄ Region_name À¸Î» (ÎÒÃÇÈ¡ÁËÒ»¸ö±ðÃû½Ð×ö REGION)£»µÚ¶þ¸öÀ¸Î»ÊÇ Store_Information ±í¸ñÖÐµÄ sales À¸Î» (±ðÃûΪ SALES)¡£Çë×¢ÒâÔÚÕâÀïÎÒÃÇÓÐÓõ½±í¸ñ±ðÃû£ºGeography ±í¸ñµÄ±ðÃûÊÇ A1£¬Store_Information ±í¸ñµÄ±ðÃûÊÇ A2¡£ÈôÎÒÃÇûÓÐÓñí¸ñ±ðÃûµÄ»°£¬ µÚÒ»Ðоͻá±ä³É
SELECT Geography.region_name REGION, SUM(Store_Information.Sales) SALES
ºÜÃ÷ÏԵأ¬Õâ¾Í¸´ÔÓ¶àÁË¡£ÔÚÕâÀïÎÒÃÇ¿ÉÒÔ¿´µ½±í¸ñ±ðÃûµÄ¹¦ÓãºËüÄÜÈà SQL ¾äÈÝÒ×±»Á˽⣬ÓÈÆäÊÇÕâ¸ö SQL ¾äº¬¸ÇºÃ¼¸¸ö²»Í¬µÄ±í¸ñʱ¡£
½ÓÏÂÀ´ÎÒÃÇ¿´µÚÈýÐУ¬¾ÍÊÇ WHERE ×Ӿ䡣 ÕâÊÇÎÒÃDzûÊöÁ¬½ÓÌõ¼þµÄµØ·½¡£ÔÚÕâÀÎÒÃÇҪȷÈÏ Geography ±í¸ñÖÐ Store_name À¸Î»µÄÖµÓë Store_Information ±í¸ñÖÐ store_name À¸Î»µÄÖµÊÇÏàµÈµÄ¡£Õâ¸ö WHERE ×Ó¾äÊÇÒ»¸öÁ¬½ÓµÄÁé»êÈËÎÒòΪËüµÄ½ÇÉ«ÊÇÈ·¶¨Á½¸ö±í¸ñÖ®¼äµÄÁ¬½ÓÊÇÕýÈ·µÄ¡£Èç¹û WHERE×Ó¾äÊÇ´íÎóµÄ£¬ÎÒÃǾͼ«¿ÉÄܵõ½Ò»¸öµÑ¿¨¶ùÁ¬½Ó (Cartesian join)¡£µÑ¿¨¶ùÁ¬½Ó»áÔì³ÉÎÒÃǵõ½ËùÓÐÁ½¸ö±í¸ñÿÁ½ÐÐÖ®¼äËùÓпÉÄܵÄ×éºÏ¡£ÔÚÕâ¸öÀý×ÓÖУ¬µÑ¿¨¶ùÁ¬½Ó»áÈÃÎÒÃǵõ½ 4 x 4 = 16 ÐеĽá¹û¡£
Ïà¹ØÎĵµ£º
Q£º±ßÉϵÄͬÊÂ˵Îļþ×é°üº¬¶à¸öÎļþ¿ÉÒÔÔö¼Ó²¢Ðжȣ¬Ò²¾ÍÊǶà¸öCPU¿ÉÒÔÒ»Æð¶Á£¿
A£º¿ÉÒÔÔö¼Ó²¢Ðжȣ¬µ«Ç°ÌáÊÇÊý¾Ý¿â¿ÉÒÔÖ§³Ö¶àÏ̷߳ÃÎʲ»Í¬µÄ·ÖÇø£¬¾Ý˵2005µÄ·ÖÇø±í²¢²»ÊÇÿ¸ö·ÖÇø¶¼·ÖÅäÒ»¸öỊ̈߳¬µ«ÊÇ2008Ã²ËÆ¾ÍÊÇ¡£Æä´Î£¬Èç¹ûÊǶàCPU£¬¶à´ÅÅÌ£¬»áÔö¼Ó²¢Ðжȵġ£¶à¸öCPUÒ»Æð¶ÁÒ²Òª¿´ÕâЩ¶à¸öÎļþÊDz»ÊÇ·ÅÔÚÒ»¸ö ......
ÔÚÊý¾Ý¿â¿ª·¢¹ý³ÌÖУ¬µ±Äã¼ìË÷µÄÊý¾ÝÖ»ÊÇÒ»Ìõ¼Ç¼ʱ£¬ÄãËù±àдµÄÊÂÎñÓï¾ä´úÂëÍùÍùʹÓÃSELECT INSERT Óï¾ä¡£µ«ÊÇÎÒÃdz£³£»áÓöµ½ÕâÑùÇé¿ö£¬¼´´Óijһ½á¹û¼¯ÖÐÖðÒ»µØ¶ÁȡһÌõ¼Ç¼¡£ÄÇôÈçºÎ½â¾öÕâÖÖÎÊÌâÄØ£¿ÓαêΪÎÒÃÇÌṩÁËÒ»ÖÖ¼«ÎªÓÅÐãµÄ½â¾ö·½°¸¡£
1.1 ÓαêºÍÓαêµÄÓŵã
ÔÚÊý¾Ý¿ ......
SQLÓï¾äÓÅ»¯¼¼Êõ·ÖÎö
×î½ü¼¸ÖÜÒ»Ö±ÔÚ½øÐÐÊý¾Ý¿âÅàѵ£¬ÀÏʦ¾«Õ¿µÄ¼¼ÊõºÍÉú¶¯µÄ½²½âʹÎÒÊÜÒæ·Ëdz¡£ÎªÁËÈøü¶àµÄÐÂÊÖÊÜÒæ£¬ÎÒ³é¿Õ°ÑSQLÓï¾äÓÅ»¯²¿·Ö½øÐÐÁËÕûÀí£¬Ï£Íû´ó¼ÒÒ»Æð½ø²½¡£
Ò»¡¢²Ù×÷·ûÓÅ»¯
1¡¢IN ²Ù×÷·û
ÓÃINд³öÀ´µÄSQLµÄÓŵãÊDZȽÏÈÝÒ×д¼°ÇåÎúÒ×¶®£¬Õâ±È½ÏÊʺÏÏÖ´úÈí¼þ¿ª·¢µÄ·ç¸ñ¡£µ«ÊÇÓÃINµÄSQLÐÔÄÜ×ÜÊÇ±È½Ï ......
[Õª]ÔÚSQLÖÐɾ³ýÖØ¸´¼Ç¼µÄ¶àÖÖ·½·¨
±¾ÎÄ×ܽáÁËһЩɾ³ýÖØ¸´¼Ç¼µÄ·½·¨£¬ÔÚOracleÖУ¬¿ÉÒÔͨ¹ýΨһrowidʵÏÖɾ³ýÖØ¸´¼Ç¼£»»¹¿ÉÒÔ½¨ÁÙʱ±íÀ´ÊµÏÖ...ÕâÀïÖ»Ìáµ½ÆäÖеļ¸ÖÖ¼òµ¥ÊµÓõķ½·¨£¬Ï£Íû¿ÉÒԺʹó¼Ò·ÖÏí£¨ÒÔ±íemployeeΪÀý£©¡£
SQL> desc employee
Name   ......
ÔÚ SQL ÖУ¬ÔÚÁ½¸öÇé¿öÏ»áÓõ½ IN Õâ¸öÖ¸ÁÕâÒ»Ò³½«½éÉÜÆäÖÐÖ®Ò»©¥©¥Óë WHERE ÓйصÄÄÇÒ»¸öÇé¿ö¡£ÔÚÕâ¸öÓ÷¨Ï£¬ ÎÒÃÇÊÂÏÈÒÑÖªµÀÖÁÉÙÒ»¸öÎÒÃÇÐèÒªµÄÖµ£¬¶øÎÒÃǽ«ÕâЩ֪µÀµÄÖµ¶¼·ÅÈë IN Õâ¸ö×Ӿ䡣 IN Ö¸ÁîµÄÓ﷨ΪÏ£º
SELECT "À¸Î»Ãû"
from "±í¸ñÃû"
WHERE "À¸Î»Ãû" IN ('ÖµÒ»', 'Öµ¶þ', ...)
ÔÚÀ¨»¡ÄÚ¿ÉÒÔÓÐÒ» ......