目录
CHAR与VARCHAR2类型
CHAR 存放定长字符,即存不满补空格 VARCHAR2存放变长字符 ,存多少占用多少空间。
如”HELLOWORLD”字符串,共10个英文字母
1)CHAR(100):10个字母,补齐90个空格,实际占用100
2)VARCHAR2(100):10个字母,实际占用10
3)CHAR与VARCHAR都是按照字符的自然排序。
CHAR和VARCAHR2的存储编码
**默认单位是字节,可指定为字符**
1)CHAR(10),等价于 CHAR(10 BYTE)
2)指定单位为字符:CHAR(10 CHAR),20 个字节
3)VARCHAR2(10),等价于VARCHAR2(10 CHAR),20个字节
**每个英文字符占用一个字节,每个中文字符按编码不同,占用2-4个字节**
--ZHS16GBK:2个字节
CHAR和VARCHAR2的最大长度
1)CHAR最大保存取值为2000字节
最多2000个英文字符,1000个中文字符(GBK)
2)VARCHAR2最大取值为4000个字节
最多保存4000个英文字符,2000个汉字(GBK)
3)CHAR可以不指定长度,默认为1,VARCHAR2必须指定长度
LONG和CLOB类型
1)LONG:VARCHAR2加长版,存储变长字符串,最多达2GB的字符串数据
2)LONG有诸多限制:每个表只能有一个LONG类型列;不能作为主键;不能建立索引;不能出现在查询条件中........
3)CLOB:存储定长或变长字符串,最多达4GB的字符串数据
4)ORACLE建议开发中使用CLOB替代LONG类型
eg:`
CREATE TABLE student(
id NUMBER(4),
name CHAR(20),
detail CLOB);