SQLÀúÊ·ÓëʵÏÖ
ÔÚ20ÊÀ¼Í70Äê´ú³õÆÚ£¬IBMÑо¿Ô±E. F. Codd²©Ê¿¿ª´´ÐÔµØÑо¿¿ª·¢Á˹ØÏµÊý¾ÝÄ£ÐͲúÆ·SEQUEL£¬¼´½á¹¹»¯Ó¢Óï²éѯÓïÑÔ£¨Structured English Query Language£©¡£SEQUEL×îÖÕ±ä³ÉÁËSQL£¬»ò½á¹¹»¯²éѯÓïÑÔ£¨Structured Query Language£¬SQL£©¡£
IBM¼°ÆäËû¹ØÏµÊý¾Ý¿âµÄ¿ª·¢³§É̶¼Ï£ÍûÓÐÒ»Ì×ÄÜ·ÃÎʲ¢²Ù×ݹØÏµÊý¾Ý¿âµÄ±ê×¼»¯·½·¨¡£ËäÈ»IBMÊ×´´Á˹ØÏµÊý¾Ý¿âÀíÂÛ£¬µ«OracleÊǵÚÒ»¼ÒÔÚÊг¡ÉÏÍÆ³ö¸Ã¼¼ÊõµÄ¹«Ë¾¡£Ëæ×Åʱ¼äµÄÁ÷ÊÅ£¬SQLÔÚÊг¡Éϵõ½Á˲»´íµÄ·´Ï죬ÕâÒýÆðÁËÃÀ¹ú¹ú¼Ò±ê×¼¾Ö£¨American National Standards Institute£¬ANSI£©µÄ¹Ø×¢£¬²¢·Ö±ðÔÚ1986Äê¡¢1989Äê¡¢1992Äê¡¢2003Äê¼°2006Äê·¢²¼ÁËSQL±ê×¼¡£±¾ÎÄÊÊÓÃÓÚANSI 2003±ê×¼£¬ÒòΪANSI 2006±ê×¼´¦ÀíSQLÔªËØÒѳ¬³öÁ˱¾ÊéµÄÃüÁΧ¡££¨ÊµÖÊÉÏ£¬SQL2006±ê×¼ÃèÊöÁËÔÚSQLÖÐÈçºÎʹÓÃXML¡££©
×Ô1986ÄêÒÔÀ´£¬ÒÑÓжàÖÖ¿Éʹ³ÌÐòÔ±¼°¿ª·¢Õß·ÃÎʲ¢²Ù×ݹØÏµÊý¾ÝµÄÓïÑÔ¡£µ«ÊÇ£¬ºÜÉÙÓÐÏñSQLÕâôºÃѧ»ò±»¹ã·ºµØ»ñµÃÈÏͬµÄÒ»ÃÅÓïÑÔ¡£SQLÈóÌÐòÔ±¼°¹ÜÀíÕßÖ»Ðëѧϰµ¥Ò»ÓïÑÔ£¬ÉÔ΢×÷µãµ÷Õû£¬±ã¿ÉÒÔ°ÑËü¹ã·ºÓ¦Óõ½¶àÖÖÊý¾Ý¿âƽ̨¡¢Ó¦ÓóÌÐò¼°²úÆ·ÖС£
¡¶SQL¼¼ÊõÊֲᣨµÚÈý°æ£©¡·½²ÊöÁËÎåÖÖSQL2003£¨SQL3£©µÄ³£¼ûʵÏÖ£º
1.1 ¹ØÏµÄ£ÐÍÓëANSI SQL
¹ØÏµÊý¾Ý¿â¹ÜÀíϵͳ£¨Relational database management systems£¬RDBMSs£©£¬Èç±¾ÊéËù½éÉܵģ¬ÊÇÈ«ÊÀ½çÐÅϢϵͳµÄÖ÷ÒªÇý¶¯ÒýÇæ£¬ÓÈÆäÔÚÍøÂçÓ¦Óü°·Ö²¼Ê½¿Í»§¶Ë/·þÎñÆ÷£¨client/server£©´¦ÀíϵͳÖнÏΪ³£¼û¡£ËüÃÇ¿ÉÈÃÐí¶àÓû§¿ìËÙ²¢Í¬Ê±·ÃÎÊ¡¢´´½¨¡¢±à¼¼°²Ù×ÝÊý¾Ý£¬Ò²¿ÉÈóÌÐò¿ª·¢Õß±àдÓÐÓõÄÓ¦ÓóÌÐòÒÔ±ã·ÃÎÊ×ÊÔ´£¬»¹¿ÉÈùÜÀíÕß¶Ô×éÖ¯ºÃµÄÊý¾ÝÔ´¼ÓÒÔά»¤¡¢±£»¤¼°×îÓÅ»¯¡£
RDBMSÊÇÒ»Ì×ϵͳ£¬ËüµÄÓû§Êý¾ÝΪ±Ë´Ë»¥ÓйØÁªµÄ±í¼¯ºÏ£¬¹ØÁªÊÇÓÉÓÚËüÃÇÓй²Í¬µÄÊý¾ÝÖµ¡£Êý¾Ý´æ´¢ÔÚÓÉÊý¾ÝÐУ¨row£©ºÍÊý¾ÝÁУ¨column£©×é³ÉµÄÊý¾Ý±í£¨table£©ÖС£Èç¹û¶ÀÁ¢µÄÊý¾Ý±í¼äÓÐΨһ±êʶµÄÊý¾ÝÁУ¨¼´¼ü£©£¬ÔòËü¿É±íʾ¹²ÓеÄÊý¾ÝÖµ£¬ÕâЩÊý¾Ý±íÒ²Äܱ˴ËÏàÁª£¨»òÕß˵²úÉú¹ØÁª£©¡£1970Äê6Ô£¬E. F. Codd·¢±íÔÚ¡¶ÃÀ¹ú¼ÆËã»úлáͨѶ¡·£¨Communications of the ACM£©ÉϵĹؼüÐÔÂÛÎÄ¡¶A Relational Model of Data for Large Shared Data Banks¡·ÖÐÊ×´ÎÌá³ö¹ØÏµÊý¾Ý¿âÀíÂÛ¡£ÔÚCoddµÄйØÏµÊý¾ÝÄ£ÐÍÖУ¬Êý¾ÝÒԽṹʽ£¨ÐγÉÓÉÊý¾ÝÐкÍÊý¾ÝÁÐ×é³ÉµÄÊý¾Ý±í£©³ÊÏÖ£¬¿ÉÒÔʹÓÃÑ¡Ôñ¡¢Í¶Ó°¼°Á´½ÓµÈ²Ù×÷·½Ê½¹ÜÀí£¬²¢ÇÒÓÉÓÚ¼üÖµµÄÍêÕûÐÔ¼°²ÎÕÕÍêÕûÐÔµÈÔÔò¶øÊ¹µÃÊý¾Ý¾ßÓÐÒ»ÖÂÐÔ¡£Codd»¹Ìá³öÁ
Ïà¹ØÎĵµ£º
select * from formtable_main_20
sp_help formtable_main_20
--drop view zcountQJ01
create view zcountQJ01
as
select appman ,year(startdata) as zyear,jb,cast(sum(num) as decimal(4,1) ) as num
from formtable_main_20
where year(getdate()) = year(startdata)
group by appman,jb,year(startdata) ......
1. SQLÓÅ»¯µÄÔÔòÊÇ£º½«Ò»´Î²Ù×÷ÐèÒª¶ÁÈ¡µÄBLOCKÊý¼õµ½×îµÍ,¼´ÔÚ×î¶ÌµÄʱ¼ä´ïµ½×î´óµÄÊý¾ÝÍÌÍÂÁ¿¡£
µ÷Õû²»Á¼SQLͨ³£¿ÉÒÔ´ÓÒÔϼ¸µãÇÐÈ룺
¼ì²é²»Á¼µÄSQL£¬¿¼ÂÇÆäд·¨ÊÇ·ñ»¹ÓпÉÓÅ»¯ÄÚÈÝ
¼ì²é×Ó²éѯ ¿¼ÂÇSQL×Ó²éѯÊÇ·ñ¿ÉÒÔÓüòµ¥Á¬½ÓµÄ·½Ê½½øÐÐÖØÐÂÊéд
¼ì²éÓÅ»¯ ......
ÔÚSQLServerµÄÐÔÄܵ÷ÓÅÖУ¬ÓÐÒ»¸ö²»¿É±ÈÄâµÄÎÊÌ⣺ÄǾÍÊÇÈçºÎÔÚÒ»¶ÎÐèÒª³¤Ê±¼äµÄ´úÂë»ò±»Æµ·±µ÷ÓõĴúÂëÖд¦ÀíÁÙʱÊý¾Ý¼¯?±í±äÁ¿ºÍÁÙʱ±íÊÇÁ½ÖÖÑ¡Ôñ¡£ÈçºÎÈ·¶¨Ê²Ã´Ê±ºòÓÃÁÙʱ±í£¬Ê²Ã´Ê±ºòÓñí±äÁ¿ÄØ£¿ÁÙʱ±íºÍ±í±äÁ¿¶¼ÓÐÌØ¶¨µÄÊÊÓû·¾³¡£
¡¡¡¡±í±äÁ¿
¡¡¡¡±äÁ¿¶ ......
¹ØÏµÊý¾Ý¿âÖеIJÙ×÷»á¶ÔÕû¸öÐм¯Æð×÷Óá£ÓÉ SELECT Óï¾ä·µ»ØµÄÐм¯°üÀ¨Âú×ã¸ÃÓï¾äµÄ WHERE ×Ó¾äÖÐÌõ¼þµÄËùÓÐÐС£ÕâÖÖÓÉÓï¾ä·µ»ØµÄÍêÕûÐм¯³ÆÎª½á¹û¼¯¡£Ó¦ÓóÌÐò£¬ÌرðÊǽ»»¥Ê½Áª»úÓ¦ÓóÌÐò£¬²¢²»×ÜÄܽ«Õû¸ö½á¹û¼¯×÷Ϊһ¸öµ¥ÔªÀ´ÓÐЧµØ´¦Àí¡£ÕâЩӦÓóÌÐòÐèÒªÒ»ÖÖ»úÖÆÒÔ±ãÿ´Î´¦ÀíÒ»ÐлòÒ»²¿·ÖÐС£Óαê¾ÍÊÇÌṩÕâÖÖ»úÖÆµÄ¶Ô½ ......