📄 subject_48203.htm
字号:
<p>
序号:48203 发表者:KasonWu 发表日期:2003-07-29 12:30:34
<br>主题:SQL的命令
<br>内容:本人在网上抄过来的,和大家一起分享:<BR>.SQL常用命令使用方法: <BR>(1)数据记录筛选: <BR>sql="select*from数据表where字段名=字段值orderby字段名[desc]" <BR>sql="select*from数据表where字段名like'%字段值%'orderby字段名[desc]" <BR>sql="selecttop10*from数据表where字段名orderby字段名[desc]" <BR>sql="select*from数据表where字段名in('值1','值2','值3')" <BR>sql="select*from数据表where字段名between值1and值2" <BR><BR>(2)更新数据记录: <BR>sql="update数据表set字段名=字段值where条件表达式" <BR>sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere条件表达式" <BR><BR>(3)删除数据记录: <BR>sql="deletefrom数据表where条件表达式" <BR>sql="deletefrom数据表"(将数据表所有记录删除) <BR><BR>(4)添加数据记录: <BR>sql="insertinto数据表(字段1,字段2,字段3…)values(值1,值2,值3…)" <BR>sql="insertinto目标数据表select*from源数据表"(把源数据表的记录添加到目标数据表) <BR><BR>(5)数据记录统计函数: <BR>AVG(字段名)得出一个表格栏平均值 <BR>COUNT(*&brvbar;字段名)对数据行数的统计或对某一栏有值的数据行数统计 <BR>MAX(字段名)取得一个表格栏最大的值 <BR>MIN(字段名)取得一个表格栏最小的值 <BR>SUM(字段名)把数据栏的值相加 <BR>引用以上函数的方法: <BR>sql="selectsum(字段名)as别名from数据表where条件表达式" <BR>setrs=conn.excute(sql) <BR>用rs("别名")获取统的计值,其它函数运用同上。 <BR><BR>(5)数据表的建立和删除: <BR>CREATETABLE数据表名称(字段1类型1(长度),字段2类型2(长度)……) <BR>例:CREATETABLEtab01(namevarchar(50),datetimedefaultnow()) <BR><BR>DROPTABLE数据表名称(永久性删除一个数据表) <BR>4.记录集对象的方法: <BR>rs.movenext将记录指针从当前的位置向下移一行 <BR>rs.moveprevious将记录指针从当前的位置向上移一行 <BR>rs.movefirst将记录指针移到数据表第一行 <BR>rs.movelast将记录指针移到数据表最后一行 <BR>rs.absoluteposition=N将记录指针移到数据表第N行 <BR>rs.absolutepage=N将记录指针移到第N页的第一行 <BR>rs.pagesize=N设置每页为N条记录 <BR>rs.pagecount根据pagesize的设置返回总页数 <BR>rs.recordcount返回记录总数 <BR>rs.bof返回记录指针是否超出数据表首端,true表示是,false为否 <BR>rs.eof返回记录指针是否超出数据表末端,true表示是,false为否 <BR>rs.delete删除当前记录,但记录指针不会向下移动 <BR>rs.addnew添加记录到数据表末端 <BR>rs.update更新数据表记录 <BR>--------------------------------------- <BR>Recordset对象方法 <BR>Open方法 <BR>recordset.OpenSource,ActiveConnection,CursorType,LockType,Options <BR>Source <BR>Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored <BR>Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。 <BR><BR>ActiveConnection <BR>Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信息(ConnectionString)的字符串参数。 <BR><BR>CursorType <BR>Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下: <BR>-------------------------------------------------------------- <BR>常数常数值说明 <BR>------------------------------------------------------------- <BR>adOpenForwardOnly0缺省值,启动一个只能向前移动的游标(ForwardOnly)。 <BR>adOpenKeyset1启动一个Keyset类型的游标。 <BR>adOpenDynamic2启动一个Dynamic类型的游标。 <BR>adOpenStatic3启动一个Static类型的游标。 <BR>------------------------------------------------------------- <BR>以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。 <BR>------------------------------------------------------------- <BR>Recordset属性adOpenForwardOnlyadOpenKeysetadOpenDynamicadOpenStatic <BR>------------------------------------------------------------- <BR>AbsolutePage不支持不支持可读写可读写 <BR>AbsolutePosition不支持不支持可读写可读写 <BR>ActiveConnection可读写可读写可读写可读写 <BR>BOF只读只读只读只读 <BR>Bookmark不支持不支持可读写可读写 <BR>CacheSize可读写可读写可读写可读写 <BR>CursorLocation可读写可读写可读写可读写 <BR>CursorType可读写可读写可读写可读写 <BR>EditMode只读只读只读 <BR>只读 <BR>EOF只读只读只读 <BR>只读 <BR>Filter可读写可读写可读写可读写 <BR>LockType可读写可读写可读写可读写 <BR>MarshalOptions可读写可读写可读写可读写 <BR>MaxRecords可读写可读写可读写可读写 <BR>PageCount不支持不支持只读只读 <BR>PageSize可读写可读写可读写可读写 <BR>RecordCount不支持不支持只读只读 <BR>Source可读写可读写可读写可读写 <BR>State只读只读只读只读 <BR>Status只读只读只读只读 <BR>AddNew支持支持支持支持 <BR>CancelBatch支持支持支持支持 <BR>CancelUpdate支持支持支持支持 <BR>Clone不支持不支持 <BR>Close支持支持支持支持 <BR>Delete支持支持支持支持 <BR>GetRows支持支持支持支持 <BR>Move不支持支持支持支持 <BR>MoveFirst支持支持支持支持 <BR>MoveLast不支持支持支持支持 <BR>MoveNext支持支持支持支持 <BR>MovePrevious不支持支持支持支持 <BR>NextRecordset支持支持支持支持 <BR>Open支持支持支持支持 <BR>Requery支持支持支持支持 <BR>Resync不支持不支持支持支持 <BR>Supports支持支持支持支持 <BR>Update支持支持支持支持 <BR>UpdateBatch支持支持支持支持 <BR>-------------------------------------------------------------- <BR>其中NextRecordset方法并不适用于MicrosoftAccess数据库。 <BR><BR>LockType <BR>Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下: <BR>------------------------------------------------------------- <BR>常数常数值说明 <BR>-------------------------------------------------------------- <BR>adLockReadOnly1缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法 <BR>adLockPrssimistic2当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。 <BR>adLockOptimistic3当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。 <BR>adLockBatchOptimistic4当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、 <BR>删、改的操作。 <BR>Sqlserver数据库asp调用的特殊部分 <BR><% <BR>response.writews2(1) <BR>w2=ws2(2) <BR>response.write"a" <BR>response.write"b"&ws2(3)&"c" <BR>response.write"d"&w2 <BR>%> <BR><BR>建立一个表 <BR>createtablefriends(name1varchar(10),phonevarchar(15)) <BR><BR><BR>跟access不同,sqlserver默认的数据库只能向后读取,非常严格。 <BR><BR>在数据库之间拷贝复制表格 <BR>select*intocoolhe.dbo.mainfrommain <BR><BR>删除数据库 <BR>dropdatabasecoolhe <BR><BR>查找替换功能 <BR><BR>updatecommend <BR>setGIF图片=stuff(GIF图片,1,21,"http://192.168.1.2")//替换GIF图片字段从头开始的21个字符为<http://192.168.1.2> <BR><BR>更改记录 <BR>自动增加的字段无法更改 <BR>解决办法如下 <BR><BR>CREATETABLEnew_employees <BR>( <BR>id_numintIDENTITY(1,1), <BR>fnamevarchar(20), <BR>minitchar(1), <BR>lnamevarchar(30) <BR>) <BR><BR>INSERTnew_employees <BR>(fname,minit,lname) <BR>valueS <BR>('Karin','F','Josephs') <BR><BR><BR>修改某个记录 <BR>updatemain <BR>setGIF图片=’新的’whereid=4331 <BR><BR>添加一条记录 <BR>insertarticles <BR>(category,title,link,updatetime) <BR>values <BR>('CPU','AMDAthlonXP处理器技术与架构','20011024/01.asp','10-24-2001') <BR><BR>从一个表添加记录道另一个表 <BR>insertmain <BR>selecta,b,c,dfromnew <BR><BR>当main有一个字段为自动增加时,新表不能选取自动增加的字段,而避开该字段以上例的形式书写 <BR><BR>查找数据库中所有的表 <BR><BR>select*fromsysobjectswherextype='u' <BR><BR>计算某个字段的和 <BR><BR>select'downloadcount'=sum(下载次数) <BR><BR>检索表定义信息 <BR><BR>sp_help表名 <BR><BR>修改表名 <BR><BR>sp_rename'cool','commend' <BR><BR>添加表字段(如果一次添加多字段后面不加bit) <BR><BR>ALTERTABLEmain <BR>ADD开关bit <BR><BR>altertablemainadd年龄char(3),姓名varchar(8),性别char(2) <BR><BR>修改表字段类型 <BR>原先姓名字段的类型是char(10) <BR>altertabletablenamealtercolumn姓名varchar(20) <BR><BR>修改密码 <BR>EXECsp_passwordNULL,'ok','Victoria'(密码为空时)Victoria为login的用户名 <BR>EXECsp_password'ok','coffee'密码从ok改到coffee <BR><BR>altertabletable_nameaddcolumncolumn_namedatatype <BR><BR> 说明:增加一个栏位(没有删除某个栏位的语法。) <BR><BR> altertabletable_nameaddprimarykey(column_name) <BR><BR> 说明:更改表得的定义把某个栏位设为主键。 <BR> <BR> altertabletable_namedropprimarykey(column_name) <BR><BR> 说明:把主键的定义删除 <BR><BR>将一个字段的默认值设置成0 <BR><BR>ALTERTABLEtable_nameADDCONSTRAINTDF_Test_FieldNameDEFAULT(0)FORFieldName <BR><BR>DF_Test_FieldName不要变动 <BR><BR>更改字段名称 <BR>sp_rename'tablename.fieldname','newname','column'; <BR>column不要变动 <BR><BR>注释 <BR>/*select*fromnews*/或者--select*fromnews-- <BR>其中横线用于插入式注释 <BR><BR>setrs=cn.execute(sql)此语句返回一个SQL语句执行后的结构,把结果赋值给RS <BR>cn.Executesql此语句只是执行SQL语句 <BR><BR>数据类型+++++++++++++++++++++++++++++++++++++++++++++++++datatypes <BR> smallint <BR> 16位元的整数。 <BR><BR> interger <BR> 32位元的整数。 <BR><BR> decimal(p,s) <BR> p精确值和s大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数後有几位数。如果没有特别指定,则系统会设为p=5;s=0。 <BR><BR> float <BR> 32位元的实数。 <BR><BR> double <BR> 64位元的实数。 <BR><BR> char(n) <BR> n长度的字串,n不能超过254。 <BR><BR> varchar(n) <BR> 长度不固定且其最大长度为n的字串,n不能超过4000。 <BR><BR> graphic(n) <BR> 和char(n)一样,不过其单位是两个字元double-bytes,n不能超过127。这个形态是为支援两个字元长度的字体,例如中文字。 <BR><BR> vargraphic(n) <BR> 可变长度且其最大长度为n的双字元字串,n不能超过2000。 <BR><BR> date <BR> 包含了年份、月份、日期。 <BR><BR> time <BR> 包含了小时、分钟、秒。 <BR><BR> timestamp <BR> 包含了年、月、日、时、分、秒、千分之一秒。 <BR><BR><BR><BR>在SQLServer中提供了这种恢复方式的存储过程。 <BR><BR>1.sp_attach_db[@dbname=]dbname,[@filename1=]filename_n <BR><BR> 给系统添加一个数据库,在dbname指定数据库名称,filename_n指定数据库的文件和日志文件。比如我有一个voogiya的库,停止SQLServer服务备份voogiya_data.mdf,voogiya_log.ldf,启动SQLserver,删除掉这个库,然后再把这两上文件拷到sqlserver DATA目录中,在QueryAnalyzer中执行如下语句: <BR><BR>EXECsp_attach_db@dbname=Nvoogiya, <BR>@filename1=Nd:\mssql7\data\voogiya_data.mdf,(不加N时成功) <BR>@filename2=Nd:\mssql7\data\voogiya_log.ldf(不加N时成功) <BR><BR>就会把这个库加入到SQLServerGroup中. <BR>2.sp_attach_single_file_db[@dbname=]dbname, <BR>[@physname=]physical_name <BR><BR> 这个命令和上面的功能一样,在physical_name中只要写上据库的物理文件名就可以了,日志文件SQLserver会重新建立。这个存储过程的运行要先执行下面的存储过程: <BR><BR>sp_detach_db@dbname=dbname <BR><BR> 同样以上面的为例: <BR><BR>EXECsp_detach_db@dbname=voogiya <BR>EXECsp_attach_single_file_db@dbname=voogiya, <BR>@physname=d:\mssql7\data\voogiya_data.mdf <BR><BR> 要注意执行以上存储过程的用户要在sysadmin中 <BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:利 回复日期:2003-07-29 13:47:30
<br>内容:收藏起来.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -