- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6讲_模式对象
6.3 索引 索引是用于加速数据存取的数据对象。合理的使用索引可以大大降低I/O次数,从而提高数据访问性能。 索引的分类: 按照索引列值的唯一性,可分为唯一索引和非唯一索引; 按照数据存储方式,可以分为B*树,反向索引,位图索引; 按照索引列的个数分类,可分为单列索引,复合索引; 此外,还有函数索引,全局索引,分区索引... 索引使用原则 在大表上建立索引才有意义; 在where子句或是连接条件上经常引用的列上建立索引; 索引的层次不要超过4层; Oracle会自动在PRIMARY KEY和UNIQUE约束列上创建唯一性索引。 索引 单列索引 单列索引是基于单个列所建立的索引,比如: create index 索引名 on 表名 (列名) 复合索引 复合索引时基于两列或是多列的索引。在同一张表上可以有多个索引,但是要求列的组合必须不同,比如: create index emp_idx1 on emp(ename,job); create index emp_idx1 on emp(job, ename); 删除索引: delete 索引名 索引缺点分析 索引有一些先天不足: 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维护数据和索引的一致性。 比如在如下字段建立索引应该是不恰当的: 很少或从不引用的字段; 逻辑性的字段,如男或女(是或否) 所以,索引不能盲目建立,这是考验一个优秀DBA的重要指标。 实验内容 在scott模式下操作课本203页实训题(1)(5) * * Page ? * 6.模式对象 6.1 模式 6.2 表 6.3 索引 内容安排 6.1 模式 模式是指一系列逻辑数据结构或对象的集合。 模式与用户的关系 模式与用户相对应,一个模式只能被一个数据库用户所拥有,并且模式的名称与这个用户的名称相同。 通常情况下,用户所创建数据库对象都保存在与自己同名的模式中。 同一模式中数据库对象的名称必须惟一,而在不同模式中的数据库对象可以同名。 默认情况下,用户引用的对象是与自己同名模式中的对象,如果要引用其他模式中的对象,需要在该对象名之前指明对象所属模式。 6.2 表 6.2.1 创建表 6.2.2 表约束的管理 6.2.4 修改表 6.2.5 删除表 第3、6节不涉及 6.2.1 创建表 表名(table_name) 必须是合法标识符,长度为1~30 字节,并且以字母开头,可以包含字母(A~Z,a~z)、数字(0~9),下划线(_)、美元符号($)和井号(#)。此外,表名称不能是Oracle数据库的保留字 数据类型(datatype) 字符类型 数字类型 日期类型 LOB类型 二进制类型 行类型 oracle支持的数据类型 字符型 char:定长 最大2000字符。 例子:char(10) ‘小明’ 前四个字符放“小明”,后添6个空格补全 Varchar2(20):变长 最大4000字符。 例子:varchar2(10) ‘小明’ oracle分配四个字符,这样可以节省空间 oracle支持的数据类型 数字型 在Oracle中Number类型可以用来存储0,正负定点或者浮点数 number 范围 可以表示整数,也可以表示小数 Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数点右边的数字个数 例如:number(5,2) 表示一个小数有5位有效数,2位小数 范围-999.99999.99 number(p),相当于Number(p, 0) number(5)表示一个5位整数,-9999999999 oracle支持的数据类型 日期类型 date: 包括年月日、时分秒 timestamp:oracle9i对date数据类型的扩展 Oracle中的格式“12-7月-2009” LOB类型 blob 二进制数据,可以存放图片,视频,声音 4G clob用于存储可变长度的字符数据,如文本,最大可4G 表的创建 //创建一个Student表 create table student( ——表名 ??? xh number(4), ——学号 ??? xm varchar2(20), ——姓名 ?? ?sex char(2), ——性别 ?? ?birthday
文档评论(0)