**SQL Server 语句**

SQL Server 语句

修改数据
Marge语句,
假设有表一表二两个表,需要根据表一中匹配的值更新表二.
有三种情况
1.表一有一些表二中不存在的行,需要将表一的行插入到表二中.
2.表二中有一些表一中不存在的行,需要从表二中删除行.
3.表一的一些行具有与表二中行相同的键,但是,这些行在非键列中具有不同的值,
这种情况下,需要使用来自表一的值更新表二的行.

如果单独使用insert,update,和delete语句,则必须构造三个单独的语句.
但SQL Server提供Merge语句用于同时执行三个操作.
在这里插入图片描述

首先,在Merge子句中指定sales.category 和 sales.category_staging 表.

其次s.category_id = t.category_id 确定sales.category 表中的行如何与sales.category_staging表中的行匹配.它类型join子句中的join条件.通常,使用主键或唯一键的键列进行匹配.

第三 ,Matched , Not Matched 和 Not Matched By Source.

1.Matched:执行是与合并条件匹配的行,对于匹配的行,需要使用sales.category_staging 表中的值跟新sales.category 表中的行列.

2.Not Matched:这些是sales.category_staging 表中的行,sales.category表中没有任何匹配的行,
这种情况下,需要将sales.category_staging 表中的行添加到sales.category表.
Not Matched By Target也称为目标不匹配.

3.No Matched by Source: 这些是sales.category 表中与sales.category_staging表中的任何行都不匹配的行,如果要将sales.category表和sales.category_staging表中的数据同步,则需要使用次匹配条件从sales.category表中删除行.

十.数据定义

SQL Server 数据类型

Character字符串 :
Char(n)固定长度的字符串。最多 8,000 个字符。
, varchar(n)可变长度的字符串。最多 8,000 个字符。
, varchar(max)可变长度的字符串。最多 1,073,741,824 个字符。
, text .可变长度的字符串。最多 2GB 字符数据。

Unicode 字符串 :
nchar(n)固定长度的 Unicode 数据。最多 4,000 个字符。
, nvachar(n)可变长度的 Unicode 数据。最多 4,000 个字符。
, nvachar(n)可变长度的 Unicode 数据。最多 536,870,912 个字符。
, ntext .可变长度的 Unicode 数据。最多 2GB 字符数据。

Varchar: 字符数据类型:可变长度的非Unicode字符,最大长度:最多8000字符.
字符大小:每个字符占用1个字节
使用:当数据长度为可变或可变长度列且 实 际数据始终小于容量时使用

Nvarchar:字符数据类型:可变长度,Unicode和非Unicode字符,最大长度:最多4000字符.
字符大小:每个Unicode/非Unicode字符占用 2 个字节
使用:限存储,仅在需要Unicode支持时使用,

–varchar(1)代表一字节 a 1字节 中 2字节
–nvarchar(1)代表两字节 a 1字节 中 2字节

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值