关於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
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.%:代表任意多个字符 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,'tom@hotmail.com','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,'jack@126.com','starRoad 100#' UNION
SELECT 'tom','女',23,'tom@hotmail.com','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
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,'tom@hotmail.com','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,'jack@126.com','starRoad 100#' UNION
SELECT 'tom','女',23,'tom@hotmail.com','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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
desc
select * from
update
insert
select * from
update
insert
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
创建表 创建视图 创建存储过程
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询