一 Oracle 中的数据类型
1.1字符类型
字符串数据类型还可以依据存储空间分为固定长度类型(CHAR) 和可变长度类型
(VARCHAR2/NVARCHAR2)两种。
1.1.1CHAR 类型
CHAR 类型,定长字符串,会用空格填充来达到其最大长度。非 NULL 的 CHAR(12)
总是包含 12 字节信息。CHAR 字段最多可以存储 2,000 字节的信息。如果创建表时,不指
定 CHAR 长度,则默认为 1
1.1.2VARCHAR2 类型
变长字符串,与 CHAR 类型不同,它不会使用空格填充至最大长度。VARCHAR2 最多
可以存储 4,000 字节的信息。
1.1.3NVARCHAR2 类型
这是一个包含 UNICODE 格式数据的变长字符串。 NVARCHAR2 最多可以存储 4,000
字节的信息。
1.2数字类型
1.2.1NUMBER 类型
NUMBER(P,S)是最常见的数字类型。
P 是 Precision 的英文缩写,即精度缩写,表示有效数字的位数,最多不能超过 38 个有
效数字。
S 是 Scale 的英文缩写,表示小数点数字的位数。
1.2.2INTEGER 类型
INTEGER 是 NUMBER 的子类型,它等同于 NUMBER(38,0),用来存储整数。若插
入、更新的数值有小数,则会被四舍五入。
1.3浮点数
1.3.1BINARY_FLOAT 类型
BINARY_FLOAT 是 32 位、 单精度浮点数字数据类型。可以支持至少 6 位精度,每个
BINARY_FLOAT 的值需要 5 个字节,包括长度字节。
1.3.2BINARY_DOUBLE
BINARY_DOUBLE 是为 64 位,双精度浮点数字数据类型。每个 BINARY_DOUBLE
的值需要 9 个字节,包括长度字节
1.4日期类型
1.4.1DATE 类型
DATE 是最常用的数据类型,日期数据类型存储日期和时间信息。虽然可以用字符或数
字类型表示日期和时间信息,但是日期数据类型具有特殊关联的属性。为每个日期值,Oracle
存储以下信息: 世纪、 年、 月、 日期、 小时、 分钟和秒。一般占用 7 个字节的存储空
间
1.4.2TIMESTAMP 类型
这是一个 7 字节或 12 字节的定宽日期/时间数据类型。它与 DATE 数据类型不同,因为
TIMESTAMP 可以包含小数秒,带小数秒的 TIMESTAMP 在小数点右边最多可以保留 9 位。
1.4.3TIMESTAMP WITH TIME ZONE 类型
这是 TIMESTAMP 类型的变种,它包含了时区偏移量的值
1.4.4TIMESTAMP WITH LOCAL TIME ZONE 类型
将时间数据以数据库时区进行规范化后进行存储
1.5LOB 类型
1.5.1CLOB 类型(Character Large Object)
二进制数据,存储单字节和多字节字符数据。最大长度 4G。
1.5.2BLOB 类型(Binary Large Object)
它存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一般
是图像、声音、视频等文件。最大长度 4G。
1.5.3NCLOB 数据类型
存储 UNICODE 类型的数据 ,最大长度 4G。
1.6LONG & RAW & LONG RAW 类型
1.6.1LONG 类型
它存储变长字符串(超长字符串),最多达 2G 的字符数据(2GB 是指 2 千兆字节, 而不
是 2 千兆字符)。
1.6.2LONG RAW 类型
能存储 2GB 的原始二进制数据,可存放多媒体图象声音等。
1.6.3RAW 类型
用于存储二进制或字符类型数据,必须制定长度。这种数据类型存储的数据不会发生字
符集转换。可存放多媒体图象声音等。
二 在 Oracle 中创建表
2.1Oracle 表名命名规则
必须以字母开头
长度不能超过 30 个字符
避免使用 Oracle 的关键字
只能使用 A-Z、a-z、0-9、_#$
2.2使用带有特殊符号的表名
Oracle 在创建表时,表名会自动转换大写。Oracle 对表名大小写不敏感。
如果在定义表名时含有特殊符号,或者用小写字母来定义表名则需要在表名两侧添加双
引号。
三 数据库中的约束
3.1约束的作用
约束用于规定表中的数据规则,如果存在违反约束的数据行为,行为会被约束终止。
3.2约束类型
主键约束(Primay Key Constraint)
唯一性,非空性。
唯一约束 (Unique Constraint)
唯一性,可以空,但只能有一个。
检查约束 (Check Constraint)
对该列数据的范围、格式的限制(如:年龄、性别等)。
非空约束 (Not Null Constraint)
该列不允许包含空值。
外键约束 (Foreign Key Constraint)
需要建立两表间的关系并引用主表的列。
四 数据库中表关系
设计关系数据库的一个重要部分是将数据元素划分为相关的表,我们可以根据数据本身
的关联性,将不同表之间的数据聚合在一起。注意:无论在表与表之间建立了什么样的关系,
决定数据之间是否有关系的不是表,而是数据本身。
表与表之间一般存在三种关系,即一对一,一对多,多对多关系。
4.1一对多
一对多关系是建立在两张表之间的关系。一个表中的一条数据可以对应另一个表中的多
条数据。记住:外键永远在多方。外键允许重复,允许含有空值。
4.2一对一
一对一关系是建立在一对多的基础之上,外键可以在任何一方,需要让外键一方具备唯
一约束
4.3多对多
需要建立一个中间表,中间表里建立两个列,然后需要用这两个列作为这个表的联合主
键,然后每个列在作为外键参照各自的表的主键