


10、 Oracle 基本操做
1 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 类型
用于存储二进制或字符类型数据,必须制定长度。这种数据类型存储的数据不会发生字
符集转换。可存放多媒体图象声音等。
2 在 Oracle 中建立表
2.1Oracle 表名命名规则
必须以字母开头
长度不能超过 30 个字符
避免使用 Oracle 的关键字
只能使用 A-Z、a-z、0-九、_#$
2.2使用带有特殊符号的表名
Oracle 在建立表时,表名会自动转换大写。Oracle 对表名大小写不敏感。
若是在定义表名时含有特殊符号,或者用小写字母来定义表名则须要在表名两侧添加双
引号。
3 数据库中的约束
3.1约束的做用
约束用于规定表中的数据规则,若是存在违反约束的数据行为,行为会被约束终止。
3.2约束类型
3.2.1主键约束(Primay Key Constraint)
惟一性,非空性。
3.2.2惟一约束 (Unique Constraint)
惟一性,能够空,但只能有一个。
3.2.3检查约束 (Check Constraint)
对该列数据的范围、格式的限制(如:年龄、性别等)。
3.2.4非空约束 (Not Null Constraint)
该列不容许包含空值。
3.2.5外键约束 (Foreign Key Constraint)
须要创建两表间的关系并引用主表的列。
4 数据库中表关系
设计关系数据库的一个重要部分是将数据元素划分为相关的表,咱们能够根据数据自己
的关联性,将不一样表之间的数据聚合在一块儿。注意:不管在表与表之间创建了什么样的关系,
决定数据之间是否有关系的不是表,而是数据自己。
表与表之间通常存在三种关系,即一对一,一对多,多对多关系。
4.1一对多
一对多关系是创建在两张表之间的关系。一个表中的一条数据能够对应另外一个表中的多
条数据。记住:外键永远在多方。外键容许重复,容许含有空值。




4.1.2T_STUDENT 表

4.2一对一
4.2.1T_USER 表

4.2.2T_ROLE 表


4.3多对多
须要创建一个中间表,中间表里创建两个列,而后须要用这两个列做为这个表的联合主
键,而后每一个列在做为外键参照各自的表的主键
4.3.1T_ORDER 表


4.3.2T_ITEM 表
4.3.3T_ORDER_ITEM 表