ACCESS中使用SQL語句應注意的地方及幾點技巧

2021-04-02 02:16:18 字數 2762 閱讀 9634

access中使用sql語句應注意的地方及幾點技巧

以下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;

訪問多個不同的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為關聯的所有記錄.

缺點-外部資料庫不能帶密碼.

補充:看到ugvanxk在一貼中的答覆,可以用

select * from [c:/aa/a.mdb;pwd=1111].table1;

access xp測試通過

在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_machine oftware/odbc/odbcinst.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不認,所以為了遷移方便和相容,

建議用單引號作為字串分隔符.

access的約束

在jet sql參考中關於約束的內容不夠詳細,可以參考sql server的聯機叢書

下面的sql為a表的name欄位增加非空約束

alter table a add constraint a_checkname check (not [name] is null)

注意:每乙個約束都是乙個物件,都有乙個名字

下面的語句把id列設定為主鍵

alter table [表] add primary key (id)

下面的語句把id列改為自動編號型別,並且設定為主鍵

alter table [表] alter [id] counter constraint [表_p] primary key

新增復合主鍵

下面的sql為tb_demo表新增復合主鍵(id,id2).

alter table tb_demo

add constraint tb_demo_pk

primary key (id,id2)

ACCESS中使用SQL語句應注意的地方及幾點技巧

建立索引 下面的語句在tab1的date列上建立可重複索引 create index idate on tab1 date 完成後access中欄位date索引屬性顯示為 有 有重複 下面的語句在tab1的name列上建立不可重複索引 create unique index iname on tab...

Access中使用SQL語句應掌握的幾點技巧

本文詳細講述了access中使用sql語句應掌握的幾點技巧。以下sql語句在access xp的查詢中測試通過 建表 create table tab1 id counter,name string,age integer,date datetime 技巧 自增字段用 counter 宣告。欄位名為...

ACCESS中使用SQL語句

以下sql語句在access xp的查詢中測試通過 建表 create table tab1 id counter,name string,age integer,date datetime 技巧 自增字段用 counter 宣告.欄位名為關鍵字的字段用方括號括起來,數字作為欄位名也可行.建立索引 ...