SQLServer和MySql语法和关键字的区别详解

伙计,这些比较让我头晕。
上周,一位客户询问MySQL和SQL Server有什么区别。
我刚刚把这份文件转过去——够他看一段时间了。

参见第 1 3 点和第 1 4 点。
MySQL 支持无符号整数,但 SQL Server 不支持。
这直接使存储空间增加了一倍。
我在2 02 3 年上海一家公司的设计中发现了这一点。
由于计算方法不够完善,所以我不得不依赖无符号类型。
但另一方面,SQL Server varchar(max)在MySQL中不可用,有时在代码中实际上是围绕它编写的。

对于存储过程,MySQL 脚本 null() 对应于 SQL Server 脚本 null()。
我记得这个。
上次写账号的时候差点就写错了。
然后使用MySQL的if语句。
所以使用elseif和转发elseif,灵活性不如SQL Server。
还有链接。
MySQL使用concat(),而SQL Server直接添加+号。
如果你习惯了,你应该改变它。

在时间函数方面,MySQL的curdate、curtime()、now()划分得相当仔细。
SQL Server使用getdate(),简单粗暴。
但是MySQL的DATE_FORMAT函数确实很强大。
你可以把它塑造成你喜欢的形状。
上次导出报表数据时,我用它来将日期格式更改为“2 02 3 -1 0-2 7 星期六”。

那么MySQL在创建表时必须指定存储设备。
SQL Server 更好,只需一个就可以了。
SQL Server ID (1 ,1 ) 在 MySQL 中应写为 AUTO_INCRMENT。
SQL Server在删除表的时候,要写很多IF语句。
如果MySQL表存在则直接直接操作,这样就容易多了。

最烦人的问题是 SQL Server 脚本替换。
MySQL实际上支持在table1 中插入t1 ='value', t2 ='value'。
SQL Server喜欢竞争,应该使用好的。
还有临时表。
MySQL中创建临时表需要添加TEMPORARY关键字,但SQL Server不使用。

否则,在MySQL和SQL Server中,使用存储模块,位置颠倒。
你必须在SQL Server exec之后添加str,但MySQL只是将str直接添加到Exec中。
MySQL调用另外一个存储过程,使用的是函数名(参数1 ,参数2 ),SQL Server好像使用的是exec存储过程名。

句子不能包含MySQL子查询。
我击中了这个洞。
我几乎被困在2 02 2 年北京的项目上,我觉得需要重写它。
SQL Server 没有任何限制。

有适合你的东西。
系统使用什么语法?不要混合。
我仍然想知道MySQL的DATE_FORMAT()是否可以用于与大量数据的关系。
我有点担心正在发生的事情。

SQL存储过程的作用和优缺点

哈,上周有客户问我有关 SQL 存储过程的问题。
他说这个东西是放在数据库里的。
调用时,不需要自己编写SQL语句。
直接调用存储过程的名字就可以了,听起来很方便。
我说是的。
首先,将存储过程放入数据库中。
调用的时候确实不用自己去写那些复杂的SQL语句,省去了很多麻烦。

然后他问我,为什么说存储过程调用快? 我解释说,因为SQLSERVER会先预编译存储过程,这样提高了执行效率。
想一想,预编译就像提前准备菜谱一样,做菜自然会更快。

至于传输速度,他说存储过程可以加快网络传输速度,这个我可以理解。
因为直接调用存储过程的名称,不需要传输冗长的SQL语句,确实节省了带宽。

不过他提到有些外包软件开发不允许使用存储过程,这一点我也知道。
因为对方可能不希望你访问数据库,所以只能使用SQL语句。
然而在国内,尤其是小企业,SQL存储过程的使用相当普遍。

最后他表示,存储过程还可以提高数据库的安全性,因为程序代码中不包含SQL语句。
我很同意这个观点,确实可以减少一些潜在的安全风险。
反正就看你了,用存储过程还是SQL语句,要看具体情况和需求。
我还在思考这个问题,但还没有想出什么好的主意。