Asp编程中常见的SQL命令

简介:
 asp以及asp.net编程中掌握了sql语法才能写好asp程序,sql语法可以说是asp编程中的最核心的技术,而且sql命令也影响程序的执行效率,本文在别人总结的基础上进行了解释和说明。
(1) 数据记录筛选:
对特定字段值机进行查询
sql="select * from 数据表 where 字段名=字段值 order by 字段名 "
匹配查询
sql="select * from 数据表 where 字段名 like ‘%字段值%‘ order by 字段名 " 
前10条记录,这在网站首页提取最新10条记录时最常用。
sql="select top 10 * from 数据表 where 字段名 order by 字段名 " 
在三个值中的任何记录
sql="select * from 数据表 where 字段名 in (‘值1‘,‘值2‘,‘值3‘)" 
介于值1和值2之间的所有记录。
sql="select * from 数据表 where 字段名 between 值1 and 值2"
select * from book where id=1
select * from book where pub_date=#2002-1-7# (Access)
select * from book where pub_date=’2002-1-7’ (SQL Server)
(2) 更新数据记录:
sql="update 数据表 set 字段名=字段值 where 条件表达式"
update tab_user set username=haha where userid=1
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"
语法:update table set field1=value1,field2=value2,...where fieldx=valuex
例子:update book set author=’babycrazy’ where bookno=’CF001’
如果用到变量就如下:
strno=request.form("bookno")
strau=request.form("author")
strsql="update book set author=’"&strau&"’ where bookno=’"&strno"’"
更新数据库中多个字段值 
(3) 删除数据记录:
sql="delete from 数据表 where 条件表达式" 
sql="delete from 数据表" (将数据表所有记录删除)
例子:删除book表中作者是cancer的记录
delete book where author=’cancer’
(注意:如果book表中author字段的值为cancer的记录有多条,将会删除所有author为cancer的记录)
(4) 添加数据记录:
sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值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 数据表名称 (永久性删除一个数据表)
(6) 记录集对象的方法: 
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 更新数据表记录
(7)判断所填数据是数字型
if not isNumeric(request("字段名称")) then 
response.write "不是数字" 
else 
response.write "数字" 
end if
(8)判断是否为日期
if not isdate(request("字段名称")) then 
response.write "不是日期" 
else 
response.write "是日期" 
end if
提示:
日期函数to_date不是标准sql文,不是所有的数据库适用,所以大家在使用的时候要参考数据库具体语法
但是字符型一定不能按照数字格式写,需要注意。
(9)添加记录(Insert)
语法:Insert into table(field1,field2,....) Values (value1,value2,....)
例子:添加一作者是"cancer"的记录入book表:
insert into book (bookno,author,bookname) values (’CF001’,’cancer’,’Cancer无组件上传程序’)
同样,如果用到变量就如下:
strno=request.form("bookno")
strau=request.form("author")
strname=request.form("bookname")
strsql="insert into book (bookno,author,bookname) values (’"&strno&"’,’"&strau&"’,’"&strname&"’)"
(10)用Recordset对象的Addnew插入数据的方法:
语法:
rs.addnew
rs("field1").value=value1
rs("field2").value=value2
...
rs.update
Recordset对象的Update方法:
语法:
rs("field1").value=value1
rs("field2").value=value2
...
rs.update
注意:使用语法3和语法5的时候,一定要注意字段的类型(尤其是日期型)一致,否则出错的几率非常的高。

例子:
strno=request.form("bookno")
strau=request.form("author")
set adocon=server.createobject("adodb.connection")
adocon.open "Driver={Microsoft Access Driver(*.mdb)};DBQ=" & _
Server.Mappath=("/cancer/cancer.mdb")
strsql="select * from book where bookno=’"&strno&"’"
set rs=server.createobject("adodb.recordset")
rs.open strsql,adconn,1,3
if not rs.eof then ’如果有此记录的话
rs("author").value=strau
rs.update
end if
rs.close
set rs=nothing
adocon.close
set adocon=nothing

 
 本文转自 simeon2005 51CTO博客,原文链接:http://blog.51cto.com/simeon/9668

相关文章
|
2月前
|
SQL Perl
PL/SQL编程基本概念
PL/SQL编程基本概念
13 0
|
12天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
14天前
|
SQL XML 数据库
sql导入数据库命令
在SQL Server中,数据库导入可通过多种方式实现:1) 使用SSMS的“导入数据”向导从各种源(如Excel、CSV)导入;2) BULK INSERT语句适用于导入文本文件;3) bcp命令行工具进行批量数据交换;4) OPENROWSET函数直接从外部数据源(如Excel)插入数据。在操作前,请记得备份数据库,并可能需对数据进行预处理以符合SQL Server要求。注意不同方法可能依版本和配置而异。
|
17天前
|
SQL Oracle 关系型数据库
Oracle SQL*Plus的SET命令:你的数据库会话“调色板”
【4月更文挑战第19天】Oracle SQL*Plus的SET命令是数据库会话的“调色板”,用于设置输出格式、反馈信息和各种偏好。它能调整PAGESIZE和LINESIZE以优化显示,控制ECHO和FEEDBACK开关以定制反馈,以及统计命令执行时间(TIMING)和调试SQL(VERIFY)。更高级的选项如HEADING和COLSEP可改善输出的可读性。通过灵活运用SET命令,能提升工作效率和体验,是数据库管理员和开发者的必备工具。
|
5月前
|
SQL 存储 算法
数据库编程大赛:一条SQL计算扑克牌24点
参加NineData举办的数据库编程大赛,展示你的技术才华!用一条SQL语句解决扑克牌24点的计算表达式。这场比赛面向数据库爱好者、开发者、程序员、DBA等,展示你的编程技能,并有机会赢得丰厚奖励。欢迎大家来挑战!
199 0
数据库编程大赛:一条SQL计算扑克牌24点
|
2月前
|
SQL Go
SQL编程
SQL编程
10 0
|
3月前
|
SQL 开发框架 .NET
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
37 0
|
5月前
|
SQL 关系型数据库 MySQL
MySQL【实践 02】MySQL迁移到PostgreSQL数据库的语法调整说明及脚本分享(通过bat命令修改mapper文件内的SQL语法)
MySQL【实践 02】MySQL迁移到PostgreSQL数据库的语法调整说明及脚本分享(通过bat命令修改mapper文件内的SQL语法)
125 0
|
5月前
|
SQL 关系型数据库 MySQL
SQL编程【MySQL 01】拆分列字段为行并根据类型翻译字段 > 1305 - FUNCTION x.help_topic_id does not exist 报错问题
SQL编程【MySQL 01】拆分列字段为行并根据类型翻译字段 > 1305 - FUNCTION x.help_topic_id does not exist 报错问题
38 0
|
5月前
|
SQL 关系型数据库 MySQL
【SQL编程】Greenplum 与 MySQL 数据库获取周几函数及函数结果保持一致的方法
【SQL编程】Greenplum 与 MySQL 数据库获取周几函数及函数结果保持一致的方法
40 0