ACCESS里面运用SQL语句应注意地地方及几点灵活技术

2016-02-19 17:29 19 1 收藏

今天图老师小编要向大家分享个ACCESS里面运用SQL语句应注意地地方及几点灵活技术教程,过程简单易学,相信聪明的你一定能轻松get!

【 tulaoshi.com - 编程语言 】

以下SQL语句在ACCESS XP的查询中测试通过
建表:
Create Table Tab1 (
ID Counter,
Name string,
Age integer,
[Date] DateTime);
技巧:
自增字段用 Counter 声明.
字段名为关键字的字段用方括号[]括起来,数字作为字段名也可行.

建立索引:
下面的语句在Tab1的Date列上建立可重复索引
Create Index iDate ON Tab1 ([Date]);
完成后ACCESS中字段Date索引属性显示为 - 有(有重复).
下面的语句在Tab1的Name列上建立不可重复索引
Create Unique Index iName ON Tab1 (Name);
完成后ACCESS中字段Name索引属性显示为 - 有(无重复).
下面的语句删除刚才建立的两个索引
Drop Index iDate ON Tab1;
Drop Index iName ON Tab1;

ACCESS与SQLSERVER中的UPDATE语句对比:
SQLSERVER中更新多表的UPDATE语句:
UPDATE Tab1
SET a.Name = b.Name
FROM Tab1 a,Tab2 b
WHERE a.ID = b.ID;
同样功能的SQL语句在ACCESS中应该是
UPDATE Tab1 a,Tab2 b
SET a.Name = b.Name
WHERE a.ID = b.ID;
即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后.
上例中如果Tab2可以不是一个表,而是一个查询,例:
UPDATE Tab1 a,(Select ID,Name From Tab2) b
SET a.Name = b.Name
WHERE a.ID = b.ID;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

访问多个不同的ACCESS数据库-在SQL中使用In子句:
Select a.*,b.* From Tab1 a,Tab2 b In 'db2.mdb' Where a.ID=b.ID;
上面的SQL语句查询出当前数据库中Tab1和db2.mdb(当前文件夹中)中Tab2以ID为关联的所有记录.
缺点-外部数据库不能带密码.

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

在ACCESS中访问其它ODBC数据源
下例在ACCESS中查询SQLSERVER中的数据
SELECT * FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]
外部数据源连接属性的完整参数是:
[ODBC;DRIVER=driver;SERVER=server;DATABASE=database;UID=user;PWD=password;]
其中的DRIVER=driver可以在注册表中的
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INI
中找到

ACCESS支持子查询

ACCESS支持外连接,但不包括完整外部联接,如支持
LEFT JOIN 或 RIGHT JOIN
但不支持
FULL OUTER JOIN 或 FULL JOIN

ACCESS中的日期查询
注意:ACCESS中的日期时间分隔符是#而不是引号
Select * From Tab1 Where [Date]#2002-1-1#;
在DELPHI中我这样用
SQL.Add(Format(
'Select * From Tab1 Where [Date]#%s#;',
[DateToStr(Date)]));

ACCESS中的字符串可以用双引号分隔,但SQLSERVER不认,所以为了迁移方便和兼容,
建议用单引号作为字符串分隔符.

来源:http://www.tulaoshi.com/n/20160219/1615356.html

延伸阅读
窗体、查询、报表、宏的联合使用 将窗体、查询、报表、宏联合使用可以解决许多问题,是一项重要的技巧。 1、从窗体中获得查询中的条件 对于这个问题这里以成绩表的打印为例来说明。我们要打印不同班级的成绩表,首先建立相应报表的查询,在查询中的班级字段下的条件中输入条件:Between [forms]![打印表格]![开始班号] And ...
看到别人有时问这个方面的问题。。于是在各网站总结前前辈高人的几点想法,拿来共享: 数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用decimal。 所有的默认值都丢失了。主要是数字类型和日期类型。 所有now(),time(),date()要改成getdate()。 所有datediff('d', time1, time2)...
在SQL语言中用得最多的就是SELECT语句了。我们就先讲讲SELECT语句吧。 SELECT语句构成了SQL数据库语言的核心,它的语法包括5个主要子句,分别是FORM、WHERE、GROUP BY、HAVING、ORDER BY子句。 SELECT语句的结构是这样的。 SELECT 〈字段列表〉 FROM 〈表列表〉 [ WHERE〈行选择说明〉][GROUP BY 〈分组说明〉][ HAVING 〈...
在VB中也可使用ACCESS的报表 通过vsreport这个控件,你完全可以使用ACCESS来设计好报表,然后在VB中调用这些报表,效果与你直接在ACCESS调用报表一样。 VB的报表一直是它的弱项,在以前很长一段时间我都是使用这个方法来做报表的,因为有段时间曾经帮香港的朋友做了几个VB的系统,但他们比较喜欢ACCESS的报表,所以使用这个方法...
标签: 电脑入门
Excel有一个小小的缺陷,那就是无法自动识别重复的记录。为了清除这些重复记录,有的朋友是一个一个手工删,既费时又费力。 虽说Excel中并没有提供给我们清除重复记录这样的功能,但我们还可以利用它的高级筛选功能来达到相同的目的。今天,笔者就来向大家介绍一个如何利用Excel的高级筛选巧妙删除重复记录的小技巧。 (注:本文所述技巧已于微...

经验教程

658

收藏

17
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部