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 ÐеĽá¹û¡£
Ïà¹ØÎĵµ£º
ÔÚÎÒÃÇÆ½Ê±Ð´³ÌÐòµÄʱºò£¬ÓÐЩ²ÎÊýÊǾ³£¸Ä±äµÄ£¬¶øÕâÖָı䲻ÊÇÎÒÃÇÔ¤ÖªµÄ¡£±ÈÈç˵ÎÒÃÇ¿ª·¢ÁËÒ»¸ö²Ù×÷Êý¾Ý¿âµÄÄ£¿é£¬ÔÚ¿ª·¢µÄʱºòÎÒÃÇÁ¬½Ó±¾µØµÄÊý¾Ý¿âÄÇô IP £¬Êý¾Ý¿âÃû³Æ£¬±íÃû³Æ£¬Êý¾Ý¿âÖ÷»úµÈÐÅÏ¢ÊÇÎÒÃDZ¾µØµÄ£¬ÒªÊ¹µÃÕâ¸ö²Ù×÷Êý¾ÝµÄÄ£¿é¾ßÓÐͨÓÃÐÔ£¬ÄÇôÒÔÉÏÐÅÏ¢¾Í²»ÄÜдËÀÔÚ³ÌÐòÀͨ³£ÎÒÃǵÄ×ö·¨ÊÇÓÃÅäÖÃÎļþÀ´½â ......
ÔÚÉÏÒ»Ò³ÖУ¬ÎÒÃÇ¿´µ½ WHERE Ö¸Áî¿ÉÒÔ±»ÓÃÀ´Óɱí¸ñÖÐ ÓÐÌõ¼þµØÑ¡È¡×ÊÁÏ¡£ Õâ¸öÌõ¼þ¿ÉÄÜÊǼòµ¥µÄ (ÏñÉÏÒ»Ò³µÄÀý×Ó)£¬Ò²¿ÉÄÜÊǸ´Ôӵġ£¸´ÔÓÌõ¼þÊÇÓɶþ»ò¶à¸ö¼òµ¥Ìõ¼þ͸¹ý AND »òÊÇ OR µÄÁ¬½Ó¶ø³É¡£Ò»¸ö SQL Óï¾äÖпÉÒÔÓÐÎÞÏÞ¶à¸ö¼òµ¥Ìõ¼þµÄ´æÔÚ¡£
¸´ÔÓÌõ¼þµÄÓï·¨ÈçÏ£º
SELECT "À¸Î»Ãû"
from "±í¸ñÃû"
WHERE "¼òµ¥Ìõ¼ ......
ÔÚ SQL ÖУ¬ÔÚÁ½¸öÇé¿öÏ»áÓõ½ IN Õâ¸öÖ¸ÁÕâÒ»Ò³½«½éÉÜÆäÖÐÖ®Ò»©¥©¥Óë WHERE ÓйصÄÄÇÒ»¸öÇé¿ö¡£ÔÚÕâ¸öÓ÷¨Ï£¬ ÎÒÃÇÊÂÏÈÒÑÖªµÀÖÁÉÙÒ»¸öÎÒÃÇÐèÒªµÄÖµ£¬¶øÎÒÃǽ«ÕâЩ֪µÀµÄÖµ¶¼·ÅÈë IN Õâ¸ö×Ӿ䡣 IN Ö¸ÁîµÄÓ﷨ΪÏ£º
SELECT "À¸Î»Ãû"
from "±í¸ñÃû"
WHERE "À¸Î»Ãû" IN ('ÖµÒ»', 'Öµ¶þ', ...)
ÔÚÀ¨»¡ÄÚ¿ÉÒÔÓÐÒ» ......
IN Õâ¸öÖ¸Áî¿ÉÒÔÈÃÎÒÃÇÒÀÕÕÒ»»òÊý¸ö²»Á¬Ðø (discrete) µÄÖµµÄÏÞÖÆÖ®ÄÚ×¥³öÊý¾Ý¿âÖеÄÖµ£¬¶ø BETWEEN ÔòÊÇÈÃÎÒÃÇ¿ÉÒÔÔËÓÃÒ»¸ö·¶Î§ (range) ÄÚ×¥³öÊý¾Ý¿âÖеÄÖµ¡£BETWEENÕâ¸ö×Ó¾äµÄÓï·¨ÈçÏ£º
SELECT "À¸Î»Ãû"
from " ±í¸ñÃû"
WHERE "À¸Î»Ãû" BETWEEN 'ÖµÒ»' AND 'Öµ¶þ'
Õ⽫ѡ³öÀ¸Î»Öµ°üº¬ÔÚÖµÒ»¼°Öµ¶þÖ®¼äµÄÿһ±Ê× ......
LIKE ÊÇÁíÒ»¸öÔÚ WHERE ×Ó¾äÖлáÓõ½µÄÖ¸Áî¡£»ù±¾ÉÏ£¬LIKE ÄÜÈÃÎÒÃÇÒÀ¾ÝÒ»¸öÌ×ʽ (pattern) À´ÕÒ³öÎÒÃÇÒªµÄ×ÊÁÏ¡£Ïà¶ÔÀ´Ëµ£¬ÔÚÔËÓà IN µÄʱºò£¬ÎÒÃÇÍêÈ«µØÖªµÀÎÒÃÇÐèÒªµÄÌõ¼þ£»ÔÚÔËÓà BETWEEN µÄʱºò£¬ÎÒÃÇÔòÊÇÁгöÒ»¸ö·¶Î§¡£ LIKE µÄÓï·¨ÈçÏ£º
SELECT "À¸Î»Ãû"
from "±í¸ñÃû"
WHERE "À¸Î»Ãû" LIKE {Ì×ʽ}
{Ì×ʽ} ......