MySQL与SQL Server的区别

原先主要从事的是数据库实施岗,主要使用的是sql server数据库,现在在学习Java后发现现在主要使的是MySQL数据库,虽然MySQL与sql server数据库大体相同,但在具体语法上的不同让我不胜其烦,现将部份区别整理出来。

1、mysql支持enum,和set类型,sql server不支持


2、mysql不支持nchar,nvarchar,ntext类型


3、mysql的递增语句是AUTO_INCREMENT,而sql server是identity(1,1)


4、sql server默认导出表创建语句的默认值表示是((0)),而在mysql里面是不允许带两括号的


5、mysql需要为表指定存储类型


6、sql server识别符是[],[type]表示他区别于关键字,但是mysql却是 `,也就是按键1左边的那个符号
7、sql server支持getdate()方法获取当前时间日期,但是mysql里面可以分日期类型和时间类型,获取当前日期是cur_date(),当前完整时间是 now()函数

实际上,每个现代Web应用程序和数据库都起着至关重要的作用。由于当前Web开发的动态特性,即使是基本的应用程序也需要一些存储,检索和修改数据的机制。当然,随着数据库的重要性飙升,某些关系数据库管理系统(RDBMS)也越来越受欢迎。

其中两个系统是MySQL和SQL Server。虽然它们具有独特的用例,但它们都执行相同的功能。它们运行不同的风格,但是共同基于SQL或结构化查询语言。因此,开发人员可以期待MySQL和SQL Server之间的一些相似之处,例如使用表来存储数据,引用主键和外键,以及单个环境或服务器中的多个数据库。

将MySQL和SQL Server称为现有的两种最流行的RDBMS解决方案并不是不准确的,尽管Oracle和Postgres可能会对此有所说明。即使我们逐渐见证了从SQL向NoSQL的转变,前者仍然是更具主导地位的存在。这意味着现在是学习MySQL或SQL Server的好时机。

MySQL vs SQL Server

什么是MySQL?

MySQL是在90年代中期(后来被Oracle收购)开发的,它是最早的开源数据库之一,直到今天仍然如此。这意味着MySQL有几种选择。但这些变体之间的差异并不太明显; 语法和基本功能保持一致。

已经成为MySQL特征的东西是它在创业社区中的受欢迎程度。因为它是开源的和免费的,所以开发人员可以轻松地开始使用MySQL,并在他们可能需要的极少数情况下修改其代码。MySQL通常与PHP和Apache Web Server 结合使用,在Linux发行版之上,这导致了著名的首字母缩略词LAMP(L inux,Apache,MySQL,PHP)。

什么是SQL Server?

SQL Server,也称为Microsoft SQL Server,比MySQL长得多。Microsoft在80年代开发了SQL Server,并承诺提供可靠且可扩展的RDBMS。这些年来,这些仍然是SQL Server的核心品质,因为它是大型企业软件的首选平台。

SQL Server主要面向使用.NET作为开发语言的开发人员,而不是PHP for MySQL。这是有道理的,因为两者都属于微软的保护伞。

MySQL和SQL Server之间的主要区别

现在我们已经概述了这些系统是什么,让我们看看MySQL和SQL Server之间的几个关键偏差:

环境

如前所述,SQL Server最适合使用.NET,而MySQL可以与几乎所有其他语言配对,最常用的是PHP。还应该提到的是,SQL Server过去只能在Windows上运行,但自去年微软宣布Linux支持SQL Server以来,情况发生了变化。尽管如此,Linux版本还不够成熟,这意味着如果使用SQL Server,我们仍然建议您继续使用Windows,如果使用MySQL,请切换到Linux。

语法

对大多数人来说,这是两个系统之间最重要的区别。熟悉一套语法规则可以极大地影响您决定哪个系统最适合您。虽然MySQL和SQL Server都基于SQL,但语法上的差异仍然很突出,值得牢记。例如,请看以下示例:

MySQL

 

Microsoft SQL Server

 

两个代码块都实现了相同的结果 - 从名为person的表中返回3个年龄最小的条目。但语法有了巨大的变化。当然,语法是主观的,所以我们不能给出任何建议; 选择对你来说更直观的东西。可以在此处找到MySQL和SQL Server之间的实现更改的完整列表。

SQL Server不仅仅是一个RDBMS

专有软件与开源软件的主要优势在于它所获得的独家支持。在这种特殊情况下,优势变得更加深远,因为SQL Server得到了全球最大的科技公司之一的支持。Microsoft已经为SQL Server构建了其他工具,这些工具与RDBMS捆绑在一起,包括数据分析工具。它还具有报表服务器 - SQL Server Reporting Services以及ETL工具。这使得SQL Server成为RDBMS的瑞士军刀。您也可以在MySQL上获得类似的功能,但是您必须为第三方解决方案肆虐网络 - 对大多数人来说并不理想。

存储引擎

MySQL和SQL Server之间有时会忽略的另一个重大差异是它们存储数据的方式。SQL Server使用由Microsoft开发的单个存储引擎,而不是为MySQL提供的多个引擎。这为MySQL开发人员提供了更大的灵活性,因为他们可以根据速度,可靠性或其他方面为不同的表使用不同的引擎。一个流行的MySQL存储引擎是InnoDB,它落在频谱的较慢端,但保持可靠性。另一个是MyISAM。

查询取消

没有多少人知道这一点,但MySQL和SQL Server之间潜在的突破性差异是MySQL不允许您在执行中取消查询。这意味着一旦命令开始执行,你最好希望它可能造成的任何损害都是可逆的。另一方面,SQL Server允许您在过程中途取消查询执行。对于数据库管理员而言,这种差异尤其严重,而Web开发人员则执行脚本命令,这些命令在执行期间很少需要取消查询。

 

 

 

Logo

本社区面向用户介绍CSDN开发云部门内部产品使用和产品迭代功能,产品功能迭代和产品建议更透明和便捷

更多推荐