相同点
- 都是关系型数据库
- 都使用基本SQL语法
不同点
历史追溯
MySQL -- 屌丝创业青年
- 最早追溯到1985年;
- 1995年发布内部发行版本;
- 02年发布4.0 Beta版、4.1版逐渐变为一个成熟的关系型数据库;
- 08年被Sun收购,09年Sun被Oracle收购;
- MySQL早期定位是互联网开发,借着互联网的东风风靡天下~
SQL Server -- 富二代产品
- 最早是为IBM公司的OS/2操作系统开发的
- 后来微软推出:Microsoft SQL Server
- SQL Server主要面向中小企业,使用集成的商业智能 (BI)工具提供了企业级的数据管理
性质
- MySQL:开源
- SQLserver:收费
使用
MySQL
- 主要应用于互联网、价格便宜、安装便捷
- 开源,可以通过修改代码实现特定需求
- LAMP(Linux-Apache-MySQL-PHP)架构的一员,包括:Linux系统,Apache网络服务器,MySQL数据库,Perl、PHP、Python编程语言这些开源产品组成,可以快速搭建起网站框架
SQL Server
- windows生态系统产品,具有高度集成的特点
- 常用于中小企业,具备友好的用户界面,开发方便、使用方便、运维方便,帮助中小企业快速生产应用
服务的操作系统
MySQL:
FreeBSD、LinuxOS X、Solaris、Windows
SQL Server
Linux、Windows
支持的语言
SQL Server:
C#、C++、Delphi、Go、Java、JavaScript(Node.js)、PHP、Python、R、Ruby、Visual Basic
MySQL:
Ada、C、C#、C++、D、Delphi、Eiffel、Erlang、Haskell、Java、JavaScript(Node.js)、Objective-C、OCaml、Perl、PHP、Python、Ruby、Scheme、Tcl
服务器端脚本
MySQL:SQL语法
SQL Server:T-SQL
常用关键字语法区别
- MySQL不支持nchar,nvarchar,ntext类型
- MySQL的递增语句是AUTO_INCREMENT,而SQLServer是identity(1,1)
- MySQL里面可以分日期类型和时间类型,获取当前日期是current_date (),当前完整时间是 now()函数;SQLServer使用getdate()方法获取当前时间日期
- MySQL支持insert into table1set t1 = ‘’, t2 = ‘’
- SQLServer里面检查是否有这个表再删除,需要:
if exists (select * from dbo.sysobjects where id = object_id(N'uc_newpm') and OBJECTPROPERTY(id,N'IsUserTable')=1);MySQL里面只需要 DROP TABLE IF EXISTS cdb_forums; - mysql的ifnull()函数对应SQLServer的isnull()函数;
- 存储过程
mysql- 创建:create procedure 存储过程名(参数)
- 使用BEGIN .... END作为开始和结束符号
*变量赋值:SET @p_in=1
*MySql存储过程调用其他存储过程用call:Call 存储过程名(参数1,参数2)
- mysql的每句结束要用";",否则会报错
- MySQL中没有top关键字,需要用limit代替且放在后面:select * from table1 limit 5;
综上
MySQL
优点
- 开源,可定制,生产成本低
- 支持系统平台多,支持语言多
- 支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统醉倒支持8TB
- 性能好,速度快
SQL Server
优点:
- 图形化用户界面,数据库管理更加直观、便捷
- 继承与Windows系统中,为基于.net开发提供工具,便于程序员入门开发
- 便于扩展,性能问题直接通过增加数据库服务器解决
- 数据安全性高,由于多台服务器部署,保证数据冗余,便于数据恢复
缺点: - 负载均衡故障,引起系统全面崩溃
知识扩展
- 关系型数据库:是指采用了关系模型来组织数据的数据库。关系模型通俗来讲,就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织
网友评论