关於SQL一些常用语句

 我来答
手机用户32645
2011-09-08 · TA获得超过421个赞
知道小有建树答主
回答量:459
采纳率:100%
帮助的人:297万
展开全部
(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
ssanitxu
2011-09-08 · TA获得超过325个赞
知道小有建树答主
回答量:333
采纳率:0%
帮助的人:184万
展开全部
--通配符
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hanxuewanghui
2011-09-08
知道答主
回答量:23
采纳率:0%
帮助的人:11.7万
展开全部
desc
select * from
update
insert
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
li_lei
2011-09-08
知道答主
回答量:49
采纳率:0%
帮助的人:18.5万
展开全部
创建表 创建视图 创建存储过程
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条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式