1、access的数据类型
Byte 数字[字节]
Long 数字[长整型]
Short 数字[整型]
Single 数字[单精度]
Double 数字[双精度]
Currency 货币
Char 文本
Text(n) 文本,其中n表示字段大小
Binary 二进制
Counter 自动编号
Memo 备注
Time 日期/时间
“是/否”类型,可以写bit或yesno。具体的可以搜一下,貌似相关的资料很多。
2、创建、删除索引
access中通过sql创建索引的方法有点特殊。
Create Index 索引名 On 表名([字段名])
Create Unique Index 索引名 On 表名([字段名]) //创建唯一索引
删除:
Drop Index 索引名 On 表名
3、Update语句
Access中涉及多表查询更新的Update语句也有些特殊。
Update Tab1 a, Tab2 b
Set a.Name = b.Name
Where a.ID = b.ID
而同样功能的SQL语句在SQLSERVER中应该写
Update Tab1
Set a.Name = b.Name
From Tab1 a, Tab2 b
Where a.Id = b.ID
Access中Update语句没有From字句,所有引用的表都列在Update关键字之后。
另外,tab2可以不是表,而是一个查询,如
Update Tab1 a, (Select ID,Name From Tab2) b
Set a.ID = b.ID
同样功能也可以这样写
Update Tab1 a Inner Join Tab2 b On a.ID = b.ID Set a.Name = b.Name
4、外连接
Access支持外连接,但不包括完整外部连接。如支持Left Join,Right Join,但不支持FULL OUTER JOIN 或 FULL JOIN等。
当多个表外连接时,每一层连接都必须加一个括号,如
((Tab1 Left Join Tab2 On Tab1.ID=Tab2.ID) Left Join Tab3 On Tab1.Name=Tab3.Name)
第二个连接条件如果是 Tab2.Name=Tab3.Name,Access是不支持的。这一点必须注意。
5、Access中日期间隔符是#而不是引号。
6、可以在一个SQL语句中访问不同的Access文件。如
Select a.*,b.* From Tab1 a,Tab2 b In 'db2.mdb' Where a.ID=b.ID
上面的SQL语句查询出当前数据库中Tab1和db2.mdb(当前文件夹中)中Tab2以ID为关联的所有记录.
又如
Insert into [Tab] Select [UserID],[UserName] From [;Database=XX.mdb;pwd=YourPassword].[Table2]
将XX.mdb数据库中Table2表的UserID和UserName字段记录都插入到当前数据库的Tab表中,支持密码访问。
7、在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=pass(word);]
其中的DRIVER=driver可以在注册表中的
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INI 中找到
8、修改Access数据库密码
首先必须以独占方式打开数据库。
连接字符串可以这样写
[Provider=Microsoft.Jet.OLEDB.4.0;Data Source=XX.mdb;Jet OLEDB:Database Password=旧密码;Mode=Share Deny Read|Share Deny Write]
连接成功后,修改密码的SQL可以这样写
Alter Database Password [新密码] [旧密码]
如果密码是空,就写NULL
9、设置完整些约束条件,请参照《通过SQL语句设置或删除主键——CONSTRAINT用法》
10、转义字符处理,请参照《Access的转义字符》