oracle方案对象管理
,ORACLE 的体系结构 ORACLE存储管理(管理表空间,管理数据文件) 管理数据库(创建和删除,启动和关闭数据库) 管理网络(监听程序和网络服务名的配置管理),方案对象管理,,,管理表 管理索引 管理视图 管理同义词,序列 管理过程,函数,触发器,,每个用户都拥有自己的方案,方案的名称与用户的名称相同 但方案与用户是完全不同的概念; ORACLE用方案的方法将数据库按用户进行划分 默认情况下,所有用户所创建的对象都位于自己的方案中 ORACLE的各个级别的逻辑存储结构都是用户不能够操作的对象,用户可以直接操作的方案对象是表,索引,视图.,,表是ORACLE数据库最基本的对象,其他许多数据库对象都以表为基础 表对应于现实世界中的对象(如部门和雇员等).进行数据库设计时,需要构造ER图,在将ER图转变成数据库对象时,实体和联系最终要转换成表. 从用户角度来看,表中存储的数据的逻辑结构是一张二维表,即表由行,列两部分组成,表通过行和列来组织数据. 通常称表中一行为一条记录,称表中的一列为一个列.,表和列的命名,当创建一个表时,必须给它赋予一个名称,还必须给各个列赋予一个名称.表和列的名称有如下要求 长度必须在30个字节之内 必须以一个字母开头 能够包含字母,数值,下划线(_),英镑符号(#)和美元符号($).但ORACLE不顾里在名称中使用英镑和美圆 符号 . 每个列名称在一个表内必须是唯一的 不能使用保留字 表名称在名称空间内是唯一的.,数据类型,为每个列选择合适的数据类型 字符数据类型 CHAR [()] NCHAR [()] VARCHAR2 () NVARCHAR2() 日期时间类型 DATE 数字数据类型 NUMBER[([,])],,大对象数据类型 BLOB CLOB NCLOB BFILE 二进制数据类型 ROW () LONG ROW 行数据类型 ROWID UROWID,,字符数据类型 CHAR [()]:存储固定长度的字符串。在括号中的size规定了最大长度。允许的最大长度为2000字节,如果列值比定义的长度短,那么会在这些列值的尾部添加空格。 NCHAR [()]: NCHAR数据类型类似于CHAR,但它用来存储Unicode字符集数据。 VARCHAR2 ():存储可变长度的字符数据。括号中的size规定了最大长度。允许的最大长度为4000字节。与CHAR不同,如果在VARCHAR2列中插入的列值比规定的最大长度短,则不会在其后面添加空格。 NVARCHAR2():存储可变长度的Unicode字符集的字符数据。允许的最大长度为4000字节。,,日期时间数据类型 DATE:存储日期和时间信息。可以存储的时间范围是从公元前4712年1月1日到公元9999年12月31日。 DATE数据类型在内部存储年、月、日、时、分、秒值。 可以使用参数NLS_DATE_AT指定采用不同的格式来显示时间,或者通过TO_CHAR函数指定一个格式掩码来进行格式转换。,,数字数据类型: 数字数据类型存储所有数值数据类型,如浮点型、整数型、分数、双精度数。 NUMBER[([,])] 存储零、整数和负数。 Precision指总位数,并默认为最小为32位,scale指小数点右边的位数,并默认为0.,,大对象数据类型 存储大对象(Large Object,LOB) 大对象可以大到232-1个数据块,如果数据块大小为8K,则该大对象大约为32TB。 LOB是为文本、图像视频、音频和空间数据而设计的。当创建一个含有LOB列的表时,可以为LOB数据指定一个与表的其他部分不同的表空间和属性。 CLOB:用来存储可变长度的字符数据。 BLOB:用来存储可变长度的二进制数据。 NCLOB:用来存储可变长度的二进制数据。 BFILE:在数据库外面存储可变长的二进制数据。,设计表,对于开发一个大型的管理信息系统,必须按照设计理论与设计规范对数据库进行专门的设计。 按命名规范定义表名和列名,并且要有意义。 对表和列的定义应该有注释 使用范式理论对表进行规范 列的定义应使用合适的数据类型和长度 为了节省空间,应将允许NULL值的列定义在后面 合理地规划表的位置。建表时应指定TABLESPACE选项,但是不要将表建到SYSTEM表空间上 合理地规划表的大小。,创建表,创建表实际上就是在数据库中定义表的结构。表的结构主要包括:表与列的名称、列的数据类型、以及建立在表或列上的约束。 基本语法格式: CREATE TABLE [schema.] table_name (column1 datatype1 [DEFAULT exp1] [column1_constraint], (column1 datatype1 [DEFAULT exp1] [column1_constraint], …… [table_constraint]) [ORGANIZITION {HEAP…|INDEX…|EXTERNAL…}] [PARTITION BY…] [TABLESPACE tablespace_name] [LOGGING|NOLOGGING] [COMPRESS|NOCOMPRESS];,,为列指定数据类型和默认值 为列或表定义完整性约束 表的类型,如关系型(标准,按堆组织)、索引型、分区型等。 分区及子分区信息 用于存储表或索引的表空间 是否保留重做日志 是否压缩,创建表,表Users的结构,创建表,【例】创建表Users,SQL语句如下: CREATE TABLE Users (UserIdNumber Primary Key, UserName Varchar2(40) NOT NULL, UserType Number(1), UserPwd Varchar2(40) );,创建表,管理页面,创建表,表管理页面,创建表,选择方案,创建表,选择表组织,创建表,表管理器,修改表,查看和编辑表Users中的数据,修改表,ALTER TABLE语句修改表 (1)添加列。 【例】在表Users中添加一个列tmpcol: SQL> ALTER TABLE Users ADD (tmpcol NUMBER(5,2)); (2)修改列名。 【例】将表Users中tmpcol列的名称修改为tmpcol_1: SQL> ALTER TABLE Users RENAME COLUMN tmpcol TO tmpcol_1;,修改表,(3)删除列。 【例】将表Users中的列tmpcol_1删除: SQL> ALTER TABLE Users DROP COLUMN tmpcol_1; (4)将列设置为不可用。 【例】将表Users中的列tmpcol_1设置为不可用: SQL> ALTER TABLE Users SET UNUSED (tmpcol_1); (5)删除不可用的列。 【例】删除表Users中所有的不可用列: SQL> ALTER TABLE Users DROP UNUSED COLUMNS;,