《oracle方案对象管理.ppt》由会员分享,可在线阅读,更多相关《oracle方案对象管理.ppt(31页珍藏版)》请在三一办公上搜索。
1、,ORACLE 的体系结构ORACLE存储管理(管理表空间,管理数据文件)管理数据库(创建和删除,启动和关闭数据库)管理网络(监听程序和网络服务名的配置管理),方案对象管理,管理表管理索引管理视图管理同义词,序列 管理过程,函数,触发器,每个用户都拥有自己的方案,方案的名称与用户的名称相同但方案与用户是完全不同的概念;ORACLE用方案的方法将数据库按用户进行划分默认情况下,所有用户所创建的对象都位于自己的方案中ORACLE的各个级别的逻辑存储结构都是用户不能够操作的对象,用户可以直接操作的方案对象是表,索引,视图.,表是ORACLE数据库最基本的对象,其他许多数据库对象都以表为基础表对应于现
2、实世界中的对象(如部门和雇员等).进行数据库设计时,需要构造ER图,在将ER图转变成数据库对象时,实体和联系最终要转换成表.从用户角度来看,表中存储的数据的逻辑结构是一张二维表,即表由行,列两部分组成,表通过行和列来组织数据.通常称表中一行为一条记录,称表中的一列为一个列.,表和列的命名,当创建一个表时,必须给它赋予一个名称,还必须给各个列赋予一个名称.表和列的名称有如下要求长度必须在30个字节之内必须以一个字母开头能够包含字母,数值,下划线(_),英镑符号(#)和美元符号($).但ORACLE不顾里在名称中使用英镑和美圆 符号.每个列名称在一个表内必须是唯一的不能使用保留字表名称在名称空间内
3、是唯一的.,数据类型,为每个列选择合适的数据类型字符数据类型CHAR()NCHAR()VARCHAR2()NVARCHAR2()日期时间类型DATE数字数据类型NUMBER(,),大对象数据类型BLOBCLOBNCLOBBFILE二进制数据类型ROW()LONG ROW行数据类型ROWIDUROWID,字符数据类型CHAR():存储固定长度的字符串。在括号中的size规定了最大长度。允许的最大长度为2000字节,如果列值比定义的长度短,那么会在这些列值的尾部添加空格。NCHAR():NCHAR数据类型类似于CHAR,但它用来存储Unicode字符集数据。VARCHAR2():存储可变长度的字符
4、数据。括号中的size规定了最大长度。允许的最大长度为4000字节。与CHAR不同,如果在VARCHAR2列中插入的列值比规定的最大长度短,则不会在其后面添加空格。NVARCHAR2():存储可变长度的Unicode字符集的字符数据。允许的最大长度为4000字节。,日期时间数据类型DATE:存储日期和时间信息。可以存储的时间范围是从公元前4712年1月1日到公元9999年12月31日。DATE数据类型在内部存储年、月、日、时、分、秒值。可以使用参数NLS_DATE_FORMAT指定采用不同的格式来显示时间,或者通过TO_CHAR函数指定一个格式掩码来进行格式转换。,数字数据类型:数字数据类型存
5、储所有数值数据类型,如浮点型、整数型、分数、双精度数。NUMBER(,)存储零、整数和负数。Precision指总位数,并默认为最小为32位,scale指小数点右边的位数,并默认为0.,大对象数据类型存储大对象(Large Object,LOB)大对象可以大到232-1个数据块,如果数据块大小为8K,则该大对象大约为32TB。LOB是为文本、图像视频、音频和空间数据而设计的。当创建一个含有LOB列的表时,可以为LOB数据指定一个与表的其他部分不同的表空间和属性。CLOB:用来存储可变长度的字符数据。BLOB:用来存储可变长度的二进制数据。NCLOB:用来存储可变长度的二进制数据。BFILE:在
6、数据库外面存储可变长的二进制数据。,设计表,对于开发一个大型的管理信息系统,必须按照设计理论与设计规范对数据库进行专门的设计。按命名规范定义表名和列名,并且要有意义。对表和列的定义应该有注释使用范式理论对表进行规范列的定义应使用合适的数据类型和长度为了节省空间,应将允许NULL值的列定义在后面合理地规划表的位置。建表时应指定TABLESPACE选项,但是不要将表建到SYSTEM表空间上合理地规划表的大小。,创建表,创建表实际上就是在数据库中定义表的结构。表的结构主要包括:表与列的名称、列的数据类型、以及建立在表或列上的约束。基本语法格式:CREATE TABLE schema.table_na
7、me(column1 datatype1 DEFAULT exp1 column1_constraint,(column1 datatype1 DEFAULT exp1 column1_constraint,.table_constraint)ORGANIZITION HEAP|INDEX|EXTERNALPARTITION BYTABLESPACE tablespace_nameLOGGING|NOLOGGINGCOMPRESS|NOCOMPRESS;,为列指定数据类型和默认值为列或表定义完整性约束表的类型,如关系型(标准,按堆组织)、索引型、分区型等。分区及子分区信息用于存储表或索引的表空
8、间是否保留重做日志是否压缩,创建表,表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
9、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 UsersDROP COLUMN tmpcol_1;(4)将列设置为不可用。【例】将表Users中的列tmpcol_1设置为不可用:SQL ALTER TABLE UsersSET UNUSED(tmpcol_1);(5)删除不可用的列。【例】删
10、除表Users中所有的不可用列:SQL ALTER TABLE Users DROP UNUSED COLUMNS;,删除表,删除选项窗口,删除表,DROP TABLE语句删除表。【例】删除表Users:DROP TABLE Users;,插入数据,INSERT语句的基本使用方法如下所示:INSERT INTO(列名1,列名2,列名n)VALUES(值1,值2,值n);【例】向表Users中插入数据 INSERT INTO Users(UserId,UserName,UserType,UserPwd)VALUES(1,Admin,1,Admin);INSERT INTO Users(UserI
11、d,UserName,UserType,UserPwd)VALUES(2,Lee,1,Lee);INSERT INTO Users(UserId,UserName,UserType,UserPwd)VALUES(3,User,2,Users);INSERT INTO Users(UserId,UserName,UserType,UserPwd)VALUES(4,Zxh,2,Zxh);COMMIT;SELECT*FROM Users;,插入数据,运行结果 USERID USERNAMEUSERTYPE USERPWD-1 Admin1 Admin2 Lee1Lee3 User2 Users4 Z
12、xh2 Zxh,修改数据,UPDATE语句的基本使用方法如下所示:UPDATE SET 列名1=值1,列名2=值2,列名n=值nWHERE【例】将用户Admin的密码修改为111111:UPDATE Users SET UserPwd=111111 WHERE UserName=Admin;COMMIT WORK;SELECT UserName,UserPwd FROM Users;运行结果为:USERNAME USERPWD-Admin111111LeelEEUserUsersZxhZxh,删除数据,DELETE命令删除表中的数据:DELETE WHERE【例】删除表Users中列UserName等于空()的数据:DELETE FROM Users WHERE UserName=;COMMIT WORK;,