ORACLE第六章8176

上传人:无*** 文档编号:246737899 上传时间:2024-10-15 格式:PPTX 页数:37 大小:2.11MB
返回 下载 相关 举报
ORACLE第六章8176_第1页
第1页 / 共37页
ORACLE第六章8176_第2页
第2页 / 共37页
ORACLE第六章8176_第3页
第3页 / 共37页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第六章数据库对象(表,视图,索引),课程目标,熟练掌握SQL语言进行表的创建,掌握表的约束条件,掌握如何创建视图,掌握如何常见索引,数据库对象简介,Oracle 数据库对象又称模式对象,数据库对象是逻辑结构的集合,最基本的数据库对象是表,其他数据库对象包括:,数据库对象,同义词,序列,视图,索引,表空间,表空间的概念,Oracle数据库的物理文件是指存储在磁盘上的数据文件、控制文件和日志文件的总称。,表空间是为了统一Oracle物理和逻辑上的结构而专门建立的,从物理上来说,一个表空间是由具体的一个或多个物理文件构成的,从逻辑上来说一个表空间是由具体的一个或多个用户模式下的表、索引等数据构成。,在Oracle中表不可能单独存在,一定隶属于某一个用户,而某用户的数据必定存在于某个表空间中。,在Oracle中数据的范围从小到大的顺序依次是:,字段值,记录值,表数据,用户,表空间,Oracle,Oracle中创建表常用的数据类型,Oracle中创建表常用的数据类型,名称,含义,CHAR,用于描述定长的字符型数据,长度小于等于,2000,字节。,VARCHAR2,用于描述变长的字符型数据,长度小于等于,4000,字节。,NCHAR,用来存储,Unicode,字符集的定长字符型数据,长度小于等于,1000,字节。,NUMBER,用来存储整型或者浮点型数值。,DATE,用来存储日期数据。,LONG,用来存储最大长度为,2GB,的变长字符数据。,RAW,用来存储非结构化数据的变长字符数据,长度小于等于,2000,字节。,LONG RAW,用来存储非结构化数据的变长字符数据,长度小于等于,2GB,。,BLOB,用来存储多达,4GB,的非结构化的二进制数据。,UROWID,用来存储表示任何类型列地址的二进制数据。,FLOAT,用来存储浮点数。,表5-1数据类型表,建表,创建一张表,并往里插入一条数据,create table stu,(,id number(6),name varchar2(20),sex number(1),age number(3),sdate date,grade number(2)default 1,class number(4),email varchar(50)-最后没有“,”,),修改表的结构,修改表结构:已经有一张表了,但是往了某一条字段,使用,alter,修改现有表的结构,添加addr字段-add(),alter table stu add(addr varchar2(100);,删除某一个字段-drop(),alter table stu drop(addr);,修改某个字段-modify(),alter table stu modify(addr varchar2(50);,注意,:,*修改后的新的精度必须能够容纳原来有的数据,表的约束,表的约束分为:主键约束(PRIMARY KEY,)可以唯一标识整条记录的这样的一个东西,非空约束:表明该字段不能为空(not null),唯一约束-在这个字段里面所有的记录不能取重复的值,每个值必须是唯一的,(unique),表的约束,外键约束(,foreign key,):是建立在两个字段上,某一个字段会参考另外一个字段里面的值,如果另外一个字段里面,检查约束(check),约束种类,字段级的约束:把约束条件+在字段名的(只有非空约束可以加在字段级别的约束),表级的约束:+在所有字段名的最后面,主键约束,例1,alter table stu,add constraint stu_key,primary key(id);,唯一约束,例1,alter table stu,add constraint stu_email unique(email),外键约束,例1,alter table stu,add constraint stu_class_fk foreign key(class)references class(id),检查约束,例1,Create table person(,id varchar2(10),Name varchar2(10),Gender char(1),Age number,Constraint person_gender_ck,Check(gender=f),Constraint person_age_ck,Check(age between 18 and 35);,如何查看约束,通过查看数据字典表USER_CONSTRAINTS,C:代表CHECK约束和NOT NULL约束,P:代表PRIMARY KEY约束,R:代表FOREIGN KEY约束,U:代表UNIQUE约束,如何去删除约束,去掉约束条件-drop constraint+约束名,如何去修改约束,修改约束条件:一般很少去修改约束条件,修改的方法是把原来的删掉,然后再添加个新的,。,视图概念,它就是一张虚表,严格意义来讲:视图就是一个子查询,它不是真正意义上的表,是又SQL语句各个字段临时组成的表。,视图,视图以经过定制的方式显示来自一个或多个表的数据,视图可以视为“虚拟表”或“存储的查询”,创建视图所依据的表称为“基表”,视图的优点有:,提供了另外一种级别的表安全性,隐藏的数据的复杂性,简化的用户的SQL命令,隔离基表结构的改变,通过重命名列,从另一个角度提供数据,创建视图,Create(or replace)view 视图名(别名)as 子查询语句,(with check option constraint 约束名)(with read only),创建视图,建立学生表的视图,create view v$_stu as select id,name,age from stu;,注意:要确定视图必须有用的时候才考虑建视图,视图是可以更新数据的,但是我们很少这么去用它,创建视图,创建视图的语法:,CREATE OR REPLACE FORCE VIEW,view_name(alias,alias.),AS select_statement,WITH CHECK OPTION,WITH READ ONLY;,创建视图,studno,studname,studmarks,subno,studcaste,1,Rob,45,2,Open,2,James,33,4,SC,3,Jesica,40,5,Open,Stud_details,Stud_view,studno,studname,subno,1,Rob,2,2,James,4,3,Jesica,5,创建视图,CREATE VIEW stud_view,AS SELECT studno,studname,subno,FROM Stud_details;,创建视图,使用 WITH CHECK OPTION 选项创建视图,CREATE OR REPLACE VIEW pause_view AS,SELECT*FROM order_master WHERE ostatus=p,WITH CHECK OPTION CONSTRAINT chk_pv;,联接视图,Studno,Studname,Submrks,Subno,1,Rob,45,2,2,James,33,4,3,Jesica,40,4,Subno,Subname,2,English,4,Maths,5,Science,Stud_details,Sub_details,Studno,Studname,Submrks,Subname,1,Rob,45,English,2,James,33,Maths,3,Jesica,40,Maths,CREATE VIEW Stud_sub_view AS,SELECT Studno,Studname,Submrks,Subname,FROM Stud_details,Sub_Details,WHERE Stud_details.Subno=Sub_details.Subno;,Stud_sub_view,联接视图,联接视图,创建外联接视图,CREATE VIEW ven_ord_outj_view AS,SELECT vm.vencode,venname,orderno,odate,ostatus,FROM vendor_master vm,order_master om,WHERE vm.vencode=om.vencode(+);,SELECT vm.vencode,venname,orderno,odate,ostatus,FROM vendor_master vm LEFT OUTER JOIN order_master om,ON vm.vencode=om.vencode;,视图上的DML语句,在视图上也可以使用修改数据的DML语句,如INSERT、UPDATE和DELETE,视图上的DML语句有如下限制:,只能修改一个底层的基表,如果修改违反了基表的约束条件,则无法更新视图,如果视图包含连接操作符、DISTINCT 关键字、集合操作符、聚合函数或 GROUP BY 子句,则将无法更新视图,如果视图包含伪列或表达式,则将无法更新视图,如何查看视图,通过数据字典表user_views来查看用户视图,修改视图,ORACLE中没有直接修改视图的办法,一般是重写SQL语句覆盖原来的视图,如何删除视图,DROP VIEW+视图名称,索引概念,也是一个新的数据库对象,索引就相当于我们字典里那个索引,索引的作用:你为某个字段建立索引,别人访问这个字段的时候效率会更高。注意:是读的时候效率会更高。索引的建立是读起来更快,修改起来更慢了(附加修改索引表)。,访问量特别大的时候,而且觉得效率比较低的时候,这个时候可以考虑建立索引,但是,,记住一点:不要轻易的建立索引。,索引,索引是与表相关的一个可选结构,用以提高,SQL 语句执行的性能,减少磁盘I/O,使用 CREATE INDEX 语句创建索引,在逻辑上和物理上都独立于表的数据,Oracle 自动维护索引,创建索引,创建索引:create index idx_stu_email on stu(email);,注意:当你给表里某个字段加约束的时候,比如主键约束,或者唯一约束,这个时候Oracle会帮你建立,查询索引,通过数据字典表user_indexes,select index_name from user_indexes;,删除索引,删除索引:drop index idx_stu_email;,总结,熟练掌握SQL语言进行表的创建,掌握表的约束条件,掌握如何创建视图,掌握如何常见索引,作业,创建一个表stuend(id,stuname,sex,class)?,给表student加主键约束,非空约束,检查约束,外键约束?,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!