内容简介:SQLServer和MySQL都是大家常用的数据库,她们基本兼容SQL-92标准,但语法风格还是有一些不同,下面列举一部分两者常用SQL片段的差异,权当抛砖引云,其实两者之间的细微差异多着呢。使用单行GO分号;
SQLServer和 MySQL 都是大家常用的数据库,她们基本兼容SQL-92标准,但语法风格还是有一些不同,下面列举一部分两者常用 SQL 片段的差异,权当抛砖引云,其实两者之间的细微差异多着呢。
查看表结构的方式
SQLServer方式:
-- 查看系统内所有数据库 SELECT name, database_id, create_date FROM sys.databases ; -- 查询数据库内所有表 select * from sysobjects where xtype= 'U' ; -- 显示表结构 sp_help/sp_columns 表名;
MySQL方式:
-- 查看系统内所有数据库 show databases; -- 查询数据库内所有表 show tables; -- 显示表结构desc 表名;
语句结束符号
SQLServer的结束符号:
使用单行GO
分号;
什么都不写
MySQL的结束符号:
似乎一直都是用分号;。
返回前几条记录
SQL Server的写法是:
select top n条 from 表;
select top n percent from 表;
MySQL的写法是:
select * from 表 limit n;
获取当前的日期时间
SQL Server的写法是:
getdate();
MySQL的写法是:
- now();
循环支持
以1到100求和为例,我们看看两者实现的不同方式
SQL Server只有一个while循环,语法如下:
DECLARE @I INT = 1; DECLARE @K INT = 0; WHILE @IBEGIN SET @K = @K + @I; SET @I = @I + 1; ENDSELECT @K;
MySQL支持好几种,先看看While循环:
DECLARE I,K INTDEFAULT 0 ; WHILE I SET K=I + K; SET I=I + 1; END WHILE; SELECT K;
再看看MySQL的REPEAT UNTIL 循环循环:
DECLARE I,K INTDEFAULT 0 ; REPEATSET K=I + K; SET I=I + 1; NTIL I>100END REPEAT; SELECT K;
再看看MySQL的LOOP循环
DECLARE I,K INTDEFAULT 0 ; LABEL: LOOPSET K=I + K; SET I=I + 1; IF I>100 THENLEAVE LABEL; END IF; END LOOP; SELECT K;
细微区别太多,这里就不一一列举了。
以上所述就是小编给大家介绍的《数据库大师成长日记:SQL Server和MySQL常用SQL区别》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
尽在双11:阿里巴巴技术演进与超越
阿里巴巴集团双11技术团队 / 电子工业出版社 / 2017-4 / 79
“双 11”,诞生于杭州,成长于阿里,风行于互联网,成就于新经济,贡献于全世界。 从 2009 年淘宝商城起,双 11 已历经八年。每年的双 11 既是当年的结束,又是走向未来的起点。技术的突破创新,商业模式的更替交互,推动着双 11 迈步向前。 《尽在双11——阿里巴巴技术演进与超越》是迄今唯一由阿里巴巴集团官方出品、全面阐述双 11 八年以来在技术和商业上演进和创新历程的书籍。内容......一起来看看 《尽在双11:阿里巴巴技术演进与超越》 这本书的介绍吧!