MySQL和SQL server语法的差异

参考:https://www.linuxidc.com/Linux/2017-10/148022.htm

1.大小写敏感
在MySQL中对部分对象的引用是大小写敏感的,如数据库名、表名。

2.注释符
MySQL中有三种注释符:

  • 使用“#”开头
  • 使用“–”开头,和SQL server不一样的是,MySQL在第二个“-”后需要有空白符
  • 使用标准的“/**/”

3.自增列
MySQL中设置自增列必须要有索引,而且一张表只有一个自增列;
SQL server中可以有多个自增列,而且可以设置自增长步长;

4.查看表的属性
MySQL中使用desc或者show;
SQL server使用存储过程sp_help;

5.修改表名
MySQL使用alter语句中的rename to;
SQL server使用存储过程sp_rename;

6.删除表
MySQL可以直接判断,且一次可以删除多表;
SQL server只可以一次删除一张表;

7.修改字段属性
MySQL修改字段属性可以使用change和modify,而且可以修改列的定义,包括约束,change还可以重命名列;
SQL server只能修改字段属性(数据类型、空性),不能修改约束类属性;

8.添加、删除字段和约束

  • MySQL可以一次性添加多个字段;
  • SQL server只可以一次加一次;
  • MySQL在外键上和SQL Server以及Oracle都不同,MySQL在创建外键的时候,会自动在外键列上创建一个索引,且这个索引无法人为删除。
  • 默认值的设置方法
    SQL Server的默认值约束和MySQL的默认值约束设置方法相差很大,MySQL的默认值约束不能使用constraint来设置,只能通过修改列属性来设置。另外,MySQL的default关键字后是不能加括号的,而SQL Server是无所谓的。

9.创建表模板
MySQL中复制表结构时不会复制主键、索引、自增列等任何属性,仅仅只是简单的建立一张表然后插入数据。但SQL Server复制表结构时会复制自增列属性。

10.MySQL中的字段显示宽度和zerofill

  • 在MySQL中可以给整数数据类型指定结果的显式宽度,如int(4)表示将显示4位整数,如果实际值的位数小于显示值宽度,则使用空格填充。而结果位数超出时将不影响显示结果。一般该功能都会配合zerofill属性用0代替空格填充,但是使用了zerofill后,该列就会自动变成无符号字段。zerofill属性的声明必须紧跟在整数数据类型的后面,而不能跟在如not
    null这样的属性后面。
  • SQL Server中没有该功能。

猜你喜欢

转载自blog.csdn.net/AirTrioa/article/details/83309602