SQL Server和MySQL常用SQL区别

发布时间:2025-05-23 13:12:25 作者:益华网络 来源:undefined 浏览量(0) 点赞(0)
摘要:SQLServer和MySQL都是大家常用的数据库,她们基本兼容SQL-92标准,但语法风格还是有一些不同,下面列举一部分两者常用SQL片段的差异,权当抛砖引云,其实两者之间的细微差异多着呢。 查看表结构的方式 SQLServer方式: --查看系统内所有数据库SE

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;  

细微区别太多,这里就不一一列举了。

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!