今天补充一下《关于SQL SERVER 字段类型char(n) , nchar(n) , varchar(n) , nvarchar(n)》类型的区别

虽然两个字符串一样,但是定义的类型不一样,也是不同的,这里用加密来解释

如:

DECLARE @pas VARCHAR(100)='123456789'
DECLARE @pas2 NVARCHAR(100)='123456789'

这两个字符串看着一样的,但是一个是varchar,一个是nvarchar,如果是直接比较,肯定是一样的

如:

可见,两个字符串是一样的,但是,重点来了

先给大家看一下代码:

DECLARE @pas VARCHAR(100)='123456789'

DECLARE @pas2 NVARCHAR(100)='123456789'

IF @pas=@pas2

SELECT 1

SELECT HASHBYTES('SHA2_256',@pas)

SELECT HASHBYTES('SHA2_256',@pas2)

先猜猜结果一样不?答案先给了,肯定不一样,因为字节数不一样,第一个@pas 9*1=9个字节,第二个@pas2 9*2=18个字节

来,直接看结果:

可以看见结果是不一样的,所以在定义的时候要注意,特别是像本文的列子所示

另外,再补充一个知识点:

在对数据做特殊处理的时候一定记得左右去空格,下面给出一个列子供大家参考

可见,下面两个都是一样的类型,但是第二个和第三个多了空格

所以导致结果不一样,至于我怎么知道的,别问,问就是踩过坑

曾经写过一个注册登录,就是因为定义的类型导致的,十分难受

今日补充结束,有问题的小伙伴可以关注留言,我会尽力帮大家解决疑惑

能帮朋友解决问题的记得给个关注支持一下,以后将多多分享SQL SERVER 相关知识

补充 6-13 《关于SQL SERVER 字段类型char(n) , nchar(n) , varchar(n) , nvarchar(n)》的更多相关文章

  1. sql server数据库中char、nchar、varchar、nvarchar的选择

    在数据库中,字符型的数据是最多的,可以占到整个数据库的80%以上.为此正确处理字符型的数据,对于提高数据库的性能有很大的作用. 在字符型数据中,用的最多的就是Char与Varchar两种类型.前面的是 ...

  2. SQL Server 字段类型 decimal(18,6)小数点前是几位?记一次数据库SP的BUG处理

    原文:SQL Server 字段类型 decimal(18,6)小数点前是几位?记一次数据库SP的BUG处理 SQL Server 字段类型 decimal(18,6)小数点前是几位? 不可否认,这是 ...

  3. SQL中char、nchar、varchar、nvarchar、text概述【转】

    1. char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符. 2. nchar ...

  4. sql 根据日期模糊查询&SQL Server dateTime类型 模糊查询

    曾经遇到这样的情况,在数据库的Meeting表中有PublishTime (DateTime,8)字段,用来存储一个开会时间,在存入时由于要指明开会具体时间,故格式为yyyy-mm-dd hh:mm: ...

  5. SQL Server锁类型

    SQL Server锁类型(SQL)收藏 1. HOLDLOCK: 在该表上保持共享锁,直到整个事务结束,而不是在语句执行完立即释放所添加的锁. 2. NOLOCK:不添加共享锁和排它锁,当这个选项生 ...

  6. SQL SERVER 数据有CHAR(10),CHAR(13),CHAR(9)隐藏字符

    原文:SQL SERVER 数据有CHAR(10),CHAR(13),CHAR(9)隐藏字符 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Givi ...

  7. Oracle/SQL 修改字段类型和长度

    标准SQL修改字段类型和长度语句: ALTER TABLE tableName modify column columnName 类型;例如Mysql的修改字段类型语句:alter table tes ...

  8. MS SQL server对象类型type

    执行下面代码,将获取ms sql server对象类型以及其说明 IF OBJECT_ID('tempdb.dbo.#type') IS NOT NULL DROP TABLE #type CREAT ...

  9. SQL Server时间类型datetime

    SQL Server时间类型datetime 兼容ADO的COleDateTime. SQL datetime 日期和时间数据,可表示1753.1.1 至 9999.12.31的时间,精度为1/300 ...

  10. SQL Server 方言类型映射问题

    关于SQL Server的类型映射问题,例如,nvarchar无法进行hibernate类型映射,需要通过convert进行类型转换方可进行获取

随机推荐

  1. 【开源免费】ChatGPT-Java版SDK重磅更新至1.0.10版,支持Tokens计算,快来一键接入。

    简介 ChatGPT Java版SDK开源地址:https://github.com/Grt1228/chatgpt-java ,目前收获将近1000个star. 有bug欢迎朋友们指出,互相学习,所 ...

  2. this关键字,static以及子类访问父类super关键字

    1.this是用来指代当前类实例化对象 public setid(id){thiis.id = id;} 即将传入的形参id赋值给当前类的id属性 2.this还可以调用方法,方法分为两种构造方法和普 ...

  3. mysql锁及锁出现总结

    转载请注明出处: 1.按锁粒度分类: 行锁:锁某行数据,锁粒度最小,并发度高:: 行锁是指加锁的时候锁住的是表的某一行或多行记录,多个事务访问同一张表时,只有被锁住的记录不能访问,其他的记录可正常访问 ...

  4. Java 生成海报

    最近项目有个功能是生成海报 一个背景图片,一个二维码图片 将两个图片合并成一个图片. 写了一个工具类,需要的朋友自取. 1 @Component 2 public class PictureUtil ...

  5. Semantic Kernel 入门系列:💬Semantic Function

    如果把提示词也算作一种代码的话,那么语义技能所带来的将会是全新编程方式,自然语言编程. 通常情况下一段prompt就可以构成一个Semantic Function,如此这般简单,如果我们提前可以组织好 ...

  6. RxJava--create源码分析

    使用示例: Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe( ...

  7. 计算机基础和linux安装及帮助

    一.按系列罗列linux的发行版,并描述不同发行版之间的联系与区别 Linux可以分为两种版本: 1.商业版:最常见的如Redhat和centos,是属于商业公司维护的发行版本,其中很多软件都是需要收 ...

  8. Django笔记三十三之缓存操作

    本文首发于公众号:Hunter后端 原文链接:Django笔记三十三之缓存操作 这一节介绍一下如何在 Django 中使用 redis 做缓存操作. 在 Django 中可以有很多种方式做缓存,比如数 ...

  9. Go windows 环境搭建

    下载地址 官网下载地址:https://golang.google.cn/dl/ 1.下载完之后 双击msi进行安装 路径可以不用改, 继续next 安装完之后就需要配置环境变量, 找到环境变量 GO ...

  10. 2022-06-14:数组的最大与和。 给你一个长度为 n 的整数数组 nums 和一个整数 numSlots ,满足2 * numSlots >= n 。总共有 numSlots 个篮子,编号为 1

    2022-06-14:数组的最大与和. 给你一个长度为 n 的整数数组 nums 和一个整数 numSlots ,满足2 * numSlots >= n .总共有 numSlots 个篮子,编号 ...