一、oracle数据库的对象类型:
oracle数据库对象的类型:可以通过以下语句查询出来oracle数据库中所有对象的类型
>select object_type,count(object_type) from dba_objects
group by object_type order by object_type;
方案对象的命名规则:
- 对象的名称必须在1-30个字符之间,database link的命名比较特殊,最多可以取128个字符
- 保留字不能被用做对象名
- 所有对象的命名必须以字母开头
- 对象的名称只能包括字母,数字,下划线(_),美元符($)和井号(#)
- 小写的对象名称会自动的被转换为大写
--创建表的时候,oracle会把表名自动转换成大写,除非你用双引号
CREATE TABLE fanming (c1 DATE);
CREATE TABLE "fanming" (col1 VARCHAR2(2));
对象命名空间(object namespaces)
--在一个namespace(命名空间)中,所有对象的名称必须唯一
--下列的对象类型在一个命名空间内名称必须唯一:
tables, views, sequences, private synonyms, stand-alone procedures
stand-alone stored functions, packages, materialized views user-defined types '
下面这些对象类型有自己的命名空间
indexes, constraints, clusters, database triggers, private database links, dimensions
练习:
1、查询当前方案拥有的对象类型和数量:
SELECT object_type, COUNT(object_type) FROM user_objects
GROUP BY object_type ORDER BY object_type;
2、查询当前方案可以访问的对象类型和数量:
SELECT object_type, COUNT(object_type) FROM all_objects
GROUP BY object_type ORDER BY object_type;
3、查询当前用户可以访问对象的所有拥有着:
SELECT DISTINCT owner FROM all_objects;
二、列出在表中列可以是用的数据类型:
1、字符型数据
VARCHAR2: 变长字符数据,长度从1 byte 到4KB
NVARCHAR2: 变长字符数据,长度从1 byte 到 4KB,可以存储国际化字符类型
CHAR: 固定长度字符数据,长度从1byte 到 2KB
注:所有的VARCHAR数据类型会自动转变成VARCHAR2数据类型
2、数字型数据:
NUMBER:可以指定数据的精度,从1到38,数据的表示范围从-84到127
FLOAT: BINARY_FLOAT, BINARY_DOUBLE
INTEGER:整数类型,它的精度为0
3、日期型数据
DATE:包含世纪,年,月,日,小时,分,秒,范围从公元前4712年1月1日到公元后9999年12月31日,0-7位
TIMESTAMP:秒的精度到小数点后9位,默认的位6位,0-11位
TIMESTAMP WITH TIMEZONE:
TIMESTAMP WITH LOCAL TIMEZONE:
INTEERVAL YEAR TO MONTH:
INTERVAL DAY TO SECOND:
4、大对象数据类型:
CLOB:
NCLOB:
BLOB:
BFILE:
LONG:
LONG RAW:
5、RAW和ROWID数据类型
练习:
1、查看某张表的数据结构:
SELECT column_name,data_type,nullable,data_length,data_precision,data_scale
FROM user_tab_columns WHERE table_name = 'EMPLOYEES';
三、建立一张简单表
表在数据库中存储有多种类型:
1、堆组织表(heap table):常用的表类型,以堆的方式管理,当增加数据时,将使用段中第一个适合数据大小的空闲空间;当删除数据时,留下的空间允许以后的DML操作重用。
2、索引组织表(index organized tables):这些表按索引结构存储。这就强制要求行本身有某种物理顺序。索引组织表IOT中,数据要根据主键有序地存储。
3、索引聚簇表(index clusters):聚簇(cluster)是指一个或多个表组成的组,这些表物理地存储在相同的数据库块上,有相同聚簇键值的所有行会相邻地物理存储。
4、散列聚簇表(hash clusters)
5、分区表(partitioned tables)
6、嵌套表:
7、临时表:
8、对象表:
9、聚簇表: