ASP.NET作为微软推出的主流Web开发框架,在数据持久化层面提供了丰富的数据库支持,开发者可根据项目需求、技术栈、成本预算等因素选择合适的数据库,主流数据库类型可分为关系型数据库(RDBMS)和非关系型数据库(NoSQL),本文将详细分析ASP.NET与各类数据库的适配性、性能表现及适用场景。
asp用Access和SQL有什么大的区别
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还有更多的扩展,可以用存储过程,数据库大小无极限限制 Access与语句SqlServer的语句语法区别 1、 Inser Into … …From 语句: 在ACCESS中以下语句 INSERT INTO PubSubJectAccCopys(Copy_id,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index) (SELECT ,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index FROM PubSubJectAcc WHERE _type=03) 中后面(select ******_Type=03)中的小括号((,))必须去掉才能执行,如下: INSERT INTO PubSubJectAccCopys(Copy_id,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index) SELECT ,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index FROM PubSubJectAcc WHERE _type=03 在SQL SERVER 中都可以 2、 Inner Join 语句1 StrSql:=select _id,_opcode,_name from sysuser a inner join (syscopysuser c inner join syscopys b on _id=_id) on _id=_id where _opcode= ++ And copy_name=+Tmpcopyname +; 应该改为 StrSql:=select _id,_opcode,_name from sysuser a inner join (syscopysuser c inner join syscopys b on _id=_id) on _id=_id where _opcode= ++ And copy_name=+Tmpcopyname +; 该行代码的检索条件错误:应该把_id=_id 改为_id=_id 注:两种写法都能在SQL-SERVER中运行,但_id=_id在ACCESS中不能运行 3、 Inner Join 语句2 StrSql:=select copy_year,copy_name,_id from SysCopys a inner join SysCopysUser b on _flag=1 and _id=_id where _id= + +TmpPubUserID+ ; 该为 StrSql:=select copy_year,copy_name,_id from SysCopys a inner join SysCopysUser b on _id=_id where _flag=1 and _id= + +TmpPubUserID+ ; 注:两种写法都能在SQL-SERVER中运行,但第一种在ACCESS中不能运行 4、 Inner Join语句3 SQl server 中可以执行以下语句 SELECT distinct _id,_name,_code,_sort From sysoption inner join sysroleoption ON _id=_id AND _id=:roleid 但ACCESS中不能,只能 SELECT distinct _id,_name,_code,_sort From sysoption inner join sysroleoption ON _id=_id Where _id=:roleid 5、 Update语句 Sql SerVer 中能执行但Access 中不能 UPDATE sysuserrole SET _sort = (SELECT _sort FROM sysrole WHERE _id = _id and _id=01) 6、 日期比较 SQL SERVER 中用 StrSql:=select copy_year,Start_month,Cur_month,Start_Flag,Start_date,End_date +From SysCopys +where copy_id=+LoginCopyID+ +and start_date<=+datetostr(LoginDate)+ +and end_date>=+datetostr(LoginDate)+; ACCESS中用 StrSql:=select copy_year,Start_month,Cur_month,Start_Flag,Start_date,End_date +From SysCopys +where copy_id=+LoginCopyID+ +and start_date<=#+datetostr(LoginDate)+# +and end_date>=#+datetostr(LoginDate)+# 参考以上的第10个函数“GetDateStr” 7、 最大数值获取语句 StrSql:=insert into sysRoleOption +select +fidRoleId+ as Role_ID,opti_id, +convert(numeric,opti_id)-(convert(numeric,opti_parentid)*100)++ MaxOptiSort + as opti_Sort from sysoption where opti_parentid= +PCoTypeID()^ + and opti_bottom=1+; 改为 StrSql:=insert into sysRoleOption +select +fidRoleId+ as Role_ID,opti_id, +opti_id-opti_parentid*100++ MaxOptiSort + as opti_sort from sysoption where opti_parentid= +PCoTypeID()^ + and opti_bottom=1+ 注:两种写法都能在SQL-SERVER中运行,但第一种在ACCESS中不能运行
Oracle与 SQL同时安装会发生冲突吗?
不会冲突他们两之间的区别如下:一、开放性1. SQL Server只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。 Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。 而且windows平台的可靠性,安全性和伸缩性是非常有限的。 它不象unix那样久经考验,尤其是在处理大数据库。 2. Oracle能在所有主流平台上运行(包括 windows)。 完全支持所有的工业标准。 采用完全开放策略。 可以使客户选择最适合的解决方案。 对开发商全力支持。 二、可伸缩性,并行性1. SQL server并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。 2. Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。 如果windowsNT不能满足需要,用户可以把数据库移到UNIX中。 Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。 四、性能1. SQL Server多用户时性能不佳2. Oracle性能最高, 保持开放平台下的TPC-D和TPC-C的世界记录。 五、客户端支持及应用模式1. SQL ServerC/S结构,只支持windows客户,可以用ADO、DAO、OLEDB、ODBC连接。 2. Oracle多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。 六、操作简便1. SQL Server操作简单,但只有图形界面。 2. Oracle较复杂,同时提供GUI和命令行,在windowsNT和unix下操作相同。 七、使用风险1. SQL server完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。 并不十分兼容。 2. Oracle长时间的开发经验,完全向下兼容。 得到广泛的应用。 完全没有风险。 最后价格上 ORACLE贵过SQLSRVER
SQL数据库和ACCESS数据库使用区别
ACCESS改为SQL需要注意哪几个地方 数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用decimal。 所有的默认值都丢失了。 主要是数字类型和日期类型。 所有now(),time(),date()要改成getdate()。 所有datediff(‘d‘, time1, time2)要改成datediff(day, time1, time2) 有可能一些true/false类型不能使用,要变为1/0。 备注类型要通过cast(column as varchar)来使用。 CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整。 isnull(rowname)要改成rowname = null ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号! 转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。 有时用smalldatetime型时,转化失败,而用datetime型时,转化成功。 对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:“delete * from user where id=10“,而对SQL SERVER数据库进行删除是用:“delete user where id=10“. 日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。 在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。 ACCESS转SQL SERVER的数据库的几点经验 的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号! 2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。 我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。 3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:“delete * from user where id=10“,而对SQL SERVER数据库进行删除是用:“delete user where id=10“. 4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。 5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。














发表评论