SQL CREATE VIEWµÄÓ÷¨
ÊÓ¹Û±í (Views) ¿ÉÒÔ±»µ±×÷ÊÇÐéÄâ±í¸ñ¡£Ëü¸ú±í¸ñµÄ²»Í¬ÊÇ£¬±í¸ñÖÐÓÐʵ¼Ê´¢´æ×ÊÁÏ£¬¶øÊÓ¹Û±íÊǽ¨Á¢ÔÚ±í¸ñÖ®ÉϵÄÒ»¸ö¼Ü¹¹£¬Ëü±¾Éí²¢²»Êµ¼Ê´¢´æ×ÊÁÏ¡£
½¨Á¢Ò»¸öÊÓ¹Û±íµÄÓï·¨ÈçÏ£º
CREATE VIEW "VIEW_NAME" AS "SQL Óï¾ä"
"SQL Óï¾ä" ¿ÉÒÔÊÇÈκÎÒ»¸öÎÒÃÇÔÚÕâ¸ö½Ì²ÄÖÐÓÐÌáµ½µÄ SQL¡£
À´¿´Ò»¸öÀý×Ó¡£¼ÙÉèÎÒÃÇÓÐÒÔϵıí¸ñ£º
TABLE Customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date)
ÈôÒªÔÚÕâ¸ö±í¸ñÉϽ¨Á¢Ò»¸ö°üÀ¨ First_Name£¬ Last_Name£¬ ºÍ Country ÕâÈý¸öÀ¸Î»µÄÊÓ¹Û±í£¬ÎÒÃǾʹòÈ룬
CREATE VIEW V_Customer
AS SELECT First_Name, Last_Name, Country
from Customer
ÏÖÔÚ£¬ÎÒÃǾÍÓÐÒ»¸ö½Ð×ö V_Customer µÄÊÓ¹Û±í£º
View V_Customer
(First_Name char(50),
Last_Name char(50),
Country char(25))
ÎÒÃÇÒ²¿ÉÒÔÓÃÊÓ¹Û±íÀ´Á¬½ÓÁ½¸ö±í¸ñ¡£ÔÚÕâ¸öÇé¿öÏ£¬Ê¹ÓÃÕ߾ͿÉÒÔÖ±½ÓÓÉÒ»¸öÊÓ¹Û±íÖÐÕÒ³öËýÒªµÄ×ÊѶ£¬¶ø²»ÐèÒªÓÉÁ½¸ö²»Í¬µÄ±í¸ñÖÐÈ¥×öÒ»´ÎÁ¬½ÓµÄ¶¯×÷¡£¼ÙÉèÓÐÒÔϵÄÁ½¸ö±í¸ñ£º
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) ÏúÊÛ¶î (sales) µÄÊÓ¹Û±í£º
CREATE VIEW V_REGION_SALES
AS 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
Õâ¾Í¸øÎÒÃÇÓÐÒ»¸öÃûΪ V_REGION_SALES µÄÊÓ¹Û±í¡£Õâ¸öÊÓ¹Û±í°üº¬²»Í¬µØÇøµÄÏúÊÛŶ¡£Èç¹ûÎÒÃÇÒª´ÓÕâ¸öÊÓ¹Û±íÖлñÈ¡×ÊÁÏ£¬ÎÒÃǾʹòÈ룬
SELECT * from V_REGION_SALES
½á¹û£º
REGION
SALES
East
$700
West
$2050
Ïà¹ØÎĵµ£º
ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......
ÎÒÃDz¢²»Ò»¶¨Ã¿Ò»´Î¶¼Òª½«±í¸ñÄÚµÄ×ÊÁ϶¼Íêȫץ³ö¡£ÔÚÐí¶àʱºò£¬ÎÒÃÇ»áÐèҪѡÔñÐÔµØ×¥×ÊÁÏ¡£¾ÍÎÒÃǵÄÀý×ÓÀ´Ëµ£¬ÎÒÃÇ¿ÉÄÜֻҪץ³öÓªÒµ¶î³¬¹ý $1,000 µÄ×ÊÁÏ¡£Òª×öµ½ÕâÒ»µã£¬ÎÒÃǾÍÐèÒªÓõ½ WHERE Õâ¸öÖ¸Áî¡£Õâ¸öÖ¸ÁîµÄÓï·¨ÈçÏ£º
SELECT "À¸Î»Ãû"
from "±í¸ñÃû"
WHERE "Ìõ¼þ"
ÈôÎÒÃÇÒªÓÉÒÔϵıí¸ñ×¥³öÓªÒµ¶î³¬¹ý $1, ......
ÔÚÉÏÒ»Ò³ÓÐÌáµ½£¬COUNT ÊǺ¯ÊýÖ®Ò»¡£ÓÉÓÚËüµÄʹÓù㷺£¬ÎÒÃÇÔÚÕâÀïÌØ±ðÌá³öÀ´ÌÖÂÛ¡£»ù±¾ÉÏ£¬COUNT ÈÃÎÒÃÇÄܹ»Êý³öÔÚ±í¸ñÖÐÓжàÉÙ±Ê×ÊÁϱ»Ñ¡³öÀ´¡£ËüµÄÓï·¨ÊÇ£º
SELECT COUNT("À¸Î»Ãû")
from "±í¸ñÃû"
¾ÙÀýÀ´Ëµ£¬ÈôÎÒÃÇÒªÕÒ³öÎÒÃǵÄʾ·¶±í¸ñÖÐÓм¸±Ê store_name À¸²»Êǿհ׵Ä×ÊÁÏʱ£¬
Store_Information ±í¸ñ
store ......
ÄÇÎÒÃÇÈçºÎ¶Ôº¯Êý²úÉúµÄÖµÀ´É趨Ìõ¼þÄØ£¿¾ÙÀýÀ´Ëµ£¬ÎÒÃÇ¿ÉÄÜÖ»ÐèÒªÖªµÀÄÄЩµêµÄÓªÒµ¶îÓг¬¹ý $1,500¡£ÔÚÕâ¸öÇé¿öÏ£¬ÎÒÃDz»ÄÜʹÓà WHERE µÄÖ¸Áî¡£ÄÇÒªÔõô°ìÄØ£¿ºÜÐÒÔ˵أ¬SQL ÓÐÌṩһ¸ö HAVING µÄÖ¸Á¶øÎÒÃǾͿÉÒÔÓÃÕâ¸öÖ¸ÁîÀ´´ïµ½Õâ¸öÄ¿±ê¡£ HAVING ×Ó¾äͨ³£ÊÇÔÚÒ»¸ö SQL ¾ä×ÓµÄ×îºó¡£Ò»¸öº¬ÓÐ HAVING ×Ó¾äµÄ SQL ²¢²» ......
֮ǰÎÒÃÇ¿´µ½µÄ×óÁ¬½Ó (left join)£¬ÓÖ³ÆÄÚ²¿Á¬½Ó (inner join)¡£ÔÚÕâ¸öÇé¿öÏ£¬ÒªÁ½¸ö±í¸ñÄÚ¶¼ÓÐͬÑùµÄÖµ£¬ÄÇÒ»±Ê×ÊÁϲŻᱻѡ³ö¡£ÄÇÈç¹ûÎÒÃÇÏëÒªÁгöÒ»¸ö±í¸ñÖÐÿһ±ÊµÄ×ÊÁÏ£¬ÎÞÂÛËüµÄÖµÔÚÁíÒ»¸ö±í¸ñÖÐÓÐûÓгöÏÖ£¬ÄǸÃÔõô°ìÄØ£¿ÔÚÕâ¸öʱºò£¬ÎÒÃǾÍÐèÒªÓõ½ SQL OUTER JOIN (ÍⲿÁ¬½Ó) µÄÖ¸Áî¡£
ÍⲿÁ¬½ÓµÄÓï·¨ÊÇÒÀÊý¾ ......