Mysql 与Mssql 的语法区别
今天刷Letcode的数据库题目,看到第二个题目:查找第二高薪水的时候看见有Limit这个用法,当时并没有关于Limit的一点印象.之后在W3上看到这是Mysql的单独语法。原来我以为SQL 的基础查询语句都是一样的,只是一个开源一个不开源。
现在归总一下两个数据库语法的差异点:
- mysql支持enum,和set类型,sql server不支持
# mysql语句:
create table t1(
id int primary key auto_increment,
name varchar(16) not null,
sex enum('male','female') not null default 'male'
);
# sql server语句:
CREATE TABLE Users(
id INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
name NVARCHAR(50) NOT NULL,
sex NVARCHAR(2) CHECK(sex='男' OR sex='女')
)
- 就是头部查询。个人觉得limit + offset 的语法规则比MS里面的row_number() over()函数好用的多;
limit n,m表示从第n+1条开始,取m条
# Mssql Syntax:
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;
# My