首页
学习
活动
专区
圈层
工具
发布

char varchar nchar nvarcharar到底有多大区别

也许面试前的突击能用到,不用东找西看 下面言归正传,介绍下char、varchar、nchar、nvarcharar到底有什么区别,免得每次创建新表的时候,总是在模仿别人的,自己的主见呢?    ...Nchar 和 nvarchar 存储Unicode字符 char 和 varchar 不能存储Unicode字符。...varchar 和 nvarchar是可变长度,可以理解为在定义长度的范围内,按需存储,剩余长度的空间不会用空格填充。...例如,将长度设置为10,分别存储boyce char(10)存储结果:’boyce ‘ varchar(10) 存储结果:’boyce’ 最后还是以表格的形式总结下: 数据类型 定义 存储数据 长度...Unicode [1,8000] 是 列数据的大小基本一致 nchar national char national character Unicode [1,4000] 否 列数据的大小基本一致 varchar

1.2K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一文读懂数据库的文本数据类型:CHAR,VARCHAR,TEXT,BLOG,NCHAR、NVARCHAR、NTEXT

    文章目录 一、CHAR与 VARCHAR 二、TEXT 与 BLOG 三、NCHAR、NVARCHAR、NTEXT 一、CHAR与 VARCHAR CHAR 用于存储固定长度的数据,CHAR字段上的索引效率级高...如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。 VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?...这一个字节用于保存实际使用了多大的长度。 用法:从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。...对于BLOB和TEXT列的索引,必须指定索引前缀的长度。 BLOB和TEXT列不能有默认值。 当排序时只使用该列的前max_sort_length个字节。...英文一般只需要字母表和一些符号字符组成的编码表,因只需要一个字节就可以存储字符。但是中文里的每个汉字并不是字母的排列组合,需要更多的存储空间,一般会占用两个字节。

    4.8K20

    Java进阶笔记——MySql中的varchar类型

    MySQL 数据库的varchar类型在4.1以下的版本中,nvarchar(存储的是Unicode数据类型的字符)不管是一个字符还是一个汉字,都存为2个字节 ,一般用作中文或者其他语言输入,这样不容易乱码...2.CHAR(M), VARCHAR(M)不同之处 CHAR(M)定义的列的长度为固定的,M取值可以为0~255之间,当保存CHAR值时,在它们的右边填充空格以达到指定的长度。...VARCHAR类型的实际长度是它的值的实际长度+1。为什么"+1"呢?这一个字节用于保存实际使用了多大的长度。...null的时候也会占用一位,对不同的字符集,有效长度还不一样,比如utf8的,最多21845,还要除去别的column,但是varchar在一般情况下存储都够用了。...效率来说基本是char>varchar>text,但是如果使用的是Innodb引擎的话,推荐使用varchar代替char char和varchar可以有默认值,text不能指定默认值 数据库选择合适的数据类型存储还是很有必要的

    3.1K30

    MYSQL数据库-数据类型

    mediumint 中等大小的数据 3个字节 int 标准的整数 4个字节 bigint 较大的数据 8个字节 float 浮点数 4个字节 double 浮点数 8个字节 decimal 字符串形式的浮点数,一般用于金融计算...这时,因为把它指定为无符号的数,范围是 0 ~ 99.99 4、decimal类型 语法: decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数 decimal...类型 语法: varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节 示例: 说明: 关于varchar(len),len到底是多大,这个len值和表的编码密切相关...varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是65532 当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532...比较 示图: 如何选择char和varchar: 如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号,md5;如果数据长度有变化,就使用变长(varchar), 比如:名字,地址,

    4K10

    【MySQL】MySQL常见数据类型

    ,d指定小数位数,占用4字节 double[(m,d)] [unsigned] 表示比float精度更大的小数,占用空间8字节 decimal(m,d) [unsigned] 定点数m指定长度,d表示小数点的位数...如果我们向mysql特定的类型中插入不合法的数据,MySQL一般会直接拦截相应的操作。这种类型的约束,也可以保证数据库中的数据是可预期的、完整的。...语法 : varchar(L):可变长度字符串,L表示字符长度,最大长度65535个字节 说明: 关于varchar(len),len到底是多大,这个len值,和表的编码密切相关: )varchar长度可以指定为...当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766...char和varchar的比较 如何选择定长或变长字符串?

    71010

    MySQL数据库设计

    数据库的备份 cmd进入命令行 mysqldump -u用户名 -p 数据库名称 >指定的文件 数据库的恢复 前提是必须要有对应的数据库  mysql -u用户名 -p 指定的文件 1. mysql...使用解释器解析语句===>(存储)数据库引擎拎取数据===>DB File数据文件 3.MySQL -uroot -proot login 默认状态 no database selected 所以切换到一个指定的数据库...  char  char:定长字符串(一旦设定了长度,无论真实内容有多少,都要占用指定长度的空间)  varchar:可变字符串  nvarchar()防止乱码出现 varchar(n),nvarchar...对空间及性能都没有影响 n设置多大比较好:   既然对空间及性能都没有影响,那我们只要考虑业务需要就可以了,我分析过微软的数据库,大都设置为:256,也会看到64,128,512,max等,可能是便于记忆吧...varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unicode来存储数据的.中文字符存储到SQL Server中会保存为两个字节(一般采用Unicode编码),英文字符保存到数据库中

    3.8K110

    【MySQL】数据库的数据类型

    小数类型 (1)float 语法:float[(m, d)] [unsigned] : m 指定显示长度,d 指定小数位数,占用空间 4 个字节。...如果我们在上面的表格中插入大于两个字符的数据,如下,是会越界插入的: 这也就说明了一个问题,如果我们向 mysql 特定类型中插入不合法的数据,mysql 一般都是直接拦截我们,不让我们做对应的操作!...所以,mysql 中,一般而言,数据类型本身也是一种约束,所谓约束,就是倒逼用户尽可能进行正确的插入,约束的是用户,这样就能保证数据库中的数据是可预期的,完整的。...例如:create table t8 (id int, name varchar(6)); 表示 name 可以存放 6 个字符,插入数据如下: 说明:关于varchar(len),len到底是多大,这个...len值,和表的编码密切相关: varchar 长度可以指定为 0 到 65535 之间的值,但是有 1 - 3 个字节用于记录数据大小,所以说有效字节数是 65532; 当我们的表的编码是 utf8

    1.2K10

    在Mysql中CHAR和VARCHAR如何选择?给定的长度到底是用来干什么的?

    背景 同事在设计表,有一个字段为发票号码,在一般来讲发票号码的长度一般是8位,varchar类型, 他的意思是给20位,我的意思是给少点12位就够了。...另外,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。 ALL IN ALL 在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char.。...在实际项目中,如果某个字段的字符长度比较短此时一般是采用固定字符长度。 是考虑其长度的是否相近。如果某个字段其长度虽然比较长,但是其长度总是近似的,如一般在90个到100个字符之间,甚至是相同的长度。...另外,像用来存储用户的身份证号码等等,一般也建议使用CHAR类型的数据。   另外请大家考虑一个问题,CHAR(1)与VARCHAR(1)两这个定义,会有什么区别呢?...拓展: 还有就是我们在使用索引的时候,在插入和更新的时候使用的是指定的长度还是正式字符的长度????我给自己留个问好? ? 竟然创建成功了。看了下是自动截取了255个字符。

    5.1K51

    MySQL中char、varchar和text的区别

    数据的检索效率是:char > varchar > text 空间占用方面,就要具体情况具体分析了。...2.varchar:存储变长数据,但存储效率没有CHAR高,必须在括号里定义长度,可以有默认值。保存数据的时候,不进行空格自动填充,而且如果数据存在空格时,当值保存和检索时尾部的空格仍会保留。...另外,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。 3.text:存储可变长度的非Unicode数据,最大长度为2^31-1个字符。...text列不能有默认值,存储或检索过程中,不存在大小写转换,后面如果指定长度,不会报错误,但是这个长度是不起作用的,意思就是你插入数据的时候,超过你指定的长度还是可以正常插入。...结论: 经常变化的字段用varchar; 知道固定长度的用char; 尽量用varchar; 超过255字节的只能用varchar或者text; 能用varchar的地方不用

    2.8K10

    MySQL支持的数据类型

    对于整型数据,MySQL还支持在类型后面的小括号内指定显示宽度,例如int(5)表示当数值宽度小于5位的时候在数字前面填满宽度,如果不显示指定宽度则默认为int(11)。...一般配合zerofill使用,顾名思义,zerofill就是用”0”填充的意思,也就是在数字位数不够的空间用“0”填满。 ?...AUTO_INCREMENT值一般从1开始,每行增加1。在插入NULL到一个AUTO_INCREMENT列时,MySQL插入一个比该列中当前最大值大1的值。...那么将会报错 CHAR和VARCHAR的区别 CHAR(M)定义的列的长度为固定的,M取值可以为0~255之间,当保存CHAR值时,在它们的右边填充空格以达到指定的长度。...VARCHAR类型的实际长度是它的值的实际长度+1。为什么”+1″呢?这一个字节用于保存实际使用了多大的长度。

    4K30

    MySQL中char、varchar和text的区别

    数据的检索效率是:char > varchar > text 空间占用方面,就要具体情况具体分析了。...2.varchar:存储变长数据,但存储效率没有CHAR高,必须在括号里定义长度,可以有默认值。保存数据的时候,不进行空格自动填充,而且如果数据存在空格时,当值保存和检索时尾部的空格仍会保留。...另外,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。 3.text:存储可变长度的非Unicode数据,最大长度为2^31-1个字符。...text列不能有默认值,存储或检索过程中,不存在大小写转换,后面如果指定长度,不会报错误,但是这个长度是不起作用的,意思就是你插入数据的时候,超过你指定的长度还是可以正常插入。...---- 结论: 经常变化的字段用varchar; 知道固定长度的用char; 尽量用varchar; 超过255字节的只能用varchar或者text; 能用varchar的地方不用text; 能够用数字类型的字段尽量选择数字类型而不用字符串类型的

    2.4K40

    MAVEN_SPRING+SPRINGMVC+MYBATIS+FREEMARKER 整合

    xml /WEB-INF/view/ .jsp 四、 Log4j的配置  为了方便调试,一般都会使用日志来输出信息,Log4j是Apache的一个开放源代码项目,通过使用...Log4j的配置很简单,而且也是通用的,下面给出一个基本的配置,换到其他项目中也无需做多大的调整,如果想做调整或者想了解Log4j的各种配置,参看我转载的一篇博文,很详细: http://blog.csdn.net...=[%c] - %m%n #文件大小到达指定尺寸的时候产生一个新的文件 log4j.appender.File = org.apache.log4j.RollingFileAppender...#指定输出目录 log4j.appender.File.File = logs/ssm.log #定义文件最大大小 log4j.appender.File.MaxFileSize =...REAL}, #{totalearn,jdbcType=DECIMAL}, #{remark,jdbcType=VARCHAR

    67440

    C#字符串(字节)的长度

    对于字节的长度一个汉字是对应两个字节的 顺便看一下Sql Server中char nchar varchar  nvarchar char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节...VARCHAR:存储变长数据,如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。...这一个字节用于保存实际使用了多大的长度。 Nchar类型和Nvarchar类型是怎么一回事呢?...varchar(n):变长型字符数据类型,存储最长长度为8,000 个字符   nvarchar(n):可变长度 Unicode 数据,其最大长度为 4,000 字符.字节的存储大小是所输入字符个数的两倍...varchar一般适用于英文和数字,Nvarchar适用中文和其他字符,其中N表示Unicode常量,可以解决多语言字符集之间的转换问题。

    6.6K20

    【MySQL】数据库基础&&库表的操作&&数据类型详解

    能更加有效的管理数据,数据库的水平是衡量一个程序员水平的重要指标 2.主流数据库 SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目 Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如...为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。...COLLATE: 指定数据库字符集的校验规则 6.2 创建数据库案例 创建名为db1的数据库 在mysql8之前当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是...这样可以节省空间 8.2.3 小数类型 8.2.3.1 float 语法: float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节 案例: 小数:float...语法: varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节 案例: 关于varchar(len),len到底是多大,这个len值,和表的编码密切相关: varchar长度可以指定为

    82500

    nvarchar,nchar,vchar,nvchar,char…

    2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。...VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。...所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar 我把他们的区别概括成: CHAR,NCHAR 定长,速度快,占空间大,需处理 VARCHAR...是使用Unicode来存储数据的.中文字符存储到SQL Server中会保存为两个字节(一般采用Unicode编码),英文字符保存到数据库中,如果字段的类型为varchar,则只会占用一个字节,而如果字段的类型为...而且一般情况下你不会知道这是因为你采用了错误的数据类型来存储所造成的,你会试着去装中文字体,试着去设置操作系统的语言环境...这些都不能解决问题,唯一能解决问题的是把数据库字段的类型个性为nvarchar

    1.4K21
    领券