SQLÓαê¿ìËÙÉÏÊÖ
ÎÊÌâÃèÊö£ºÓÐÒÔÏÂ2ÕÅ±í£¬
±íA
0_id 0_name 0_Salary
Y2007001 ´ï¸ç 3666
Y2007002 С¶Å 4888
Y2007003 ´ï¸ç 3666
±íB
a_id a_salary
Y2007001 333
Y2007002 444
Y2007003 555
ÏÖÔÚÏ£ÍûµÃµ½ÕâÑùµÄÊý¾Ý±íAÀïµÄO_Saloary¼ÓÉϱíBµÄA_SalaryÊǵ±Ç°µÄ×ܹ¤×Ê£¬²¢¸üе½±íA¡£
Äã¿ÉÒÔÓÃÊÓͼÀ´£¬±íÁ¬½ÓϾͿÉÒÔ¡£
ÏÖÔÚÎÒÃÇ¿¼ÂÇÏÂÈÃSQL×Ô¼ºÀ´´¦Àí£¬Óαê¾ÍÊǺܺõķ½·¨¡£
ÔÀí£ºÓαê¾ÍÊǰÑÊý¾Ý°´ÕÕÖ¸¶¨ÒªÇóÌáÈ¡³öÏàÓ¦µÄÊý¾Ý¼¯£¬È»ºóÖðÌõ½øÐÐÊý¾Ý´¦Àí¡£
1.1ÓαêµÄ¸ÅÄî
Óαê(Cursor)ËüʹÓû§¿ÉÖðÐзÃÎÊÓÉSQL Server·µ»ØµÄ½á¹û¼¯¡£Ê¹ÓÃÓαê(cursor)µÄÒ»¸öÖ÷ÒªµÄÔÒò¾ÍÊǰѼ¯ºÏ²Ù×÷ת»»³Éµ¥¸ö¼Ç¼´¦Àí·½Ê½¡£ÓÃSQLÓïÑÔ´ÓÊý¾Ý¿âÖмìË÷Êý¾Ýºó£¬½á¹û·ÅÔÚÄÚ´æµÄÒ»¿éÇøÓòÖУ¬ÇÒ½á¹ûÍùÍùÊÇÒ»¸öº¬Óжà¸ö¼Ç¼µÄ¼¯ºÏ¡£Óαê»úÖÆÔÊÐíÓû§ÔÚSQL serverÄÚÖðÐеطÃÎÊÕâЩ¼Ç¼£¬°´ÕÕÓû§×Ô¼ºµÄÒâÔ¸À´ÏÔʾºÍ´¦ÀíÕâЩ¼Ç¼¡£
1.2 ÓαêµÄÓŵã
´ÓÓα궨Òå¿ÉÒԵõ½ÓαêµÄÈçÏÂÓŵ㣬ÕâЩÓŵãʹÓαêÔÚʵ¼ÊÓ¦ÓÃÖз¢»ÓÁËÖØÒª×÷Óãº
1£©ÔÊÐí³ÌÐò¶ÔÓɲéѯÓï¾äselect·µ»ØµÄÐм¯ºÏÖеÄÿһÐÐÖ´ÐÐÏàͬ»ò
Ïà¹ØÎĵµ£º
select convert(numeric(10,4),iinvnowcost) from ...
decimal ºÍ numeric (À´Ô´sql Áª»ú´ÔÊé)
´ø¶¨µã¾«¶ÈºÍСÊýλÊýµÄ numeric Êý¾ÝÀàÐÍ¡£
decimal[(p[, s])] ºÍ numeric[(p[, s])]
¶¨µã¾«¶ÈºÍСÊýλÊý¡£Ê¹ÓÃ×î´ó¾«¶Èʱ£¬ÓÐЧֵ´Ó - 10^38 +1 µ½ 10^38 - 1¡£decimal µÄ SQL-92 ͬÒå´ÊÊÇ dec ºÍ dec(p, s)¡£
p£¨¾«¶È£© ......
1¡¢ÎļþºÍÎļþ×éµÄº¬ÒåÓë¹ØÏµ
ÿ¸öÊý¾Ý¿âÓÐÒ»¸öÖ÷Êý¾ÝÎļþ.ºÍÈô¸É¸ö´ÓÎļþ¡£ÎļþÊÇÊý¾Ý¿âµÄÎïÀíÌåÏÖ¡£ Îļþ×é¿ÉÒÔ°üÀ¨·Ö²¼ÔÚ¶à¸öÂß¼·ÖÇøµÄÎļþ£¬ÊµÏÖ¸ºÔØÆ½ºâ¡£Îļþ×éÔÊÐí¶ÔÎļþ½øÐзÖ×飬ÒÔ±ãÓÚ¹ÜÀíºÍÊý¾ÝµÄ·ÖÅ䣯·ÅÖá£ÀýÈ磬¿ÉÒÔ·Ö±ðÔÚÈý¸öÓ²ÅÌÇý¶¯Æ÷ÉÏ´´½¨Èý¸öÎļþ£¨Data1.ndf¡¢Data2.ndf ºÍ Data3.ndf£©£¬²¢½«ÕâÈý¸ ......
JOINÓÅ»¯
MySQLÖÐjoinµÄʵÏÖ²ÉÓõÄÊÇNested Loop JoinËã·¨¡£Í¨¹ýÇý¶¯±íµÄ½á¹û¼¯×÷Ϊѻ·»ù´¡Êý¾Ý£¬È»ºó½«¸Ã½á¹û¼¯ÖеÄÊý¾Ý×÷Ϊ¹ýÂË
Ìõ¼þÒ»ÌõÌõµÄµ½ÏÂÒ»¸ö±íÖвéѯÊý¾Ý£¬×îºóºÏ²¢½á¹û£¬Èç¹û´æÔÚºóÐø±í£¬¹ý³ÌÒ²Èç´Ë¡£
¾¡Á¿¼õÉÙjoinÓï¾äÖÐnested loopÑ»·µÄ´ÎÊý¡£×îÓÐЧµÄ·½·¨ÊÇÈÃÇý¶¯±íµÄ½á¹û¼¯¾¡¿ÉÄܵÄС
ÓÅÏÈÓÅ»¯nested ......
(1) Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò
(
Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ
)
£º
ORACLE µÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àí
from
×Ó¾ä
ÖеıíÃû£¬
from
×Ó¾äÖÐдÔÚ×îºóµÄ±í
(
»ù´¡±í
driving table)
½«±»×îÏÈ´¦Àí£¬ÔÚ
from
×Ó¾äÖаüº¬¶à¸ö±íµÄÇé¿öÏÂ
,
Äã±ØÐëÑ¡
Ôñ¼Ç¼ÌõÊý×îÉٵıí×÷Ϊ»ù´¡±í ......
Ó¦Ò»¸öÅóÓѵÄÒªÇó£¬ÌùÉÏÊղصÄSQL³£Ó÷ÖÒ³µÄ°ì·¨¡«¡«
±íÖÐÖ÷¼ü±ØÐëΪ±êʶÁУ¬[ID] int IDENTITY (1,1)
1.·ÖÒ³·½°¸Ò»£º(ÀûÓÃNot InºÍSELECT TOP·ÖÒ³)
Óï¾äÐÎʽ£º
SELECT TOP Ò³¼Ç¼ÊýÁ¿ *
from ±íÃû
WHERE (ID NOT IN
(SELECT TOP (ÿҳÐÐÊý*(Ò³Êý-1)) ID
from ±íÃû
ORDER BY ID))
O ......