• MySql和Sql Server语法和关键字区别


    640?wx_fmt=png

    1. MySQL支持enum,和set类型,SQL Server不支持


    2. MySQL不支持nchar,nvarchar,ntext类型 


    3. MySQL的递增语句是AUTO_INCREMENT,而MS SQL是identity(1,1) 


    4. MS SQL默认到处表创建语句的默认值表示是((0)),而在MySQL里面是不允许带两括号的


    5. MySQL需要为表指定存储类型  


    6.  MS SQL识别符是[],[type]表示他区别于关键字,但是MySQL却是 `,也就是按键1左边的那个符号


    7.  MS SQL支持getdate()方法获取当前时间日期,但是MySQL里面可以分日期类型和时间类型,获取当前日期是current_date (),当前完整时间是 now()函数


    8. MS SQL不支持replace into 语句,但是在最新的sql20008里面,也支持merge语法


    9.  MySQL支持insert into table1 set t1 = „‟, t2 = „‟ ,但是MS SQL不支持这样写 


    10. MySQL支持insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1) 


    11. MySQL在创建表时要为每个表指定一个存储引擎类型,而MS SQL只支持一种存储引擎


    12. MySQL不支持默认值为当前时间的datetime类型(MS SQL很容易做到),在MySQL里面 是用timestamp类型 


    13. MS SQL里面检查是否有这个表再删除,需要这样: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;


    14.  MySQL支持无符号型的整数,那么比不支持无符号型的MS SQL就能多出一倍的最大数 存储 


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


    16. MySQL创建非聚集索引只需要在创建表的时候指定为key就行,比如:KEY displayorder  (fid,displayorder) 在MS SQL里面必须要:create unique nonclustered index  index_uc_protectedmembers_username_appid on dbo.uc_protectedmembers  (username asc,appid asc)


    17. MySQL text字段类型不允许有默认值 


    18. MySQL的一个表的总共字段长度不超过65XXX。 


    19. 一个很表面的区别就是MySQL的安装特别简单,而且文件大小才110M(非安装版),相 比微软这个庞然大物,安装进度来说简直就是..... 


    20. MySQL的存储过程只是出现在最新的版本中,稳定性和性能可能不如MS SQL。


    21. 同样的负载压力,MySQL要消耗更少的CPU和内存,MS SQL的确是很耗资源。


    22. mysql的ifnull()函数对应sql的isnull()函数;


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


    24. mysql的每句结束要用";" 


    25. SQLServer存储过程的AS在MySql中需要用begin .....end替换 


    26. 字符串连接用concat()函数;如 SQLServer: Temp=‟select * from ‟+‟tablename‟+…+…   MySql:Temp=concat(‟select * from‟, ‟tablecname‟,…,…)  


    27. mysql的uuid()对应mssql的GUID(); 


    28. MySql的out对应SQLServer的output,且mysql 的out要放在变量的前面,SQLServer 的output放在变量后面 


    29. MySql out,in,inout的区别——MySQL 存储过程 “in” 参数:跟 C 语言的函数参 数的值传递类似, MySQL 存储过程内部可能会修改此参数,但对 in 类型参数的修改,对调用者(caller)来说是不可见的(not visible)。MySQL 存储过程 “out” 参数:从存储过程内部传值给调用者。在存储过程内部,该参数初始值为 null,无论调用者是否给存储过程参数设置值。MySQL 存储过程 inout 参数跟 out 类似,都可以从存储过程内部传值给调用者。不同的是:调用者还可以通过 inout 参数传递值给存储过程。


    30. MySQL的if语句为  if  (条件)  then  end if; 或者  If  (条件) then Else End if 或者  If(条件)then  Elseif (注意不能写成 Else if )   Elseif  …   End if 


    31. Mysql的Execute对应SqlServer的exec;   (注意:必须想下面这样调用)  Set @cnt=‟select * from 表名‟;  Prepare str from @cnt;   Execute str;


    32. MySql存储过程调用其他存储过程用call  Call 函数名(即SQLServer的存储过程名)(‟参数1‟,‟参数2‟,……)   


  • 相关阅读:
    驱动调试常见问题_Camera
    如何从零开始开发一款嵌入式产品(20年的嵌入式经验)
    git入门与实践
    ramfs, rootfs, initrd and initramfs
    Living a Fulfilling Life: A Guide to Following Your Heart
    有关 jffs2_scan_eraseblock 问题小结
    JS_imgload
    JS_闭包和内存.
    JS_textarea自适应高度
    Css_制作旋转字体
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12352049.html
Copyright © 2020-2023  润新知