Access数据库和SQL Server数据库在实际应用中的区别

作者&投稿:翠歪 (若有异议请与网页底部的电邮联系)
SQL Server数据库与Access数据库有什么区别~

VFP支持多用户同时使用数据库,属于小型数据库系统
可用于设计网络数据库,但基本F/S结构的。
VFP与SQL的区别:两者结合起来用来制作基于C/S结构的系统,SQL用来做后端,在服务器上运行,管理数据库。
VFP用来做前端,在工作站上运行,处理用户请求,并向SQL发出数据处理请求。

一、主体不同
1、ACCESS数据库:是由微软发布的关系数据库管理系统。结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
2、SQL:指微软的SQLServer数据库服务器,是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案。
二、特点不同
1、ACCESS数据库:以自己的格式将数据存储在基于Access Jet的数据库引擎里。它还可以直接导入或者链接数据。
2、SQL:为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据应用程序。


三、优势不同
1、ACCESS数据库:会使用一个联合处理器来处理浮点型算术,整型数算术也总是要快一些。当你的计算不含有小数,尽量使用整型或长整型而不是变量或双整型。
2、SQL:达到了支持超大型企业进行联机事务处理 (OLTP)、高度复杂的数据分析、数据仓库系统和网站所需的性能水平。
参考资料来源:百度百科-ACCESS数据库
参考资料来源:百度百科-SQL数据库

  Access是由微软发布的关联式数据库管理系统。它结合了“Microsoft Jet Database Engine”和“图形用户界面”两项特点,是Microsoft Office的成员之一。

  优点:Access部署简单方便,运用起来非常灵活。主要是桌面数据库系统,它也可以开发基于自己的桌面数据库应用(UI),并可以作为前端开发工具与其它数据库搭配开发应用程序(如SQL Server、DB2、Oracle等),熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的初级用户则使用它来开发简单的应用软件。

  缺点:数据储存量小安全性不够高,加了用户级密码容易破解。C/S结构下对服务器要求很高,否则容易造成MDB损坏,并发数255,但是对高强度操作适应性差,如果服务器不够好、网络不够好、编程方法不够好,6-7个人同时访问就能导致MDB损坏或者并死,不能将VBA代码开发的软件系统直接编译成Exe可执行文件,不能脱离Access或者Access Runtime环境,该环境相对其他软件体积较大(50M左右)。Microsoft Access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器IIS假死,或者消耗掉服务器的内存导致服务器崩溃。

  SQL Server是一个关系数据库管理系统。

  优点:安全性高真正的客户机/服务器体系结构,图形化用户界面,使系统管理和数据库管理更加直观、简单,丰富的编程接口工具为用户进行程序设计提供了更大的选择余地。SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。具有很好的伸缩性,可跨越多种平台使用,对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。SQL Server还提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。

  缺点:因功能强大,所以操作数据比Access较为复杂。




1.在Access数据库中简历查询语句的步骤
--> 打开你的MDB
--> 在数据库窗口中,点击“查询”,或在“视图”菜单中选择“数据库对象”-> “查询”
--> 点击数据库窗口中的“新建”按钮
--> 点击“确定”,关闭“显示表”窗口
--> 点击工具栏上的“SQL”,或在“视图”菜单中选择“SQL 视图”
--> 删掉所有的内容
--> 直接输入SQL语句即可
2. Access 数据库,每次只能执行一条sql语句,如果想在Access数据库中一次执行多条Sql语句,则要使用事务进行控制
OldDbTransaction
3. 在SQL Server中的for xml path语句无法再Access数据库中使用
4. 操作语句
select
access数据库在有多个表查询的时候,表之间的联合语句要使用圆括号括起来,如:
SELECT * FROM (aa LEFT JOIN bb ON aa.a=bb.a) LEFT JOIN cc ON(bb.a=cc.a and bb.b=cc.b)
另外,在多表连接时,不可以使用‘Full Join’连接
update
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;

delete
SQLSERVER中:DELETE from Table1 WHERE ID > 1;
Access中:DELETE * from Table1 WHERE ID > 1;
比较得出:SQLSERVER中,即只要把select语句里的select与delete的操作语法一致的,不需要*;
5、时间字段
A:要用#号分隔,或者转换为日期
SELECT * FROM Books WHERE RegDate = #2007-5-1# 或
SELECT * FROM Books WHERE RegDate = CDate(’2007-5-1′)
S:可以直接用''
SELECT * FROM Books WHERE RegDate = ‘2007-5-1′
O:To_Date
SELECT * FROM Books WHERE RegDate=To_Date('2007-05-01','yyyy-mm-dd')
6. Access数据库表中的主键要设置自动增长类型,当一个数据表中已经存在数据后,则不可以将字段设置为自动增长类型。
7.Access的查询中不能出现select top 0 from xxx 的情况
8.Access数据库的数据类型转换
CBool Boolean 任何有效的字符串或数值表达式。
CByte Byte 0 到 255。
CCur Currency -922,337,203,685,477.5808 到 922,337,203,685,477.5807。
CDate Date 任何有效的日期表达式。
CDbl Double 对于负值,-1.79769313486231E308 到 -4.94065645841247E-324;对于正值,4.94065645841247E-324 到 1.79769313486232E308。
CDec Decimal 对于整数(即没有小数的数字),+/-79,228,162,514,264,337,593,543,950,335。对于具有 28 位小数的数字,值域范围是
+/-7.9228162514264337593543950335。可能的最小非零数字为 0.0000000000000000000000000001。
CInt Integer -32,768 到 32,767;小数部分被四舍五入。
CLng Long -2,147,483,648 到 2,147,483,647;小数部分被四舍五入。
CSng Single 对于负值,-3.402823E38 到 -1.401298E-45;对于正值,1.401298E-45 到 3.402823E38。
CStr String CStr 的返回值取决于 expression 参数。
CVar Variant 对于数字,与双精度型的值域范围相同。对于非数字值,与 String 的值域范围相同。
9 ACCESS 不识别!= 替换成<>