Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-教程

access语法大全

时 间:2012-01-12 09:20:46
作 者:收藏整理   ID:60  城市:南京
摘 要:Access语法大全
正 文:

 

like查询用*
SELECT *
FROM flash
WHERE filename like '*http*';


DELETE *
FROM company_guangxi
WHERE 机构名称 not like '*公司*' and 机构名称 not like '*工厂*';


删除查询
DELETE * FROM 订单 WHERE 订单.下单日期 <=#1/1/2002#


更新查询
UPDATE 产品 SET 产品.建议售价 = [建议售价]*1.2 WHERE 产品.厂牌="MOTOROLA"

access sql语句查询
查询时生成序号
SELECT (SELECT Count([xlh].[aa]) AS AutoNum FROM xlh WHERE (((xlh.aa) <=xlh_Alias.aa));) AS 序号, xlh.aa
FROM xlh AS xlh_Alias INNER JOIN xlh ON xlh_Alias.aa=xlh.aa
ORDER BY xlh.aa;


多表sql查询
SELECT test.aa AS 第一个字段, test1.bb AS 第二个字段, test1.cc
FROM test, test1
WHERE test.aa=test1.aa;

多表sql查询1
SELECT a.aa, b.bb, b.cc, b.cc*100 AS 合计
FROM test AS a, test1 AS b
WHERE a.aa=b.aa;

多表sql查询排序
SELECT a.aa, b.bb, b.cc AS 第三个字段
FROM test AS a, test1 AS b
WHERE a.aa=b.aa
ORDER BY b.cc;

查询例子
SELECT a.dhhm
FROM xl11a AS a, xl919 AS b
WHERE a.dhhm=b.dhhm and aa <>"1";

日期时间分隔符是#而不是引号
Select * From Tab1 Where [Date]>#2002-1-1#;

函数及计算
合计的群组,运算式及条件
SELECT 订单.客户编号, Sum(订单.含税价) AS 含税价之总计, Last(订单.订单日期) AS 订单日期之最后一笔, Date()-[订单日期之最后一笔] AS 距今天数 FROM 订单 WHERE (订单.订单日期>=#12/1/2006#) GROUP BY 订单.客户编号
11-2 查询指令
群组
条件
多个计算栏位
多资料表查询指令
INNER JOIN-最基本的JOIN方式
SELECT 客户.公司名称, 订单.订单编号, 订单.订单日期 FROM 客户 INNER JOIN 订单 ON 客户.客户编号 = 订单.客户编号
11-2 查询指令
多资料表查询指令
LEFT及RIGHT JOIN
SELECT 客户.公司名称, 客户.连络人姓名, 订单.客户编号 FROM 客户 LEFT JOIN 订单 ON 客户.客户编号 = 订单.客户编号 WHERE (订单.客户编号 Is Null)
11-2 查询指令
四种动作查询指令
制成资料表
SELECT 客户.客户编号, 客户.公司名称, 订单.下单日期, 订单.含税价 INTO 客户及订单 FROM 客户 INNER JOIN 订单 ON 客户.客户编号 = 订单.客户编号
新增查询
INSERT INTO 客户及订单 ( 客户编号, 公司名称, 下单日期, 含税价 ) SELECT 客户.客户编号, 客户.公司名称, 订单.下单日期, 订单.含税价 FROM 客户 INNER JOIN 订单 ON 客户.客户编号 = 订单.客户编号
11-3 动作查询指令
四种动作查询指令

下边列出sql server与access的语法差别,方便大家在更换程序数据库时查询。

日期分隔符号
access:英镑符(#)
sql server:撇号(’)

Boolean 常量
access:True、False;On、Off;Yes、No;整数:-1(真)、0(假)。
sql server:整数:1(真)、0(假)


字符串连接
access:和号(&)
sql server:加号(+)

通配符
access:星号(*)与零个或更多字符匹配。 
问号(?)与单个字符匹配。
叹号(!)意味着不在列表中。
英镑符(#)意味着单个数字。
sql server:百分号(%)与零个或更多字符匹配。 
下划线(_)与单个字符匹配。
上插入符(^)意味着不在列表中。
没有与英镑符(#)对应的字符。

DROP INDEX
access:Drop Index <索引名> ON <表名>
sql server:Drop Index <表名>. <索引名>

表添加标识列
access:alter table <表名> add <列名> Counter(1,1)
sql server:alter table <表名> add <列名> bigint identity(1,1) not null

(1).基本的sql语句
select 字段,'字符串' from 表名 where 条件 order by desc/asc
update 表名 set 字段=值 where 条件
delete from 表名 where 条件
insert into 表名(字段名1,字段名2) VALUES('值1','值2')
注意:字段名,表名最好使用[]括起来 以免碰到保留字报错 即使不是保留字 也用下方括号 养成个好习惯
我这里使用站点维护管理系统来演示
首先建立一个数据库
SELECT * FROM [public]
最基本的语句 显示表里所有的字段 如果我们只要显示一个text那么,如果需要显示其他的内容呢?这里有个好处是access的sql语句 可以对数据做简单处理 比如一些数据过长 我们只要显示20字符 下面看
怎么样 效果很明显吧 字段名可以按照一个变量来处理 调用一些基本函数 这些函数可以参考access的帮助
看到了吧
那么是不是能直接输出字符串呢?我另外设置个常量列 做字符串
不过这样的东西 就不能用这个工具直接改了 毕竟我这个是用来黑站的 不是做实验……
那么在实际的应用中 是不是可以直接处理成html代码直接输出?
我们看看比如我们需要这样的<a href="?id=用户ID>用户名</a>这样的数据格式 常规做法是从数据库调ID和用户名出来 再到asp里分别设置成2个变量处理 那么我们看看直接在sql里操作!字符串前后要用单引号 连接使用"&"符号
出来了 没错吧
SELECT '<a href=?id='&id&'>'&user&'</a>' FROM [user]
我分析下 这里把'<a href=?id='做常量 之后数据库的字段按变量处理 之后连接 就是'常量'&变量&'常量'
这个应该很熟悉了吧 之后要注意的是 这样把几个变量合成了一列 一列是按照文本格式处理的 长度如果超过了255 后面的数据就会丢失 所以在实际运用的时候 应该注意下分解长度 把很长的一列 分成多列 比如
用,表示分列 之后分别调用就可以了
之后是条件 表名后加where order是排列顺序desc倒序/asc顺序
很明白了吧
update 表名 set 字段=值 where 条件
修改就更简单了 条件最好不要用字符型 要不效率低 也容易出错
delete 也一样了DELETE FROM [test] WHERE name='test'
这条数据就删除了
(字段名1,字段名2)这个是可以省略的 省略时表示按顺序插入所有字段(字段名1,字段名2)
insert into test VALUES('test',2,now)
注意这个now也是一个函数 表示当前时间 一般的说 时间的值用now的可能性比较大 不用专门设定
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 …) 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("别名") 获取统的计值,其它函数运用同上。

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

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

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

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



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助