Sqlserver与access数据库sql语法十大差异

ACCESS结构简单容易处理,而且也能满足多数的网站程序要求,也是初学者的试牛刀。
ACCESS是小型数据库,既然是小型就有他根本的局限性: 
1)、数据库过大,一般ACCESS数据库达到50M左右的时候性能会急剧下降! 
2)、网站访问频繁,经常超过100人的在线时,处理速度会有影响! 
3)、记录数过多,一般记录数达到10万条左右的时候性能就会急剧下降!
微软公司为了与ACCESS高低搭配的一种高端方案:改用了Sqlserver,但语法会有一些差异。
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

时间: 2024-09-11 18:13:44

Sqlserver与access数据库sql语法十大差异的相关文章

sqlserver-同样SQL语句使用SQLserver跟access数据库,SQLserver可以进行增删改,而access不能

问题描述 同样SQL语句使用SQLserver跟access数据库,SQLserver可以进行增删改,而access不能 同样的SQL语句,在一SQL server做后台数据库可以实现增删改,而使用access数据库就无法实现,在未关闭自己写的程序,再次查询时,使用access数据库可以再程序中看到增删改的效果,只是在access数据库内就没有数据改动.咋么回事? 解决方案 你看连接字符串,程序操作的access文件和你打开的不是用一个文件

asp.NET上传文件到指定文件夹,ACCESS数据库,SQL数据库代码

access|asp.net|上传|数据|数据库 /* 我修改了一天时间.终于找到门路了.呵呵ACCESS中存放文件内容的字段类型为:OLE对象SQL中存放文件内容的字段类型为:image此代码为上传文件代码.梢后整理发布下载文件代码 代码设计实现功能:asp.NET上传文件到指定文件夹,ACCESS数据库,SQL数据库代码 已经测试文件格式 .TXT,JPG..MDB.GIF */ using System;using System.Collections;using System.Compo

datagridview-c# 操作ACCESS数据库 SQL

问题描述 c# 操作ACCESS数据库 SQL 我在ACCESS里面的SQL写:SELECT * FROM 新闻采集 WHERE 新闻时间 like '*分*' 涮选几分钟前的新闻是可以查找涮选出来的: 但是我在程序里面弄了个自定义SQL的文本框,在文本框写这句SQL运行居然查询不出来,查询没有条件的select都可以 请问这是怎么回事呢 //查询数据库 //1.建立连接 string lj = System.Environment.CurrentDirectory + "xw.mdb"

互联网繁荣与1999年泡沫危机的十大差异

导语:美国科技博客BusinessInsider今天撰文称,虽然科技市场近期非常繁荣,但与十年前的互联网泡沫仍然存在十大差异.例如,与十年前大小互联网公司一掷千金大办派对相比,如今人们更加谨慎,Lady Gaga等明星很少现身硅谷派对为企业助兴. 互联网泡沫并未重现的十大理由:派对并不奢华 以下为文章全文: <纽约时报>似乎意识到科技行业的泡沫迹象,所以才在上周末一口气发表了好几篇有关硅谷创业企业和股票分析师的文章.这些文章读起来像是在写1999年--超高的薪水.引人入胜的福利.疯狂的创业激情

MySQL数据库SQL语法参考

mysql|sql语法|参考|数据|数据库|语法参考 一.资料定义 ddl(data definition language) 资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系.表格内的有什麽栏位主键.表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的. 1.建表格: create table table_name( column1 datatype [not null] [not null primary key], c

access与sql语法上有哪些区别

 假设表game有一字段为gameYuiJian为bit字段(SQL SERVER 20005)和"是/否"字段(ACCSS数据库),在编写脚本文件时,如下才能正确执行 SQL strCmd = "Select Top 14 * From game Where gameTuiJian = 1 Order By Id Desc"; OleDb strCmd = "Select Top 14 * From game Where gameTuiJian = tr

SQLServer与Access常用SQL函数区别_数据库其它

SQLServer Access CASE...WHEN... IIF() SUBSTRING() MID() ISNULL() IIF(IS NULL) SELECT *,IIf([State]=1,'√','×') as StateTag FROM Leave order by id desc SELECT IIf([CateID] = 1, "文档"),IIf([CateID] = 2, "视频"),IIf([CateID] = 3, "音频&quo

动态网页编程中优化数据库注意的十大原则

与没有数据库的网站相比,数据库的存取会降低你的系统性能.但是大多数情况下,网站和数据库有密不可分的关系,正是数据库给站点提供了大容量.多样性.个性化等特色,并实现了很多特殊的功能. 1不要忘记给数据库做索引.合理的索引能立即显著地提高数据库整个系统的性能.可以参考有关SQL性能调试书 籍,学会根据所需查询方式合理制作索引和根据索引方式改进查询语句. 2在适当的情况下,尽可能的用存储过程而不是SQL查询,因为前者已经过了预编译,运行速度更快.同时让数据库仅仅返回你所需要的那些数据,而不是返回大

Access数据库多表连接查询

第一次在Access中写多表查询,就按照MS数据库中的写法,结果报语法错,原来Access的多表连接查询是不一样的 表A.B.C,A关联B,B关联C,均用ID键关联 一般写法:select * from A inner join B on A.ID=B.ID inner join C on B.ID=C.ID 此写法在Access中报错,Access对SQL语法理解方式不一样,它将两表连接后当作一个表然后再与第三个表连接,因此要改成 select * from (A inner join B o