关於SQL一些常用语句

如题所述

(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名 "
sql="select * from 数据表 where 字段名 like ‘%字段值%‘ order by 字段名 "
sql="select top 10 * from 数据表 where 字段名 order by 字段名 "
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 …) 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 更新数据表记录

判断所填数据是数字型

if not isNumeric(request("字段名称")) then
response.write "不是数字"
else
response.write "数字"
end if
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-08
--通配符
1.%:代表任意多个字符 name LIKE '李%'
2._(下划线):代表任意一个字符
3.[]:指定范围的一个字符 如:Sex LIKE '[男女]' StuID LIKE [0-9][0-9]
4.IN:限制范围 StuID IN(0,1,2,3,4,5,6,7,8,9)
5.[^]:不在指定范围里的一个字符
6.age>=0 and age<=100 age BETWEEN 0 AND 100

--插入一行数据
INSERT INTO 新表(列名)
VALUES (值)
比如:INSERT INTO Student(StuName,Sex,Age,Email)
VALUES ('Tom','男',20,'[email protected]','starRoad 30#')

--插入多行数据有3种方法
--第一种(相当于表复制,必须要有这个新表,仅仅复制表中的数据,允许重复)
INSERT INTO 新表(列名)
SELECT (旧表列)
FROM 旧表
比如:INSERT INTO newStu1
SELECT StuID,StuName,Sex
FROM Student
--第二种(相当于表复制,自动建表,会将旧表中的结构也一起复制,但主键不会带过来)
SELECT (旧表列名)
INTO 新表
FROM 旧表
比如:SELECT StuID,StuName,Sex
INTO newStu2
FROM Student
--特列(写入标识列)
SELECT INDENTITY(int,1,1) AS StuID,StuName,Sex
INTO newStu3
FROM Student
--第三种(相当于把多个值手写插入到表中)
INSERT INTO 新表名(列名)
SELECT 值,值,值... UNION
SELECT 值,值,值... UNION
SELECT 值,值,值...
比如:INSERT INTO Student
SELECT 'jack','男',24,'[email protected]','starRoad 100#' UNION
SELECT 'tom','女',23,'[email protected]','starRoad 198#'

--更新
UPDATE 表名 SET 列名=值 WHERE 更新条件

--删除
DELETE FROM 表名 WHERE 删除条件
TRUNCATE TABLE 表名

--查询
SELECT 列名
FROM 表名
WHERE 查询条件表达式
ORDER BY 排序的列名(ASC或DESC)

--对列更名方式有3种
--第一种
SELECT StuID AS 学号,StuName AS 姓名, Sex AS 性别
FROM Student
--第二种
SELECT 学号=StuID,姓名=StuName,性别=Sex
FROM Student
--第三种
SELECT StuID 学号,StuName 姓名, Sex 性别
FROM Student
第2个回答  2011-09-08
desc
select * from
update
insert
第3个回答  2011-09-08
创建表 创建视图 创建存储过程
1、创建/修改表:
create table [表名]
(
[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default \'默认值\' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)

删除表:
Drop table [表名]

插入数据:
INSERT INTO [表名] (字段1,字段2) VALUES (100,\'51WINDOWS.NET\')

删除数据:
DELETE FROM [表名] WHERE [字段名]>100

更新数据:
UPDATE [表名] SET [字段1] = 200,[字段2] = \'51WINDOWS.NET\' WHERE [字段三] = \'HAIWA\'

新增字段:
ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL

删除字段:
ALTER TABLE [表名] DROP COLUMN [字段名]

修改字段:
ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL

重命名表:(Access 重命名表,请参考文章:在Access数据库中重命名表)
sp_rename \'表名\', \'新表名\', \'OBJECT\'

新建约束:
ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] <= \'2000-1-1\')

删除约束:
ALTER TABLE [表名] DROP CONSTRAINT 约束名

新建默认值
ALTER TABLE [表名] ADD CONSTRAINT 默认值名 DEFAULT \'51WINDOWS.NET\' FOR [字段名]

删除默认值
ALTER TABLE [表名] DROP CONSTRAINT 默认值名

2、创建视图:
create view v_eventlist
as
select ct.name as customertypename,c.lastname,c.firstname,c.nickname,emc.confirmdate,
e.code,e.datebegin,t.name as tourname,b.name as basecampname,e.comment
from tour as t
join event as e on e.tourid=t.tourid
join event_mm_customer as emc on emc.eventid=e.eventid
join customer as c on c.customerid=emc.customerid
join customertype as ct on ct.customertypeid=c.customertypeid
join basecamp as b on b.basecampid=t.basecampid

--视图不能包含select into选项
--视图不能引用临时表(名字中包含#的表)或者表变量
--视图不能包含compute或者compute by列,它只能使用标准的聚合函数和分组功能

3、创建存储过程:
CREATE PROCEDURE proc_stu /* proc_stu为存储过程的名称*/

AS

DECLARE @writtenAvg float,@labAvg float /* 笔试平均分和机试平均分变量 */

SELECT @writtenAvg=AVG(writtenExam),

@labAvg=AVG(labExam) FROM stuMarks

print '笔试平均分:'+convert(varchar(5),@writtenAvg)

print '机试平均分:'+convert(varchar(5),@labAvg)

IF (@writtenAvg>70 AND @labAvg>70)

print '本班考试成绩:优秀' /* 显示考试成绩的等级 */

ELSE

print '本班考试成绩:较差'

print '--------------------------------------------------'

print ' 参加本次考试没有通过的学员:'

SELECT stuName,stuInfo.stuNo,writtenExam,labExam /* 显示未通过的学员 */

FROM stuInfo INNER JOIN stuMarks ON

stuInfo.stuNo=stuMarks.stuNo

WHERE writtenExam<60 OR labExam<60

GO