加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL和SQL Server 的区别

发布时间:2020-12-12 02:21:01 所属栏目:MySql教程 来源:网络整理
导读:注意MYSQL使用注释 -- 时 要后面加上空格 使用 #不用 一.数据类型 MYSQL:支持enum和set类型 ;SQL SERVER:不支持 MYSQL:不支持nchar,nvarchar,ntext类型 具体可看 SELECT * FROM msdb.dbo.sysdatatypemappings -- SQL SERVER ? DATA TYPES #MYSQL MYSQL:递增

注意MYSQL使用注释 -- 时 要后面加上空格 使用 #不用

一.数据类型

MYSQL:支持enum和set类型 ;SQL SERVER:不支持

MYSQL:不支持nchar,nvarchar,ntext类型

具体可看

SELECT * FROM msdb.dbo.sysdatatypemappings --SQL SERVER
? DATA TYPES #MYSQL

MYSQL:递增语句是AUTO_INCREMENT; SQL SERVER:IDENTITY(1,1)

 MYSQL
CREATE TABLE student
  (
   stuId int PRIMARY KEY AUTO_INCREMENT
  )
 SQL SERVER
 student(
stuId INT KEY IDENTITY(1,1)
)

MYSQL:标识符用``?; SQL SERVER : []?

SELECT `stuId`,`stuName` FROM studentInfo ;
SELECT [stuId],stuName] FROM studentInfo;

MYSQL:获取当前系统时间 NOW();SQL SERVER:GETDATE()

SELECT NOW();#当前日期+时间
SELECT CURDATE();#返回当前日期 
 CURTIME();#返回当前时间
GETDATE();

MYSQL:支持RAPLACE INTO 语法 SQL SERVER:MERGE INTO

 MYSQL
-- 使用REPLACE INTO时,首先会根据主键或者唯一索引查看表中是否有该条记录,有的话则先删除,然后插入数据;没有该记录则直接插
REPLACE INTO studentInfo(`stuId`,`stuName`) VALUES('Robin');
 SQL SERVER
MERGE INTO studentInfo A
USING(1 AS stuId,1)">LuoBin' AS stuName)AS B ON A.stuId=B.stuId
WHEN MATCHED THEN
UPDATE SET A.stuNameB.stuName
WHEN NOT MATCHED INSERT (stuId,stuName) VALUES (b.stuId,b.stuName);

MYSQL:支持 INSETR INTO TABLE_NAME SET `cloumn1`='...' ... ;SQL SERVER:不支持

INSERT INTO studentInfo SET stuId=2,stuName=';

MYSQL:支持 LIMIT SQL SERVER: 支持OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY、TOP、ROW_NUMBER() OVER(ORDER BY...)

FROM studentInfo LIMIT 0,1); font-weight: bold">10;
SQL SERVER 三种分页
FROM (*,ROW_NUMBER() OVER(ORDER BY stuId) AS RowId FROM studentInfo ) WHERE RowId BETWEEN 0 AND 10

FROM studentInfo BY stuId OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY

SELECT TOP 10 WHERE stuId NOT IN (0 stuId FROM studentInf

?MYSQL:支持多种存储引擎 SQL SERVER:只支持一种

SHOW ENGINES;

MYSQL:不支持默认值当前时间的datetime类型,只能用timestamp类型 SQL SERVER:支持

 dateTest(
  addTime timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
 )
 dateTest( 
addTime DATETIME DEFAULT(GETDATE())
)

MYSQL和SQL SERVER检查是否有再删除的操作

DROP TABLE IF EXISTS studentInfo;
EXISTS(FROM sys.objects WHERE namestudentInfo)
TABLE studentInfo

MYSQL:支持无符号的整数,SQL Server:不支持

MYSQL:不支持varchar(max)这种写 这个类型在mssql里面既可做一般数据存储,也可以做blob数据存储

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读