SQL Server 和Access区别是什么

如题所述

Access是桌面型数据库,优点是:操作灵活、转移方便、运行环境简单,对于小型网站的数据库处理能力效果还不错。缺点是:不支持并发处理、数据库易被下载存在安全隐患、数据存储量相对较小、数据量过大时严重影响网站访问速度和程序处理速度。

SQL Server是基于服务器端的企业级数据库,适合大容量数据和大流量网站的应用,在性能、安全、功能管理、可扩展性上要比ACCESS强很多,两者并非同级别的数据库,有些功能ACCESS甚至无法做到。缺点是:一般用户无法直接对SQL SERVER进行远程管理、空间租用的成本比ACCESS稍高。

Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。

SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-16
Access具备后台储存与前台界面开发的功能 90%的功能用于开发软件 10%用于储存功能
Access的优势功能在于前台设计界面的开发 他是由表\查询\窗体\宏\报表\页\模块等等这些组成,
可以进行更方便的设计操作数据.同时Access的储存功能较小 2G空间 一般局域网联机不能超过5至8台
多于8台的共享访问速度会急剧下降 所以一般超过8台以上建议使用
Access开发+SQL server储存集合的方式
Access作为储存工具,数据存储量达到1百兆以上基本寿命就快到了,注意好备份,一旦损坏就没得救了。
SQL server是用于后台数据储存数据与查询的 不具备软件界面的设计开发 是最理想的大型数据库储存工具
而sqlserver数据库就相当于有个管理员专门管sqlserver仓库的大门 数据安全性系数很高。
"企业中对Access比较了解或者精通的人可能只有百分之一,而这百分之一的人中,会对公司的软件系统进行恶意破解或破坏的人不到百分之一。" 所以普通公司(没有电脑高手)一般Access开发的不经过加密,使用也是没问题的
以上只是个人观点:)
第2个回答  2014-10-01
access是中小型数据库,sql是大型的,当存储容量达到一定程度的时候,就会明显的感觉到他们的区别,主要是在存取速度上!
access可以单独的上传下载,操作它,本机不需要安装access,而,sql的话,跟mysql相似,你必须在本机安装sql才能在本机上操作数据库,当然也可以通过连接操作网络上的sql数据库,操作他们必须用项对应的驱动……
其实还有很多区别的,这里一时也说不清楚,还是自己体会来得深刻!
处了在处理更多数据时速度快外,另外还有有很多功能,在表上,数据上等,sql还有详细的表单来记录访问情况等,双机备份,等等,我也说不完
1、视图:
SQL Server有视图功能,这样就不要一个劲的写很多SQL语句将多表串联起来了。
2、存储过程:
可以说目前绝大多数的数据库应用程序用这个功能就可以完成对数据库的操作了,提高了安全性,尤其是类似于组件功能,最关键一点,速度,毕竟和系统是结合在一起的。
3、触发器:
有了触发器,很多希望只有通过写代码才能完成的工作就不要做了。

access有极限,sql可以完全修复这些问题~一旦access上了100mb,很容易造成服务器iis假死,或者吃光你机子的内存~而且相对而言sql的数据备份比较方便,功能强大很多啊~,要看想用它来做什么了一个小型一个大型!

动易程序Access和SQL Server数据库的区别

Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。

SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制
参考:
http://zhidao.baidu.com/link?url=Q4q0MsSJMrF1PvhPIUlo1fG0M0vEk9a0QlhVMN7HX0Ivugdd07VAJhUvPV8PmbS2Szw4eRDlmZSH7GV6PBRLzq本回答被网友采纳
第3个回答  推荐于2018-05-17
ACCESS是桌面型的小数据库应用,ACCESS中的数据存储在文件系统内,不适合海量数据的存储,ACCESS好像最大支持2GB吧,SQL SERVER可以更大。

SQL SERVER是大数据库,它也属于中型数据库,应用于中小型企业。SQL SERVER的分布式、复制、全文检索、DTS都可以满足中型的应用。

SQL SERVER的数据存储在它本身的文件内,在安装目录下的DATA目录下,有和数据库同名的数据文件和日志文件组成。
一般,在WINDOWS体系下,中小型的应用都使用SQL SERVERS

此外,SQL SERVER支持存储国耻、触发器、自定义函数等操作;安全性、并发控制能力、数据挖掘、联机操作等方面都是ACCESS无法超越的。本回答被网友采纳
第4个回答  2013-08-31
,对于日期字段字段
access表示为:#1981-28-12#
SQLSERVER2000表示为:‘‘1981-02-12‘‘
2,SQL语句区别,select ,update 在对单表操作时都差不多,
但多表操作时update语句的区别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关键字后.
更新单表时:都为:
Update table1 set ab=‘12‘,cd=444 where ....
3,delete语句
access中删除时用:delete * from table1 where a>2 即只要把select 语句里的select 换成delete就可以了。
sqlserve 中则为: delete from table1 where a>2 即没有*号
4,as 后面的计算字段区别
access中可以这样:select a,sum(num) as kc_num,kc_num*num as all_kc_num 即可以把AS后的字段当作一个数据库字段参与计算。
sqlserver 中则为:select a,sum(num) as kc_num,sum(num)*num as all_kc_num 即不可以把AS后的字段当作一个数据库字段参与计算。
5,[.]与[!]的区别
access中多表联合查询时:select tab1!a as tab1a,tab2!b tab2b from tab1,tab2 ,中间的AS可以不要。
 sqlserve 中则:select tab1.a as tab1a,tab2.b tab2b from tab1,tab2 ,中间的AS可以不要。
6,联合查询时,
   access中多表联合查询:‘select a,b from(
select a,b from tab1 where a>3 union select c,d from tab2 ) group by a,b
sqlserve 中则‘select a,b from(
select a,b from tab1 where a>3 union select c,d from tab2 ) tmptable group by a,b即要加一个虚的表tmptable,表名任意。---
7,access升级到sqlserver时,
  可以用sqlserver的数据导入工具导入数据,但要做必要的处理。
  access中的自动编号,不会自动转换SQL中的自动编号,只能转换为int型,要把它手工改成标识字段,种子为1,把所有导入被sqlserver转化成的以n开头的字段类型的n去掉,如nvarchar->varchar.把需要有秒类型的日期字段改成datatime类型(SQL会把所有的日期开转化成smalldatetime型)
8,true与1=1
access用where true表示条件为真,
sqlserver用where 1=1表示条件为真
9,判断字段值为空的区别
普通空:
Access和sql server一样 where code is null 或 where code is nol null
条件空:
Access:iif([num] is null,0,[num]) 或 iif([num] is null,[num1],[num])
SQLServer: isnull([num],0) 或 isnull([num],[num1])
10,SQL语句取子串的区别
access:MID(字段,n1,[n2]),LEFT(字段,n),RIGHT(字段,n)
如:select left(cs1,4)+‘-‘+cs2 as cs3
SQLServer: SUBSTRING(expression, start, length)
如:select substring(cs1, 1, 2) + substring(cs1, 4, 2) + ‘-‘ + cs2 as cs3
相似回答