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
Ïà¹ØÎĵµ£º
ÎÒÃDz¢²»Ò»¶¨Ã¿Ò»´Î¶¼Òª½«±í¸ñÄÚµÄ×ÊÁ϶¼Íêȫץ³ö¡£ÔÚÐí¶àʱºò£¬ÎÒÃÇ»áÐèҪѡÔñÐÔµØ×¥×ÊÁÏ¡£¾ÍÎÒÃǵÄÀý×ÓÀ´Ëµ£¬ÎÒÃÇ¿ÉÄÜֻҪץ³öÓªÒµ¶î³¬¹ý $1,000 µÄ×ÊÁÏ¡£Òª×öµ½ÕâÒ»µã£¬ÎÒÃǾÍÐèÒªÓõ½ WHERE Õâ¸öÖ¸Áî¡£Õâ¸öÖ¸ÁîµÄÓï·¨ÈçÏ£º
SELECT "À¸Î»Ãû"
from "±í¸ñÃû"
WHERE "Ìõ¼þ"
ÈôÎÒÃÇÒªÓÉÒÔϵıí¸ñ×¥³öÓªÒµ¶î³¬¹ý $1, ......
IN Õâ¸öÖ¸Áî¿ÉÒÔÈÃÎÒÃÇÒÀÕÕÒ»»òÊý¸ö²»Á¬Ðø (discrete) µÄÖµµÄÏÞÖÆÖ®ÄÚ×¥³öÊý¾Ý¿âÖеÄÖµ£¬¶ø BETWEEN ÔòÊÇÈÃÎÒÃÇ¿ÉÒÔÔËÓÃÒ»¸ö·¶Î§ (range) ÄÚ×¥³öÊý¾Ý¿âÖеÄÖµ¡£BETWEENÕâ¸ö×Ó¾äµÄÓï·¨ÈçÏ£º
SELECT "À¸Î»Ãû"
from " ±í¸ñÃû"
WHERE "À¸Î»Ãû" BETWEEN 'ÖµÒ»' AND 'Öµ¶þ'
Õ⽫ѡ³öÀ¸Î»Öµ°üº¬ÔÚÖµÒ»¼°Öµ¶þÖ®¼äµÄÿһ±Ê× ......
UNION ALL Õâ¸öÖ¸ÁîµÄÄ¿µÄÒ²ÊÇÒª½«Á½¸ö SQL Óï¾äµÄ½á¹ûºÏ²¢ÔÚÒ»Æð¡£ UNION ALL ºÍ UNION ²»Í¬Ö®´¦ÔÚÓÚ UNION ALL »á½«Ã¿Ò»±Ê·ûºÏÌõ¼þµÄ×ÊÁ϶¼ÁгöÀ´£¬ÎÞÂÛ×ÊÁÏÖµÓÐÎÞÖØ¸´¡£
UNION ALL µÄÓï·¨ÈçÏ£º
[SQL Óï¾ä 1]
UNION ALL
[SQL Óï¾ä 2]
ÎÒÃÇÓúÍÉÏһҳͬÑùµÄÀý×ÓÀ´ÏÔʾ³ö UNION ALL ºÍ UNION µÄ²»Í¬¡£Í¬Ñù¼ÙÉèÎÒÃÇ ......
ºÍ UNION Ö¸ÁîÀàËÆ£¬ INTERSECT Ò²ÊǶÔÁ½¸ö SQL Óï¾äËù²úÉúµÄ½á¹û×ö´¦ÀíµÄ¡£²»Í¬µÄµØ·½ÊÇ£¬ UNION »ù±¾ÉÏÊÇÒ»¸ö OR (Èç¹ûÕâ¸öÖµ´æÔÚÓÚµÚÒ»¾ä»òÊǵڶþ¾ä£¬Ëü¾Í»á±»Ñ¡³ö)£¬¶ø INTERSECT Ôò±È½ÏÏñ AND ( Õâ¸öÖµÒª´æÔÚÓÚµÚÒ»¾äºÍµÚ¶þ¾ä²Å»á±»Ñ¡³ö)¡£ UNION ÊÇÁª¼¯£¬¶ø INTERSECT Êǽ»¼¯¡£
INTERSECT µÄÓï·¨ÈçÏ£º
[SQLÓï¾ä ......