天天看點

Sqlserver與access資料庫sql文法十大差異

ACCESS結構簡單容易處理,而且也能滿足多數的網站程式要求,也是初學者的試牛刀。

ACCESS是小型資料庫,既然是小型就有他根本的局限性: 

1)、資料庫過大,一般ACCESS資料庫達到50M左右的時候性能會急劇下降! 

2)、網站通路頻繁,經常超過100人的線上時,處理速度會有影響! 

3)、記錄數過多,一般記錄數達到10萬條左右的時候性能就會急劇下降!

1、select,update語句差別

select,update對于單表操作時基本一緻。   

但多表操作時update語句的差別ACCESS與SQLSERVER中的UPDATE語句會有差别:

SQLSERVER中更新多表的UPDATE語句:   

   UPDATE Table1 SET a.Name = b.Name FROM Table1 a, Table2 b WHERE a.ID = b.ID;   

ACCESS中同樣功能的SQL語句:

   UPDATE Table1 a, Table2 b SET a.Name = b.Name WHERE a.ID = b.ID;

比較得出:ACCESS中的UPDATE語句沒有FROM子句,所有引用的表都列在UPDATE關鍵字後,這點同mysql;   

2、delete語句   

   SQLSERVER中:DELETE from Table1 WHERE ID > 1;

   Access中:DELETE * from Table1 WHERE ID > 1;

比較得出:SQLSERVER中,即隻要把select語句裡的select與delete的操作文法一緻的,不需要*;

3、as後面的計算字段差別

   SQLSERVER中:SELECT a.sum(num) as sum_num, sum(num)*num as all_num;   即  

   Access中:     SELECT a,sum(num) as sum_num, sum_num*num   as all_num;   即

比較得出:

SQLSERVER中:不可以把AS後的字段當作一個資料庫字段參與計算。 

Access中: 可以把AS後的字段當作一個資料庫字段參與計算。  

4、「.」與「!」的差異

   SQLSERVER中:SELECT Table1.a AS Table1a, Table2.b AS Table2b FROM Table1, Table2;

   Access中:   SELECT Table1!a AS Table1a, Table2!b AS Table2b FROM Table1, Table2;

「!」使用的場合很少,在ACCESS中也是可以使用「.」的,但不要吧省略AS;

5、日期分隔符号

   SQLSERVER中:單引号(’)

   Access中:井号(#)

6、Boolean所表示的常量

   SQLSERVER中:整數:1(真)、0(假)

   Access中:True、False;On、Off;Yes、No;整數:-1(真)、0(假)。

7、字元串連接配接 

   SQLSERVER中:加号(+)

   Access中:和号(&)

8、通配符

   SQLSERVER中:

     百分号(%)與零個或更多字元比對。  

     下劃線(_)與單個字元比對。 

     上插入符(^)意味着不在清單中。 

     沒有與英鎊符(#)對應的字元。

   Access中:   星号(*)與零個或更多字元比對。  

         問号(?)與單個字元比對。 

         歎号(!)意味着不在清單中。 

         英鎊符(#)意味着單個數字。 

9、DROP INDEX 

   SQLSERVER中:Drop Index <表名>.<索引名> 

   Access中:Drop Index <索引名> ON <表名> 

  

10、表添加辨別列

   SQLSERVER中:alter table <表名> add <列名> bigint identity(1,1) not null