1.字符型:存储字符串数据
char(n): 标识固定长度的字符串(无论实际用多少,都会会按最大值占用内存,因为要自动补全)
n 的取值: 1<n<2000 个字节(中英文字节数不同,无法按个数计算)。
实际值占有的字节数< n:系统自动用空格补全右边
实际值占有的字节数> n: 禁止插入数据库
varchar(n): 可变字符串类型(长度不固定)
允许存储空字符串,SQL标准规定的,数据库必须实现的数据类型
实际空间数< n: 不会像char类型在其最右边补全空格,减少实际占用的资源
实际空间数> n:禁止插入数据库
varchar2(n): 可变字符串类型
不允许存储空字符串,转为NULL存储;oracle自定义的数据类型,为保证oracle 数据库的兼容性,建议采用该数据类型而不是varchar
当用作列类型:max(n) =4000 (字节)
当用作变量类型:max(n) = 32767 (字节)
实际值 >n : 禁止插入数据库
2.数值型(number):存储整数、浮点数
varchar2(n): 可变字符串类型
n 代表数据位数
精度:数值中有效数字的总位数,整数部分和小数部分最大位数为38
小数位数:小数点之后的有效位数
number(7,2): 7代表整数部分和小数部分的总位数为7,故整数部分实际为5位,小数部分为2位。
number(23): 数据个数为23个,只有整数部分,没有小数部分
3.日期型:存储日期、时间
Century: 世纪信息
4.大对象型:存储大量文本信息、二进制文件
最大容量:4GB
clob: 存储文本信息,备注信息
blob: 存储二进制数据、图片信息
bfile: 存储单独的文件
5.特殊数据类型
rowid: 标识每一行记录在数据库中物理地址,
系统自动添加的一列;只能在数据内部使用;通常为10 个字节
该列的数值是唯一的,一般没有排序标准时,rowid作为默认排序标准
不能作为记录插入数据表
rowid 位置靠后的数据不一定是最后插入的,如果前面有删除的记录,系统总是查找空闲的空间进行插入
null 与空字符串: oracle 将空字符串视为null
插入NULL 或 ’ ’ 对oracle数据库而言都为空,是没有区别的
在比较时判断某字符串是否为空:使用 is null (is not null)
使用where name =’ ’ ** 是无法查询到数据的,因为在存储时‘ ’** 已被转为NULL
单引号与双引号:
单引号: 界定字符串
表示单引号本身:’’’ 账单 ‘’’’ 显示结果为:‘账单’
为什么要使用三个==’== 开头和三个==’==结尾?
第一个: 字符串界定符
第二个: 转义符
第三个: 被转义的字符
(只有单引号才会有此限制使用三个**‘**)
双引号: 标识对象名称
在oracle中默认**列名** 不允许有空格,但是使用双引号标识该对象却可以实现有空格:
alter table order_test rename column place to == “place name”==
**==注意==**:
在==列名==上施加一个双引号,会禁止系统将列名转为大写,在写查询的时候也必须加双引号列名。