当前位置: 首页 > article >正文

sqlserver、达梦、mysql的差异

持续更新

差异项sqlserver达梦mysql
单行注释----

1、-- ,--后面带个空格

2、#

包裹对象名称,如表、表字段等

[tableName]

"tableName"`tableName`
表字段自增IDENTITY(1, 1)IDENTITY(1, 1)AUTO_INCREMENT
二进制数据类型IMAGEIMAGE、BLOBBLOB

存储一个汉字需要定义的varchar长度

varchar(2)varchar(3)varchar(1)
判断是否为NULisnull(id, 0)isnull(id, 0)ifnull(id, 0)
获取当前日期/时间select getdate()

1、select getdate();

2、select now();

SELECT NOW();
类型转换convert,将日期转换为字符串,返回yyyy-mm-ddselect CONVERT(varchar(10), getdate(), 121)

1、select SUBSTR(CONVERT(varchar(30), getdate()), 1, 10)

2、select SUBSTR(CONVERT(varchar(30), now()), 1, 10)

SELECT CONVERT(NOW(), CHAR(10))
判断字符串中是否包含某些字符charindex('字符', '全部字符串') 

1、instr('全部字符串',  '字符')

2、regexp_like('全部字符串', '字符')

INSTR('全部字符串', '字符')
字符串拼接操作符

+

select 's1' + 's2' + 's3'

||

SELECT 's1' || 's2' || 's3';

CONCAT

SELECT CONCAT('s1', 's2', 's3');

求字符串长度select len('abc')

1、select len('abc');

2、select length('abc');

SELECT LENGTH('abc');
执行语句块,变量定义、赋值、运算、查询等declare @i int, @j int, @k int
set @i = 1
set @j = 2
set @k = @i + @j
select @k as k
DECLARE 
    i,j,k INT;
begin
    set i = 1;
    set j = 2;
    set k = i + j;
    select k as k;
end;
SET @i = 1;
SET @j = 2;
SET @k = @i + @j;
SELECT @k AS k;
执行/调用存储过程exec proc_GetMenu 'manager'

1、proc_GetMenu('manager');

2、call proc_GetMenu('manager');

3、exec proc_GetMenu 'manager';

4、execute proc_GetMenu 'manager';

CALL proc_GetMenu('manager');
执行/调用有out参数的存储过程

可以省略out参数

exec proc_GetReportPrintData 1, '', '', 1

可以省略out参数

CALL proc_GetReportPrintData(1, '', '', 1);

不能省略out参数

CALL proc_GetReportPrintData(1, '', '', 1, @outValue);

指定查询返回一条数据select top 1 * from employeeselect top 1 * from employeeSELECT * FROM employee LIMIT 1
delete1、delete Employee where emp_ID = 'userId'
2、delete from Employee where emp_ID = 'userId'
1、delete Employee where emp_ID = 'userId';
2、delete from Employee where emp_ID = 'userId';
DELETE FROM Employee WHERE emp_ID = 'userId';
if…else语句declare @age int;
set @age = 18;
if @age < 18
begin
    select '小于18' AS msg;
end
else
begin
    select '已满18' as msg;
end;
declare 
    age int;
begin
    set age = 18;
    if age < 18
    begin
        select '小于18' AS msg;
    end
    else
    begin
        select '已满18' as msg;
    end;
end;
不能用于会话,只能用于存储过程、存储函数、触发器中。
临时表

create table #tempTable(id int, xm varchar(20))

表名必须以#开头

CREATE GLOBAL TEMPORARY TABLE tmpTable(id int, xm varchar(30));

CREATE TEMPORARY TABLE tmpTable(id INT, xm VARCHAR(10));
建表主键的关键语句CONSTRAINT [PK_name] PRIMARY KEY CLUSTERED 
  (
      [ID] ASC
  )
NOT CLUSTER PRIMARY KEY("ID")PRIMARY KEY (`id`)


http://www.kler.cn/a/379153.html

相关文章:

  • Git在码云上的使用指南:从安装到推送远程仓库
  • 一些常见的Java面试题及其答案
  • Vue2+OpenLayers实现折线绘制功能(提供Gitee源码)
  • 警惕IDEA 2024版重大Bug问题:LomBok失效、Gradle冲突、Spring Boot启动错误
  • B站评论系统的多级存储架构
  • iOS - TLS(线程本地存储)
  • React 组件生命周期与 Hooks 简明指南
  • HTTP代理是什么?有什么用?
  • git pull遇到一个问题
  • 揭秘Scam-as-a-Service:警惕钓鱼攻击的产业化
  • centos7之LVS-DR模式传统部署
  • 21 Docker容器集群网络架构:四、Docker集群网络验证
  • 在k8s环境中如何在本地和pod之间同步文件?
  • 基于微信小程序的生签到系统设计与实现(lw+演示+源码+运行)
  • 一键式配置适合 Web 开发的Ubuntu系统
  • 采用SpeedL模式控制UR5e机器人
  • HarmonyOS开发 - 餐饮APP中多门店多窗口打开实例补充
  • Unity简易版成就系统
  • FPGA 开发相关的资源
  • 如何实现视频人声分离?实用方法分享
  • Windows 部署非安装版Redis
  • 代码随想录八股训练营 | 面试高频八股(测开部分)
  • MathType在Word中的安装与配置记录
  • IMU应用于监测进食
  • 【论文解读】Med-BERT: 用于疾病预测的大规模结构化电子健康记录的预训练情境化嵌入
  • 如何选择和利用低代码无代码平台实现企业数字化转型?