[轉(zhuǎn)]Sqlserver與access數(shù)據(jù)庫(kù)sql語(yǔ)法十大差異轉(zhuǎn)自:http://hi.baidu.com/jikeyshi/blog/item/a898002468ec322cd50742ee.html Sqlserver與access數(shù)據(jù)庫(kù)sql語(yǔ)法十大差異 做ASP時(shí),,最常用的數(shù)據(jù)庫(kù)即Sqlserver與Access數(shù)據(jù)庫(kù)莫屬了! 但使用會(huì)經(jīng)常發(fā)現(xiàn)很多SQL執(zhí)行的問(wèn)題,。這里整理出之間的差異,,做個(gè)十大差異的總結(jié)。 ACCESS結(jié)構(gòu)簡(jiǎn)單容易處理,,而且也能滿足多數(shù)的網(wǎng)站程序要求,,也是初學(xué)者的試牛刀。 ACCESS是小型數(shù)據(jù)庫(kù),,既然是小型就有他根本的局限性: 1),、數(shù)據(jù)庫(kù)過(guò)大,一般ACCESS數(shù)據(jù)庫(kù)達(dá)到50M左右的時(shí)候性能會(huì)急劇下降,! 2),、網(wǎng)站訪問(wèn)頻繁,經(jīng)常超過(guò)100人的在線時(shí),,處理速度會(huì)有影響,! 3)、記錄數(shù)過(guò)多,,一般記錄數(shù)達(dá)到10萬(wàn)條左右的時(shí)候性能就會(huì)急劇下降,! 微軟公司為了與ACCESS高低搭配的一種高端方案:改用了Sqlserver,但語(yǔ)法會(huì)有一些差異,。 1,、select,update語(yǔ)句區(qū)別 select,,update對(duì)于單表操作時(shí)基本一致,。 但多表操作時(shí)update語(yǔ)句的區(qū)別ACCESS與SQLSERVER中的UPDATE語(yǔ)句會(huì)有差別: SQLSERVER中更新多表的UPDATE語(yǔ)句: UPDATE Table1 SET a.Name = b.Name FROM Table1 a, Table2 b WHERE a.ID = b.ID; ACCESS中同樣功能的SQL語(yǔ)句: UPDATE Table1 a, Table2 b SET a.Name = b.Name WHERE a.ID = b.ID; 比較得出:ACCESS中的UPDATE語(yǔ)句沒(méi)有FROM子句,所有引用的表都列在UPDATE關(guān)鍵字后,這點(diǎn)同mysql; 2,、delete語(yǔ)句 SQLSERVER中:DELETE from Table1 WHERE ID > 1; Access中:DELETE * from Table1 WHERE ID > 1; 比較得出:SQLSERVER中,,即只要把select語(yǔ)句里的select與delete的操作語(yǔ)法一致的,,不需要*; 3,、as后面的計(jì)算字段區(qū)別 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后的字段當(dāng)作一個(gè)數(shù)據(jù)庫(kù)字段參與計(jì)算,。 Access中: 可以把AS后的字段當(dāng)作一個(gè)數(shù)據(jù)庫(kù)字段參與計(jì)算。 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; 比較得出: 「!」使用的場(chǎng)合很少,,在ACCESS中也是可以使用「.」的,但不要吧省略AS,; 5,、日期分隔符號(hào) SQLSERVER中:?jiǎn)我?hào)(’) Access中:井號(hào)(#) 6、Boolean所表示的常量 SQLSERVER中:整數(shù):1(真),、0(假) Access中:True,、False;On,、Off,;Yes、No,;整數(shù):-1(真),、0(假)。 7,、字符串連接 SQLSERVER中:加號(hào)(+) Access中:和號(hào)(&) 8,、通配符 SQLSERVER中: 百分號(hào)(%)與零個(gè)或更多字符匹配。 下劃線(_)與單個(gè)字符匹配,。 上插入符(^)意味著不在列表中,。 沒(méi)有與英鎊符(#)對(duì)應(yīng)的字符。 Access中: 星號(hào)(*)與零個(gè)或更多字符匹配,。 問(wèn)號(hào)(?)與單個(gè)字符匹配,。 嘆號(hào)(!)意味著不在列表中。 英鎊符(#)意味著單個(gè)數(shù)字,。 9,、DROP INDEX SQLSERVER中:Drop Index <表名>.<索引名> Access中:Drop Index <索引名> ON <表名> 10、表添加標(biāo)識(shí)列 SQLSERVER中:alter table <表名> add <列名> bigint identity(1,1) not null |
|