精华内容
下载资源
问答
  • char varchar2 区别

    2016-08-09 18:44:00
    charvarchar2 区别 a:char长度固定而varchar2长度可变 b:char的遍历效率要比varchar2的效率稍高 c:char 浪费空间节省时间varchar2浪费时间节省空间 转载于:...

    char 与 varchar2 区别

    a:char长度固定而varchar2长度可变

    b:char的遍历效率要比varchar2的效率稍高

    c:char 浪费空间节省时间 varchar2浪费时间节省空间

    转载于:https://www.cnblogs.com/zhaozhaozhang/p/5754303.html

    展开全文
  • 现象和版本 系统版本: linux oracle 11.2.0.4.0 ...故总结下char和varchar2区别,以及修改跟踪t扩展char的具体的trace动作 char和varchar2区别 char的长度是固定的,varchar2的长度是变化的。 char(...

    现象和版本

    系统版本:
    linux
    oracle 11.2.0.4.0

    现象:
    最近同事在测试环境扩展一个数据表的char(9)到char(20),致数据库hang住,查看了数据表的数量有1000多万行。
    故总结下char和varchar2的区别,以及修改跟踪t扩展char的具体的trace动作

    char和varchar2的区别

    char的长度是固定的,varchar2的长度是变化的。
    char(20),如果数据是"aaaa",则剩余的16个需要用空格补齐。
    varchar2(20), 如果数据是”aaaa",则是按照实际长度来计算的。
    同样最大长度设定下, varchar2按照实际长度存储,而char按照补齐的操作。所以, varchar2占用空间小。但是效率会低。
    varchar2以时间换空间

    测试char和varchar2长度

    # t1表使用char测试
    SQL> create table t1(name char(10));
    
    Table created.
    
    SQL> insert into t1 values('aaa');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select name,dump(name) from t1;
    
    NAME
    ----------
    DUMP(NAME)
    --------------------------------------------------------------------------------
    aaa
    Typ=96 Len=10: 97,97,97,32,32,32,32,32,32,32       # 三个字符 之后以空格补齐
    
    
    SQL> select length(name) from t1 where rownum < 2;
    
    LENGTH(NAME)
    ------------
              10    # 长度为10
    
    ## t2表以varchar2来测试
    SQL> create table t2(name varchar2(10));
    
    Table created.
    
    SQL> insert into t2 values('aaa');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select name,dump(name) from t2;
    
    NAME
    ----------
    DUMP(NAME)
    --------------------------------------------------------------------------------
    aaa
    Typ=1 Len=3: 97,97,97    # 此处是实际的长度,并没有用空格补齐
    
    
    SQL> select length(name) from t2 where rownum < 2;
    
    LENGTH(NAME)
    ------------
               3
    
    

    修改char类型长度跟踪

    我们使用10045事件, level 12级别进行跟踪

    # 构造测试表,并进行10046 trace
    SQL> select count(*) from test01;
    
      COUNT(*)
    ----------
           999
    
    SQL> desc test01;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     COMPID                                    NOT NULL CHAR(10)
     CUSTNO                                             CHAR(10)    # char(10)的字段
     
     # 修改至char(20), 过程通过10046事件跟踪
    SQL> alter session set events '10046 trace name context forever, level 12';
    
    Session altered.
    
    SQL> alter session set tracefile_identifier='10046';
    
    Session altered.
    SQL> alter table test01 modify custno CHAR(20);
    
    Table altered.
    
    SQL> commit;
    SQL> alter session set events '10046 trace name context off';
    
    # 通过v$diag_info查看到的trace file文件 
    # /u01/app/oracle/diag/rdbms/dog/DOG/trace/DOG_ora_32506086_10046.trc
    
    
    

    分析DOG_ora_32506086_10046.trc文件:
    tkprof DOG_ora_32506086_10046.trc DOG_ora_32506086_10046.txt

    vi DOG_ora_32506086_10046.txt
    分析格式化之前的文件: 
    
    SQL ID: g8vhr1nz6uc4j Plan Hash: 3691610890
    
    update "TEST01" set "CUSTNO"=sys_op_trtb("CUSTNO",  9,   20,   20)    # 进行了修改表,并将信息补齐空格
    
    
    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.00          0          1          0           0
    Execute      1      0.01       0.03          0        486       2677         999
    Fetch        0      0.00       0.00          0          0          0           0
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        2      0.01       0.03          0        487       2677         999
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 101     (recursive depth: 1)
    Number of plan statistics captured: 1
    
    Rows (1st) Rows (avg) Rows (max)  Row Source Operation
    ---------- ---------- ----------  ---------------------------------------------------
             0          0          0  UPDATE  TEST01 (cr=489 pr=0 pw=0 time=39310 us)
           999        999        999   TABLE ACCESS FULL TEST01 (cr=6 pr=0 pw=0 time=1516 us cost=4 size=
    21978 card=999)     # 修改了999行数据
    
    Elapsed times include waiting on following events:       # 写入了磁盘文件 ,进行了相应的DISK IO操作
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      Disk file operations I/O                       52        0.00          0.00
    ********************************************************************************
    
    
    # 这里是更新的seg$信息表,记录segment相关的信息
    SQL ID: 0kkhhb2w93cx0 Plan Hash: 1283625304
    
    update seg$ set type#=:4,blocks=:5,extents=:6,minexts=:7,maxexts=:8,extsize=  
      :9,extpct=:10,user#=:11,iniexts=:12,lists=decode(:13, 65535, NULL, :13),
      groups=decode(:14, 65535, NULL, :14), cachehint=:15, hwmincr=:16, spare1=
      DECODE(:17,0,NULL,:17),scanhint=:18, bitmapranges=:19
    where
     ts#=:1 and file#=:2 and block#=:3
    
    
    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          3          1           1
    Fetch        0      0.00       0.00          0          0          0           0
    
    Misses in library cache during parse: 1
    Misses in library cache during execute: 1
    Optimizer mode: CHOOSE
    Parsing user id: SYS   (recursive depth: 2)
    Number of plan statistics captured: 1
    
    Rows (1st) Rows (avg) Rows (max)  Row Source Operation   # 修改这个表TEST01的seg$信息
    ---------- ---------- ----------  ---------------------------------------------------
             0          0          0  UPDATE  SEG$ (cr=3 pr=0 pw=0 time=205 us)
             1          1          1   TABLE ACCESS CLUSTER SEG$ (cr=3 pr=0 pw=0 time=24 us cost=2 size=6
    8 card=1)
             1          1          1    INDEX UNIQUE SCAN I_FILE#_BLOCK# (cr=2 pr=0 pw=0 time=10 us cost=
    1 size=0 card=1)(object id 9)
    ………………
    这中间经历了一些其它信息,之后会更新 tab$ col$ obj$ 表的信息,记录这个表的基本信息
    ………………
    
    SQL ID: b5cr4hhndmbuf Plan Hash: 2583366266
    
    update tab$ set ts#=:2,file#=:3,block#=:4,bobj#=decode(:5,0,null,:5),tab#=
      decode(:6,0,null,:6),intcols=:7,kernelcols=:8,clucols=decode(:9,0,null,:9),
      audit$=:10,flags=:11,pctfree$=:12,pctused$=:13,initrans=:14,maxtrans=:15,
      rowcnt=:16,blkcnt=:17,empcnt=:18,avgspc=:19,chncnt=:20,avgrln=:21,
      analyzetime=:22,samplesize=:23,cols=:24,property=:25,degree=decode(:26,1,
      null,:26),instances=decode(:27,1,null,:27),dataobj#=:28,avgspc_flb=:29,
      flbcnt=:30,trigflag=:31,spare1=:32,spare2=decode(:33,0,null,:33),spare4=:34,
      spare6=:35
    where
     obj#=:1
    省略统计信息
    
    SQL ID: 6vqvn8ya0xybh Plan Hash: 1687011458
    
    update col$ set intcol#=:3,segcol#=:4,type#=:5,length=:6,precision#=decode(:5,
      182/*DTYIYM*/,:7,183/*DTYIDS*/,:7,decode(:7,0,null,:7)),scale=decode(:5,2,
      decode(:8,-127/*MAXSB1MINAL*/,null,:8),178,:8,179,:8,180,:8,181,:8,182,:8,
      183,:8,231,:8,null),null$=:9,fixedstorage=:10,segcollength=:11,col#=:12,
      property=:13,charsetid=:14,charsetform=:15,spare1=:16,spare2=:17,spare3=:18,
      deflength=decode(:19,0,null,:19),default$=:20
    where
     obj#=:1 and name=:2
    
    省略统计信息
    
    SQL ID: 4yyb4104skrwj Plan Hash: 3272417377
    
    update obj$ set obj#=:4, type#=:5,ctime=:6,mtime=:7,stime=:8,status=:9,
      dataobj#=:10,flags=:11,oid$=:12,spare1=:13, spare2=:14
    where
     owner#=:1 and name=:2 and namespace=:3 and remoteowner is null and linkname
      is null and subname is null
    
    
    
    

    修改varchar2长度跟踪

    修改varchar2长度跟踪trace

    create table test02(compid char(10),custno varchar2(10));
    alter session set tracefile_identifier='100462'; 
    alter session set events '10046 trace name context forever, level 12';
    alter table test02 modify custno varchar2(20);   
    alter session set events '10046 trace name context off'; 
    
    # trace文件分析 :
    分析trace文件时
    我们只看到了通过传入的参数修改最后的tab$ col$ obj$信息表,而并没有UPDATE test02及分析数据segment的信息
    delete from tab_stats$
    where
     obj#=:1
    
    
    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          2          0           0
    Fetch        0      0.00       0.00          0          0          0           0
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        2      0.00       0.00          0          2          0           0
    
    Misses in library cache during parse: 0
    Optimizer mode: CHOOSE
    Parsing user id: SYS   (recursive depth: 1)
    Number of plan statistics captured: 1
    
    Rows (1st) Rows (avg) Rows (max)  Row Source Operation
    ---------- ---------- ----------  ---------------------------------------------------
    
    
    SQL ID: b5cr4hhndmbuf Plan Hash: 2583366266
    
    update tab$ set ts#=:2,file#=:3,block#=:4,bobj#=decode(:5,0,null,:5),tab#=
      decode(:6,0,null,:6),intcols=:7,kernelcols=:8,clucols=decode(:9,0,null,:9),
      audit$=:10,flags=:11,pctfree$=:12,pctused$=:13,initrans=:14,maxtrans=:15,
      rowcnt=:16,blkcnt=:17,empcnt=:18,avgspc=:19,chncnt=:20,avgrln=:21,
      analyzetime=:22,samplesize=:23,cols=:24,property=:25,degree=decode(:26,1,
      null,:26),instances=decode(:27,1,null,:27),dataobj#=:28,avgspc_flb=:29,
      flbcnt=:30,trigflag=:31,spare1=:32,spare2=decode(:33,0,null,:33),spare4=:34,
      spare6=:35
    where
     obj#=:1
     
    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          3          2           1
    Fetch        0      0.00       0.00          0          0          0           0
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        2      0.00       0.00          0          3          2           1
    
    Misses in library cache during parse: 0
    Optimizer mode: CHOOSE
    Parsing user id: SYS   (recursive depth: 1)
    Number of plan statistics captured: 1
    Rows (1st) Rows (avg) Rows (max)  Row Source Operation
    ---------- ---------- ----------  ---------------------------------------------------
             0          0          0  UPDATE  TAB$ (cr=3 pr=0 pw=0 time=208 us)
             1          1          1   TABLE ACCESS CLUSTER TAB$ (cr=3 pr=0 pw=0 time=25 us cost=2 size=1
    46 card=1)
             1          1          1    INDEX UNIQUE SCAN I_OBJ# (cr=2 pr=0 pw=0 time=10 us cost=1 size=0
     card=1)(object id 3)
    
    ********************************************************************************
    
    SQL ID: 6vqvn8ya0xybh Plan Hash: 1687011458
    
    update col$ set intcol#=:3,segcol#=:4,type#=:5,length=:6,precision#=decode(:5,
      182/*DTYIYM*/,:7,183/*DTYIDS*/,:7,decode(:7,0,null,:7)),scale=decode(:5,2,
      decode(:8,-127/*MAXSB1MINAL*/,null,:8),178,:8,179,:8,180,:8,181,:8,182,:8,
      183,:8,231,:8,null),null$=:9,fixedstorage=:10,segcollength=:11,col#=:12,
      property=:13,charsetid=:14,charsetform=:15,spare1=:16,spare2=:17,spare3=:18,
      deflength=decode(:19,0,null,:19),default$=:20
    where
     obj#=:1 and name=:2
    
    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          3          2           1
    Fetch        0      0.00       0.00          0          0          0           0
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        2      0.00       0.00          0          3          2           1
    
    Misses in library cache during parse: 1
    Misses in library cache during execute: 1
    Optimizer mode: CHOOSE
    Parsing user id: SYS   (recursive depth: 1)
    Number of plan statistics captured: 1
    
    Number of plan statistics captured: 1
    
    Rows (1st) Rows (avg) Rows (max)  Row Source Operation
    ---------- ---------- ----------  ---------------------------------------------------
             0          0          0  UPDATE  COL$ (cr=3 pr=0 pw=0 time=136 us)
             1          1          1   TABLE ACCESS CLUSTER COL$ (cr=3 pr=0 pw=0 time=22 us cost=2 size=6
    0 card=1)
             1          1          1    INDEX UNIQUE SCAN I_OBJ# (cr=2 pr=0 pw=0 time=10 us cost=1 size=0
     card=1)(object id 3)
    
    ********************************************************************************
    
    SQL ID: 4yyb4104skrwj Plan Hash: 3272417377
    
    update obj$ set obj#=:4, type#=:5,ctime=:6,mtime=:7,stime=:8,status=:9,
      dataobj#=:10,flags=:11,oid$=:12,spare1=:13, spare2=:14
    where
     owner#=:1 and name=:2 and namespace=:3 and remoteowner is null and linkname
      is null and subname is null
    
    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          3          1           1
    Fetch        0      0.00       0.00          0          0          0           0
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        2      0.00       0.00          0          3          1           1
    
    Misses in library cache during parse: 0
    Optimizer mode: CHOOSE
    Parsing user id: SYS   (recursive depth: 1)
    Number of plan statistics captured: 1
    
    Rows (1st) Rows (avg) Rows (max)  Row Source Operation
    ---------- ---------- ----------  ---------------------------------------------------
             0          0          0  UPDATE  OBJ$ (cr=3 pr=0 pw=0 time=54 us)
             1          1          1   INDEX RANGE SCAN I_OBJ2 (cr=3 pr=0 pw=0 time=12 us cost=3 size=85
    card=1)(object id 37)   # I_OBJ2的索引的信息
    
    

    总结

    1、故当我们修改扩展char字段长度时,如果表的数据非常大,实际上是对表中的每一行数据做了update操作,相关索引也会重建,操作慢,容易引发数据库IO问题。最好在停机窗口操作。谨慎操作。
    2、在使用char,需要符合此字段的特性。最好是固定长度的数据值,如果不足,用空格补齐,则在写SQL时用trim函数格式化,会引起SQL性能问题。 一个处理思路是: SQL中使用空格补齐的迂回战术 。
    根本解决是:数据库表设计时,就符合使用这个char类型的特性。好的设计是成功的一半。

    展开全文
  • 关于char、varchar、varchar2 1、varchar2 把所有字符都占两字节处理(一般情况下),varchar只对汉字全角等字符占两字节,数字,英文字符等都是一个字节; 2、varchar2 把空串等同于null处理,而varchar仍按照...
    oracle
    关于char、varchar、varchar2
    1、varchar2 把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;
    2、varchar2 把空串等同于null处理,而varchar仍按照空串处理;
    3、varchar2 字符要用几个字节存储,要看数据库使用的字符集;
    4、大部分情况下建议适用varchar2类型,可以保证更好的兼容性;
    5、char的长度是固定的,varchar2的长度是可以变化的;
    6、char的效率比vharchar2的效率稍高。

    java
    String ,StringBuilder,StringBuffer三者的区别

    首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > StringString为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

    在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的

    适用范围:
    String:适用于少量的字符串操作的情况
    StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
    StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况

    展开全文
  • 浅析Oracle中char和varchar2区别 电脑资料 char是定长的 char10) varchar2(10) 同样存 a char占用了10个字符varchar2 只占用了 一个字符一个中文占两个字符英文占一个 但是char的查询速度要比varchar2快varchar2...
  • char和varchar2、varchar的区别 1、char是长度固定的类型,varchar2是动态变化的,譬如:存在字符串"abcde",对于一个大小为char(20)而言,它将存储20个字符,但是有15个是空字符,而varchar(20)则是占用3个字节的...
    char和varchar2、varchar的区别
    1、char是长度固定的类型,varchar2是动态变化的,譬如:存在字符串"abcde",对于一个大小为char(20)而言,它将存储20个字符,但是有15个是空字符,而varchar(20)则是占用3个字节的长度,20只是能存储的最大值。
    2、char的效率比varchar2稍微高点。
    3、varchar是varchar2的同义词,varchar2是oracle自己开发的一个数据类型。


    何时用char或varchar?

    1、首先明确,varchar2比char节省空间,但效率稍差,所以想获得效率就会牺牲一定的空间,即”以空间换效率“;
    2、当一个字段经常被修改,而且每次修改的数据长度不同,此时用char代替varchar2,尽量避免"行迁移"现象。

    转载于:https://www.cnblogs.com/dengshiwei/p/4258637.html

    展开全文
  • 一、CHAR和 VARCHAR区别? 1、CHAR有固定的长度,VARCHAR属于可变长度的字符类型。 2、比如,写入内容到CHAR(10)里,如果内容占用的空间不够10,则会用空格字符补足。 二、CHAR和 VARCHAR的优缺点? CHAR:...
  • 1.char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的字节空间 2.超过char和varchar的n设置后,字符串会被截断。 3.char的上限为255字节,varchar的上限...
  • 以下是对Oracle中char和varchar2区别进行了分析介绍,需要的朋友可以过来参考下
  • char和varchar区别

    2021-02-26 19:59:05
    区别一:char的长度是可变的,varchar是不可变的。 字段b:类型char(10),值为:abc,存储为:abc (abc+7个空格) 字段d:类型varchar(10),值为:abc,存储为:abc (自动变为3个的长度) 区别二:char最多可以...
  • 数据库的char和varchar区别 1) char的长度是不可变的,而varchar的长度是可变的。 也就是说,定义一个char[10]和varchar[10],如果存进去的 是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟...
  • char和varchar和varchar的区别

    千次阅读 2016-09-20 17:30:51
    char和varchar 1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (10),表示你存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR2 (10)则只占用3个字节的长度,10...
  • char和varchar区别 varchar的长度是可变的,char的长度不可变。 获取数据时,char需要使用trim()方法去空格,但是varchar不需要。 存储时,char类型的数据要比varchar类型的数据更快。因为其长度固定,方便存储于...
  • 2.同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。(varchar中的另外1个字节记录字符串的长度) 3.超过char和...
  • 1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字全角等字符占两字节,数字,英文字符等都是一个字节; 2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理; 3.VARCHAR2字符要用几个字节...
  • 数据库中数据类型字符串用到的最多,而我们在选择数据类型的时候,往往会碰到到底选项哪种字符串比较合适,而这些问题,我碰到的次数蛮多,也一直纠结与此,不断的在忘记复习...2, Oracharchar,varchar2及其...
  • CHAR和VARCHAR区别

    2020-06-03 16:52:00
    2、定义一个char[10]和varchar[10],如果存进去的是‘abcd’,那么char所占的长度依然为10,除了字符‘abcd’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,...
  • mysql中char和varchar区别 字符串是mysql中最长用的数据类型了。 varchar数据的特点: 长度可变,性能差一点。长度是64k。varchar需要额外的一到两个字节来存放varchar中数据的长度。如果长度大于255的话就需要...
  • 在建立数据库表结构的时候,为了给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,今天想总结一下它们两者的区别 1. char的长度是不可变的 varchar的长度是可变的 2....
  • 知识点:char(M) varchar(M),M...char(10)和varchar(10)存储 “中国” 前者依旧会分配10个字符长度,后者只会分配2个字符长度 2char比varchar更耗费空间 3、但是char比varchar存储性能高 所以:变化比较大的用v...
  • char和varchar区别

    千次阅读 2018-04-03 14:39:01
    一 char和varchar有什么区别?1.char的长度是固定的,而varchar的长度是可以变化的。 比如,存储字符串“abc",对于CHAR (10),表示你存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR2 (10)则只占用...
  • char varchar区别

    2017-11-16 09:32:37
    varchar 保存了可变长度的字符串,是使用较多的字符串类型。它比固定长度类型占用更少的...varchar使用额外的1到2字节来存储值得长度。如果列的最大长度小于或等于255,则使用1字节,否则使用2字节。 varchar的灵活
  • CHAR和VARCHAR区别

    千次阅读 2018-11-18 15:03:14
    //CHAR和VARCHAR区别  1)Char固定长度 ;  2)Varchar可变长度 ;  3)Char如果存入数据的实际长度比指定长度要小 会补空格至指定长度 如果存入的数据的实际长度大于指定长度 低版本会被截取 高版本会报错;  4)...
  • 2. 长度是否可变 CHAR是定长的,这意味着,当你定义的字段类型是CHAR(32),那么无论你存1个还是10个字符,数据库都是分配32个字符的空间。而后面没用完的,就用空格填充。 VARCHAR是变长的,这意味着,当你定义...
  • 1. char类型的长度是固定的,varchar的长度是可变的。... 使用varchar2(10),,则表示只占3个字节,10是最大值,当存储的字符小于10时,按照实际的长度存储。 2.char类型的效率比varchar的效率稍高 3.varchar...
  • char的长度是固定的,varchar2长度是可以变化的。比如:存储的是“abc”,对于char(20)来说,表示你存储的占20个字节(包括17个空字符);而对于varchar2(20)来说,表示你存储的占3个字节,其中允许存储的最大字节...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,008
精华内容 403
关键字:

char和varchar2区别