1. ¶¨ÒåÓα궨Òå
ÓαêÓï¾äµÄºËÐÄÊǶ¨ÒåÁËÒ»¸öÓαê±êʶÃû£¬²¢°ÑÓαê±êʶÃûºÍÒ»¸ö²éѯÓï¾ä¹ØÁªÆðÀ´¡£DECLAREÓï¾äÓÃÓÚÉùÃ÷Óα꣬Ëüͨ¹ýSELECT²éѯ¶¨ÒåÓÎ±ê´æ´¢µÄÊý¾Ý¼¯ºÏ¡£Óï¾ä¸ñʽΪ£º
DECLARE ÓαêÃû³Æ [INSENSITIVE] [SCROLL]
CURSOR FOR selectÓï¾ä
[FOR{READ ONLY|UPDATE[OF ÁÐÃû×Ö±í]}]
²ÎÊý˵Ã÷£º
INSENSITIVEÑ¡Ï˵Ã÷Ëù¶¨ÒåµÄÓαêʹÓÃSELECTÓï¾ä²éѯ½á¹ûµÄ¿½±´£¬¶ÔÓαêµÄ²Ù×÷¶¼»ùÓڸÿ½±´½øÐС£Òò´Ë£¬ÕâÆÚ¼ä¶ÔÓαê»ù±¾±íµÄÊý¾ÝÐ޸IJ»ÄÜ·´Ó³µ½ÓαêÖС£ÕâÖÖÓαêÒ²²»ÔÊÐíͨ¹ýËüÐ޸Ļù±¾±íµÄÊý¾Ý¡£
SCROLLÑ¡Ïָ¶¨¸ÃÓαê¿ÉÓÃËùÓеÄÓαêÊý¾Ý¶¨Î»·½·¨ÌáÈ¡Êý¾Ý£¬Óα궨λ·½·¨°üÀ¨PRIOR¡¢FIRST¡¢LAST¡¢ABSOLUTE n ºÍRELATIVE n Ñ¡Ïî¡£
SelectÓï¾ä£ºÎª±ê×¼µÄSELECT²éѯÓï¾ä£¬Æä²éѯ½á¹ûΪÓαêµÄÊý¾Ý¼¯ºÏ£¬¹¹³ÉÓαêÊý¾Ý¼¯ºÏµÄÒ»¸ö»ò¶à¸ö±í³Æ×÷ÓαêµÄ»ù±í¡£
ÔÚÓαêÉùÃ÷Óï¾äÖУ¬ÓÐÏÂÁÐÌõ¼þ֮һʱ£¬ÏµÍ³×Ô¶¯°ÑÓα궨ÒåΪINSENSITIVEÓα꣺
SELECTÓï¾äÖÐʹÓÃÁËDISTINCT¡¢UNION¡¢ GROUP BY»òHAVINGµÈ¹Ø¼ü×Ö£»
ÈÎÒ»¸öÓαê»ù±íÖв»´æÔÚΨһË÷Òý¡£
ÆäËû
READ ONLYÑ¡Ï˵Ã÷¶¨ÒåÖ»¶ÁÓαꡣ
UPDATE [OF ÁÐÃû×Ö±í]Ñ¡Ï¶¨ÒåÓαê¿ÉÐ޸ĵÄÁС£Èç¹ûʹÓÃOF ÁÐÃû×Ö±íÑ¡ ......
ÔÚÊý¾Ý¿âÖУ¬ÓαêÊÇÒ»¸öÊ®·ÖÖØÒªµÄ¸ÅÄî¡£ÓαêÌṩÁËÒ»ÖÖ¶Ô´Ó±íÖмìË÷³öµÄÊý¾Ý½øÐвÙ×÷µÄÁé»îÊֶΣ¬¾Í±¾ÖʶøÑÔ£¬Óαêʵ¼ÊÉÏÊÇÒ»ÖÖÄÜ´Ó°üÀ¨¶àÌõÊý¾Ý¼Ç¼µÄ½á¹û¼¯ÖÐÿ´ÎÌáȡһÌõ¼Ç¼µÄ»úÖÆ¡£Óαê×ÜÊÇÓëÒ»ÌõT_SQL Ñ¡ÔñÓï¾äÏà¹ØÁª£¬ÒòΪÓαêÓɽá¹û¼¯£¨¿ÉÒÔÊÇÁãÌõ¡¢Ò»Ìõ»òÓÉÏà¹ØµÄÑ¡ÔñÓï¾ä¼ìË÷³öµÄ¶àÌõ¼Ç¼£©ºÍ½á¹û¼¯ÖÐÖ¸ÏòÌØ¶¨¼Ç¼µÄÓαêλÖÃ×é³É¡£
µ±¾ö¶¨¶Ô½á¹û¼¯½øÐд¦Àíʱ£¬±ØÐëÉùÃ÷Ò»¸öÖ¸Ïò¸Ã½á¹û¼¯µÄÓαꡣÈç¹ûÔø¾Óà C ÓïÑÔд¹ý¶ÔÎļþ½øÐд¦ÀíµÄ³ÌÐò£¬ÄÇôÓαê¾ÍÏñÄú´ò¿ªÎļþËùµÃµ½µÄÎļþ¾ä±úÒ»Ñù£¬Ö»ÒªÎļþ´ò¿ª³É¹¦£¬¸ÃÎļþ¾ä±ú¾Í¿É´ú±í¸ÃÎļþ¡£¶ÔÓÚÓÎ±ê¶øÑÔ£¬ÆäµÀÀíÊÇÏàͬµÄ¡£¿É¼ûÓαêÄܹ»ÊµÏÖ°´Ó봫ͳ³ÌÐò¶ÁÈ¡Æ½ÃæÎļþÀàËÆµÄ·½Ê½´¦ÀíÀ´×Ô»ù´¡±íµÄ½á¹û¼¯£¬´Ó¶ø°Ñ±íÖÐÊý¾ÝÒÔÆ½ÃæÎļþµÄÐÎʽ³ÊÏÖ¸ø³ÌÐò¡£
ÎÒÃÇÖªµÀ¹ØÏµÊý¾Ý¿â¹ÜÀíϵͳʵÖÊÊÇÃæÏò¼¯ºÏµÄ£¬ÔÚMS SQL SERVER Öв¢Ã»ÓÐÒ»ÖÖÃèÊö±íÖе¥Ò»¼Ç¼µÄ±í´ïÐÎʽ£¬³ý·ÇʹÓÃwhere ×Ó¾äÀ´ÏÞÖÆÖ»ÓÐÒ»Ìõ¼Ç¼±»Ñ¡ÖС£Òò´ËÎÒÃDZØÐë½èÖúÓÚÓαêÀ´½øÐÐÃæÏòµ¥Ìõ¼Ç¼µÄÊý¾Ý´¦Àí¡£
Óɴ˿ɼû£¬ÓαêÔÊÐíÓ¦ÓóÌÐò¶Ô²éѯÓï¾äselect ·µ»ØµÄÐнá¹û¼¯ÖÐÿһÐнøÐÐÏàͬ»ò²»Í¬µÄ²Ù×÷£¬¶ø²»ÊÇÒ»´Î¶ÔÕû¸ö½á¹û¼¯½ ......
SQL*Loader ÓÃÓÚ½«´óÁ¿Êý¾Ý×°ÈëÊý¾Ý¿â¡£
¢Å¡¢¶¨¿íÊý¾Ý
´´½¨Êý¾ÝÎļþcontrol.txt£º
aaa,bbb
ccc,ddd
eee,fff
´´½¨¿ØÖÆÎļþcontrol.ctl£º
load data
infile 'c:\loader.txt'
append
into table tester.mm(
m1 position(1:3) char,
m2 position(5:7) char)
ÅúÁ¿¼ÓÔØÊý¾Ý£º
sqlldr tester/test control=c:\loader.ctl data=c:\loader.txt
¢Æ¡¢¶¨½ç·ûÊý¾Ý
´´½¨Êý¾ÝÎļþcontrol.txt£º
abc|def,xyz
a,bbb
cc,ddd
eee-dd,fff-le
´´½¨¿ØÖÆÎļþcontrol.ctl£º
load data
infile 'c:\loader.txt'
append
into table tester.mm(
m1 char terminated by ",",
m2 char terminated by ",")
ÅúÁ¿¼ÓÔØÊý¾Ý£º
sqlldr tester/test control=c:\loader.ctl data=c:\loader.txt ......
SQL*Loader ÓÃÓÚ½«´óÁ¿Êý¾Ý×°ÈëÊý¾Ý¿â¡£
¢Å¡¢¶¨¿íÊý¾Ý
´´½¨Êý¾ÝÎļþcontrol.txt£º
aaa,bbb
ccc,ddd
eee,fff
´´½¨¿ØÖÆÎļþcontrol.ctl£º
load data
infile 'c:\loader.txt'
append
into table tester.mm(
m1 position(1:3) char,
m2 position(5:7) char)
ÅúÁ¿¼ÓÔØÊý¾Ý£º
sqlldr tester/test control=c:\loader.ctl data=c:\loader.txt
¢Æ¡¢¶¨½ç·ûÊý¾Ý
´´½¨Êý¾ÝÎļþcontrol.txt£º
abc|def,xyz
a,bbb
cc,ddd
eee-dd,fff-le
´´½¨¿ØÖÆÎļþcontrol.ctl£º
load data
infile 'c:\loader.txt'
append
into table tester.mm(
m1 char terminated by ",",
m2 char terminated by ",")
ÅúÁ¿¼ÓÔØÊý¾Ý£º
sqlldr tester/test control=c:\loader.ctl data=c:\loader.txt ......
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, ADODB,comobj, OleServer,
ExcelXP;
type
TForm1 = class(TForm)
ADOConn: TADOConnection;
atblXlsToSql: TADOTable;
DBGrid1: TDBGrid;
Panel1: TPanel;
Button1: TButton;
opdExcel: TOpenDialog;
DataSource1: TDataSource;
Excel: TExcelApplication;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function ConnectDB:boolean; //Á¬½ÓÊý¾Ý¿â
function OpenTable(const Tablename:String):boolean; //´ò¿ªÖ¸¶¨Êý¾Ý±í
function XlsToSq ......
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, ADODB,comobj, OleServer,
ExcelXP;
type
TForm1 = class(TForm)
ADOConn: TADOConnection;
atblXlsToSql: TADOTable;
DBGrid1: TDBGrid;
Panel1: TPanel;
Button1: TButton;
opdExcel: TOpenDialog;
DataSource1: TDataSource;
Excel: TExcelApplication;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function ConnectDB:boolean; //Á¬½ÓÊý¾Ý¿â
function OpenTable(const Tablename:String):boolean; //´ò¿ªÖ¸¶¨Êý¾Ý±í
function XlsToSq ......
Ò»¡¢ SQL DMO ÃèÊö£ºSQL Distributed Management Objects£¨SQL·Ö²¼Ê½¹ÜÀí¶ÔÏ󣩣¬´æÔÚÓÚSQLDMO.dllÎļþÖУ¬Êµ¼ÊÉÏÊÇÒ»¸öCOM ¶ÔÏó£¬Í¨¹ýµ÷ÓÃSQL DMOµÄListAvailableSQLServers·½·¨È¡µÃ¡£ ÁбíÀàÐÍ£ºÁоÙ×°ÓС°¿Í»§¶Ë¡±ºÍ¡°·þÎñ¶Ë¡±µÄ¼ÆËã»ú¡£ ÊÊÓÃÌõ¼þ£º×°ÓÐ SQL Server£¬ÇÒÓÐSQLDMO.dllÎļþ¡£ ËÙ¶È£ºÖÐ µ÷ÓÃʾÀý£ºGetSQLServerList(ListBox1.items); ´úÂ룺 uses ComObj; function GetSQLServerList(var AList: TStrings): Boolean; var SQLServerApp: Variant; ServerList: Variant; i: Integer; begin Result := True; try SQLServerApp := CreateOleObject('SQLDMO.Application'); ServerList := SQLServerApp.ListAvailableSQLServers; for i := 1 to ServerList.Count do AList.Add(ServerList.Item(i)); SQLServerApp := Unassigned; ServerList := Unassigned; except Result := False; end; end; ¶þ¡¢ NetServerEnum ÃèÊö£ºÍøÂç·þÎñº¯Êý£¬´æÔÚÓÚNetApi32.dllÎļþÖУ»Í¨¹ýNetServerEnumº¯Êý¿ÉÈ¡µÃ×°ÓÐSQL Server·þÎñ¶ËµÄ¼ÆËã»úÁÐ±í£¬Ö»×°ÓÐSQL Server¿Í»§¶ËµÄ¼ÆËã»ú½«²»»á±»ÁÐ¾ÙÆäÖУ»Èç¹ûһ̨¼ÆËã»úµÄSQL Server·þÎñ¸Õ¸ÕÆô¶¯£¬ÄÇô´Ëº¯Êý ......
ÔÚ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 ¹ØÏµ ......