在Oracle中,表根据其系统级功能可分为如下5种类型:
- 标准表:最基础、最常用的数据库表类型,是在默认情况下创建的表。表种的数据按堆进行组织,以无序方式存放在单独的表段中
- 临时表:与标准表非常相似,但是临时表仅用来保存一个会话中的临时数据,当会话推出或者用户提交或回滚事务时,临时表中的数据自动被清空
- 索引表:用来增强检索性能的表,通常不会用来存储标准的数据,这种表以B树结构存放在索引段中
- 簇表:通常用来节省存储空间并提高SQL语句执行的性能,簇是由共享相同数据块的一组表组成的
- 分区表:将一个大的表划分成更小的分区,并存储到相应的分区段中,每个分区段可以独立管理和操作
表名和列名包含如下几个命名规则:
- 表名和列必须以字母开头,长度在1~30个字节之间,至少为一个字节
- 表名和列名中可以包含字母、数值、下划线(_)、美元($)和英镑符号(£),但是Oracle不建议在名称中使用英镑和美元符号
- 不能再表或列的命名中使用Oracle的保留字,比如 VARCHAR 或 INDEX 这类Oracle的保留字来进行命名
- 如果在表或列的命名时,名称被包围在双引号中,要求名称的长度在1~30个字符之间,并且不含有一个嵌入的双引号
- 在一个表中创建列时,列命名不能与表中其他的列重复,但是不同表之间的列命名是可以相同的
- 表在其名称空间中不能出现同名,表的名称空间包含表、视图、序列、专用同义词,在这些对象中只要出现了相同的命名就会创建失败
注意:表名和列表是不区分大小写的,在内部Oracle会将创建的表名称的列表转换为大写然后存储到Oracle数据字典表中
列数据类型
Oracle内置了多种列数据类型,这些类型根据存储数据的不同可以分为如下几种类型:
- 字符串类型,用来存储字符串类型的数据,包含 CHAR、NCHAR、NVARCHAR2、VARCHAR2 等数据类型
- 数值类型,用来存储整数或浮点数值,主要的数据类型时 NUMBER 及相关的子类型比如 INTER、FLOAT 等
- 日期时间类型,用来存储日期时间数值及时间段数值,它包含 DATE、TIMESTAMP、INTERVAL YEAR TO MONTH 等数据类型
- 大对象类型,用来存储大型二进制对象,比如大型文本、图像、声音或视频等数据,包含 CLOB、NCLOB、BLOG、BFILE 等类型
除了这些类型之外,Oracle还额外包含了两个非常重要的行数据类型 ROWID 和 UROWID ,这两个类型由Oracle隐式设定,一般不需要用户进行创建,Oracle中的内置类型如表所示:
数据类型 |
---|