电脑技术学习

SQL常用语句举例

dn001
1. ASP与Access数据库连接:

<%@ language=VBscript%>
<%
dim conn,mdbfile
mdbfile=server.mappath("数据库名称.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile

%>

2. ASP与SQL数据库连接:

<%@ language=VBscript%>
<%
dim conn
set conn=server.createobject("ADODB.connection")
con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称
%>

建立记录集对象:

set rs=server.createobject("adodb.recordset")
rs.open SQL语句,conn,3,2


3. SQL常用命令使用方法:

(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"

sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"

sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表达式"

sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表达式"

sql="delete from 数据表";;(将数据表所有记录删除)

(4) 添加数据记录:

sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"

sql="insert into 目标数据表;select;* from 源数据表";;(把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:

AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)

用 rs("别名") 获取统的计值,其它函数运用同上。

(5) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 数据表名称 (永久性删除一个数据表)

4. 记录集对象的方法:

rs.movenext;;;;;;将记录指针从当前的位置向下移一行
rs.moveprevious;;将记录指针从当前的位置向上移一行
rs.movefirst;;将记录指针移到数据表第一行
rs.movelast;;;;;;将记录指针移到数据表最后一行
rs.absoluteposition=N;;;;将记录指针移到数据表第N行
rs.absolutepage=N将记录指针移到第N页的第一行
rs.pagesize=N;;;;设置每页为N条记录
rs.pagecount;;根据 pagesize 的设置返回总页数
rs.recordcount返回记录总数
rs.bof返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete删除当前记录,但记录指针不会向下移动
rs.addnew添加记录到数据表末端
rs.update更新数据表记录

---------------------------------------

Recordset对象方法

Open方法

recordset.Open Source,ActiveConnection,CursorType,LockType,Options

Source
Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。

ActiveConnection
Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信息(ConnectionString)的字符串参数。

CursorType
Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
--------------------------------------------------------------
常数;;常数值说明
-------------------------------------------------------------
adOpenForwardOnly;;;;0 缺省值,启动一个只能向前移动的游标(Forward Only)。
adOpenKeyset;;;;1 启动一个Keyset类型的游标。
adOpenDynamic2 启动一个Dynamic类型的游标。
adOpenStatic;;;;3 启动一个Static类型的游标。
-------------------------------------------------------------
以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。

-------------------------------------------------------------
Recordset属性;;adOpenForwardOnly;;;;adOpenKeyset;;;;adOpenDynamic;;;;adOpenStatic
-------------------------------------------------------------
AbsolutePage不支持;;;;不支持;;可读写;;;;可读写
AbsolutePosition;;;;不支持;;;;不支持;;可读写;;;;可读写
ActiveConnection;;;;可读写;;;;可读写;;可读写;;;;可读写
BOF;;;;只读;;;;;;只读;;;;只读;;;;;;只读
Bookmark;;;;不支持;;;;不支持;;可读写;;;;可读写
CacheSize;;;;;;可读写;;;;可读写;;可读写;;;;可读写
CursorLocation 可读写;;;;可读写;;可读写;;;;可读写
CursorType;;可读写;;;;可读写;;可读写;;;;可读写
EditMode;;;;只读;;;;;;只读;;;;只读;;;;;;只读
EOF;;;;只读;;;;;;只读;;;;只读;;;;;;只读
Filter 可读写;;;;可读写;;可读写;;;;可读写
LockType;;;;可读写;;;;可读写;;可读写;;;;可读写
MarshalOptions 可读写;;;;可读写;;可读写;;;;可读写
MaxRecords;;可读写;;;;可读写;;可读写;;;;可读写
PageCount;;;;;;不支持;;;;不支持;;只读;;;;;;只

PageSize;;;;可读写;;;;可读写;;可读写;;;;可读写
RecordCount;;;;不支持;;;;不支持;;只读;;;;;;只读
Source 可读写;;;;可读写;;可读写;;;;可读写
State;;只读;;;;;;只读;;;;只读;;;;;;只读
Status 只读;;;;;;只读;;;;只读;;;;;;只读
AddNew 支持;;;;;;支持;;;;支持;;;;;;支持
CancelBatch;;;;支持;;;;;;支持;;;;支持;;;;;;支持
CancelUpdate支持;;;;;;支持;;;;支持;;;;;;支持
Clone;;不支持;;;;不支持
Close;;支持;;;;;;支持;;;;支持;;;;;;支持
Delete 支持;;;;;;支持;;;;支持;;;;;;支持
GetRows支持;;;;;;支持;;;;支持;;;;;;支持
Move不支持;;;;支持;;;;支持;;;;;;支持
MoveFirst;;;;;;支持;;;;;;支持;;;;支持;;;;;;支持
MoveLast;;;;不支持;;;;支持;;;;支持;;;;;;支持
MoveNext;;;;支持;;;;;;支持;;;;支持;;;;;;支持
MovePrevious不支持;;;;支持;;;;支持;;;;;;支持
NextRecordset;;支持;;;;;;支持;;;;支持;;;;;;支持
Open支持;;;;;;支持;;;;支持;;;;;;支持
Requery支持;;;;;;支持;;;;支持;;;;;;支持
Resync 不支持;;;;不支持;;支持;;;;;;支持
Supports;;;;支持;;;;;;支持;;;;支持;;;;;;支持
Update 支持;;;;;;支持;;;;支持;;;;;;支持
UpdateBatch;;;;支持;;;;;;支持;;;;支持;;;;;;支持
--------------------------------------------------------------
其中NextRecordset方法并不适用于Microsoft Access数据库。

LockType
Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:

-------------------------------------------------------------
常数;;常数值;;;;;;说明
--------------------------------------------------------------
adLockReadOnly1缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法
adLockPrssimistic2当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。
adLockOptimistic 3当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。
adLockBatchOptimistic;;;;4当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、 删、改的操作。;;