当前位置:   article > 正文

MySQL与SQLserver

MySQL与SQLserver

与MySQL的差别

SQL Server和MySQL都是广泛使用的关系数据库管理系统(RDBMS),它们的SQL语法有很多相似之处,但也存在一些差异。以下是一些主要的语法区别:

1. 数据库和表的创建

SQL Server
CREATE DATABASE database_name;
GO

USE database_name;
GO

CREATE TABLE table_name (
    ID INT PRIMARY KEY,
    Name VARCHAR(50),
    Age INT,
    create_time DATETIME DEFAULT GETDATE()
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
MySQL
CREATE DATABASE database_name;
USE database_name;

CREATE TABLE table_name (
    ID INT PRIMARY KEY,
    Name VARCHAR(50),
    Age INT,
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2. 自增主键

SQL Server
CREATE TABLE table_name (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    Name VARCHAR(50),
    Age INT
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 或者通过SSMS图形界面设置自增主键

  • 或是通过 navicat操作

MySQL
CREATE TABLE table_name (
    ID INT AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(50),
    Age INT
);
  • 1
  • 2
  • 3
  • 4
  • 5

3. 字符串连接

SQL Server
SELECT FirstName + ' ' + LastName AS FullName
FROM Employees;
  • 1
  • 2
MySQL
SELECT CONCAT(FirstName, ' ', LastName) AS FullName
FROM Employees;
  • 1
  • 2

4. 限制查询结果

SQL Server
SELECT TOP 10 * FROM table_name;
  • 1
MySQL
SELECT * FROM table_name LIMIT 10;
  • 1

5. 当前时间

SQL Server
SELECT GETDATE();
  • 1
MySQL
SELECT NOW();
  • 1

6. IF条件判断

SQL Server
IF (condition)
BEGIN
    -- SQL 语句
END
ELSE
BEGIN
    -- SQL 语句
END
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
MySQL
IF condition THEN
    -- SQL 语句
ELSE
    -- SQL 语句
END IF;
  • 1
  • 2
  • 3
  • 4
  • 5

7. 分页

SQL Server
SELECT *
FROM table_name
ORDER BY column_name
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
  • 1
  • 2
  • 3
  • 4
  • 5
MySQL
SELECT *
FROM table_name
ORDER BY column_name
LIMIT 10 OFFSET 10;
  • 1
  • 2
  • 3
  • 4

8. 删除和修改表结构

SQL Server
ALTER TABLE table_name
ADD column_name datatype;

ALTER TABLE table_name
DROP COLUMN column_name;
  • 1
  • 2
  • 3
  • 4
  • 5
MySQL
ALTER TABLE table_name
ADD column_name datatype;

ALTER TABLE table_name
DROP COLUMN column_name;
  • 1
  • 2
  • 3
  • 4
  • 5

9. 存储过程和函数

SQL Server
CREATE PROCEDURE procedure_name
AS
BEGIN
    -- SQL 语句
END;

EXEC procedure_name;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
MySQL
CREATE PROCEDURE procedure_name()
BEGIN
    -- SQL 语句
END;

CALL procedure_name();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

10. 事务

SQL Server
BEGIN TRANSACTION;
-- SQL 语句
COMMIT;
-- 或者
ROLLBACK;
  • 1
  • 2
  • 3
  • 4
  • 5
MySQL
START TRANSACTION;
-- SQL 语句
COMMIT;
-- 或者
ROLLBACK;
  • 1
  • 2
  • 3
  • 4
  • 5

SQLserver的[]

在SQL Server中,方括号 []用于引用标识符(如表名、列名),特别是在这些标识符包含空格或是SQL关键字的时候。它可以避免潜在的命名冲突和错误,但不一定要使用方括号。

如果你的 sql语句标识符没有空格,也不是SQL关键字,你可以省略方括号。

  • 如,带[]版
CREATE TABLE [oa_peixun_cost_detail] (
    [peixun_id] VARCHAR(255) NOT NULL,
    [user_name] VARCHAR(255) NOT NULL,
    PRIMARY KEY ([peixun_id], [user_name])
);

CREATE TABLE [oa_peixun_cost] (
    [peixun_id] VARCHAR(255) NOT NULL,
    [create_user_name] VARCHAR(255) NOT NULL,
    PRIMARY KEY ([peixun_id], [create_user_name])
);

CREATE TABLE [oa_peixun] (
    [peixun_id] VARCHAR(255) NOT NULL,
    [create_user_name] VARCHAR(255) DEFAULT NULL,
    PRIMARY KEY ([peixun_id])
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 不带[]版
CREATE TABLE oa_peixun_cost_detail (
    peixun_id VARCHAR(255) NOT NULL,
    user_name VARCHAR(255) NOT NULL,
    PRIMARY KEY (peixun_id, user_name)
);

CREATE TABLE oa_peixun_cost (
    peixun_id VARCHAR(255) NOT NULL,
    create_user_name VARCHAR(255) NOT NULL,
    PRIMARY KEY (peixun_id, create_user_name)
);

CREATE TABLE oa_peixun (
    peixun_id VARCHAR(255) NOT NULL,
    create_user_name VARCHAR(255) DEFAULT NULL,
    PRIMARY KEY (peixun_id)
);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

d VARCHAR(255) NOT NULL,
create_user_name VARCHAR(255) NOT NULL,
PRIMARY KEY (peixun_id, create_user_name)
);

CREATE TABLE oa_peixun (
peixun_id VARCHAR(255) NOT NULL,
create_user_name VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (peixun_id)
);

    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/983681
    推荐阅读
    相关标签
      

    闽ICP备14008679号