mssql与mysql基本语法以及其他的区别

       最近公司新项目要用mysql数据库,总结点mssql与mysql语法以及其他方面的一些不同,跟大家分享一下。

      1 mysql不支持nchar,nvarchar,ntext类型,mssql支持这些类型;

      2 mysql的递增语句是AUTO_INCREMENT,而mssql是identity(1,1);
         
--设置自增列
--sqlserver
CREATE TABLE emp
    (
      id INT IDENTITY(1, 1)
    )
--mysql
-- 设置自增ID从N开始
CREATE TABLE emp (
ID INT  PRIMARY KEY AUTO_INCREMENT
) AUTO_INCREMENT = 100 ; --(设置自增ID从100开始)

3 mysql需要为表指定存储类型

4 mssql识别符是[],[type]表示他区别于关键字,但是mysql却是 `,[tab键上面]来加以区别

5 mssql支持getdate()方法获取当前时间日期,但是mysql里面可以分日期类型和时间类型,获取当前日期是cur_date(),当前完整时间是 now()函数

6 mssql不支持limit语句,是非常遗憾的,只能用top 取代limt 0,N,row_number() over()函数取代limit N,M

7 mysql在创建表时要为每个表指定一个存储引擎类型,而mssql只支持一种存储引擎

8 mysql不支持默认值为当前时间的datetime类型(mssql很容易做到),在mysql里面是用timestamp类型

9 mssql里面检查是否有这个表再删除,需要这样:

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;

10 mysql支持无符号型的整数,那么比不支持无符号型的mssql就能多出一倍的最大数存储

11 mysql不支持在mssql里面使用非常方便的varchar(max)类型,这个类型在mssql里面既可做一般数据存储,也可以做blob数据存储

12 mysql的ifnull()函数对应sql的isnull()函数;注意:MySql也有isnull()函数,但意义不一样

13 mysql的存储过程中变量的定义去掉@;

14 mysql的uuid()对应mssql的GUID(); 

15 字符串相加

    SqlServer 直接用 +,MySql concat()
16 修改表名也有差异,将表emp改为emp2
     
-sqlserver
EXEC sys.[sp_rename] @objname = N'emp', -- nvarchar(1035)
    @newname = 'emp2' -- sysname
--mysql
ALTER TABLE emp RENAME emp2


17 修改字段的数据类型
     将id字段的int类型改为bigint
     
-sqlserver
ALTER TABLE [dbo].[emp2] ALTER COLUMN [ID] BIGINT
--mysql
ALTER TABLE emp2 MODIFY id BIGINT

18 添加字段
     添加字段的语法差不多,但是MYSQL里可以使用FIRST和AFTER关键字指定添加的字段的位置
  
--sqlserver
ALTER TABLE [dbo].[emp2] ADD NAME NVARCHAR(200) NULL
--mysql
ALTER TABLE emp2 ADD NAME NVARCHAR(200)  NULL


         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值