第四讲 数据库对象(视图、序列、同义词、索引)

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

1 第 5 章 SQL 语句基础 在 Oracle 数据库中,为了方便管理用户所创建的 数据库对象,引入了模式的概念,这样用户所创建的 数据库对象就都属于该用户模式。对于一般的用户而 言,数据库中的数据是以表、视图行等方式存储的( 表和视图就是最基本的用户模式对象),用户只需要 根据自己的需求查询数据库,然后由数据库根据请求.
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
2011/11,12 南台資管 吳昭儀. 1. 使用者介面 (User Interface)  使用者操作畫面的安排  Textbox, ComboBox, ListBox, CheckList, … 2. 流程控制 (Process Control)  使用者輸入資料檢查  計算  資料輸出.
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
《 ORACLE 》 计算机技术与软件工程学院 胡斌 学习情境 6 系统安全管理( 8 学时) 按照系统的职能范围不同,可将Oracle的安全体系 结构分成三个部分; (1)数据库内部的管理:主要包括用户标识/口令 ;角色与权限等。 (2)资源管理:主要通过系统概要文件限制连接 会话等。 ( 3.
第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
關聯查詢.
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
十一 ASP对数据库的访问.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
第四章 数据库对象.
第3章 SQL语言初步 2017/3/14.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第14章 預存程序 14-1 預存程序的基礎 14-2 建立與執行預存程序 14-3 預存程序的參數傳遞 14-4 預存程序的傳回值
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
第4讲 MySQL服务器的配置与应用.
Chap 13 視界與資料庫程式設計.
计算机应用基础 上海大学计算中心.
An Introduction to Database System
数据库应用与程序设计.
第五讲 利用视图进行查询优化.
Oracle数据库入门.
数据库技术 第十章 数据库完整性 中国科学技术大学网络学院 阚卫华.
第四章:触发器   触发器类似于过程、函数,因为它们都是拥有说明部分、语句执行部分和异常处理部分的有名的PL/SQL块。与包类似,触发器必须存储在数据库中,并且不能被块进行本地化说明。但是,对于过程而言,可以从另一个块中通过过程调用显式地执行一个过程,同时在调用时可以传递参数。对于触发器而言,当触发事件发生时就会显式地执行该触发器,并且触发器不接受参数。
課程名稱:資料庫系統 授課老師:李春雄 博士
数据库技术 第三章 关系数据库标准语言SQL 中国科学技术大学网络学院 阚卫华.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
第 11 章 建立檢視表.
題庫解析:MTA資料庫檢定 授課老師:李春雄 博士
第16讲 数据库系统的增强安全性 第7章:数据库系统的增强安全性.
Transact-SQL 語言設計教學.
第 16 章 觸發程序.
实验 2:MS Access QBE Query使用
第9章 SQL Server的数据库保护技术 教学目标:通过本章学习,了解SQL Server的安全体系结构的含义和安全认证模式的分类;掌握SQL Server登录账号、用户账号及角色的创建方法;熟悉权限的分类,掌握对象权限和语句权限的管理方法;明确SQL Server中数据完整性的种类,掌握数据完整性实现的具体方法;熟悉SQL.
第三章:包   包(package)是一个可以将相关对象存储在一起的PL/SQL结构。包包含了两个分离的部件------包说明(specification)和包主体(body)。每个部件都单独被存储在数据字典中。包只能存储在数据库中,不能是本地的。除了可以将相关对象作为一组存在一起以外,包也是十分有用的,因为它们在依赖性方面的限制是比较小的。也有许多性能上的优点。
第6章 SQL Server权限管理 6.1 SQL Server权限管理策略 6.2 用户权限管理 上一章 返回目录.
国家“十一五”规划教材 数据库原理与应用教程(第3版).
实验4:PL-SQL编程 1.实验目的 2.实验原理 PL/SQL是一种过程化语言,属于第三代语言,本实验在与熟悉使用PL/SQL编程.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
数据库技术.
第 五 章 数据库安全策略 1.
第20章 MySQL数据库.
数据库技术与应用.
ORACLE 第九讲 触发器.
An Introduction to Database System
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
CS, ZJU 4/18/2019 Chapter 7 数据库.
第 15 章 自訂函數與順序物件.
查询与视图 蔡海洋.
SQL查询语句 蔡海洋.
第三章 SQL Server数据管理.
第六類 資料庫備份與回復.
第 7 章 建立資料表與資料庫圖表.
第9章 视 图 教学提示:用户在查询数据库中的数据时,除了直接查看数据库中的表中的数据以外,还可以通过视图来查看表中的数据,也就是说,视图为用户提供了另外一种查看表中的数据的方式。 视图是一种虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自于定义视图的查询所引用的表,并且在引用视图时动态生成。
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
模块六 数据库管理软件——Access 2010.
第4章 数据查询.
Web安全基础教程
Presentation transcript:

第四讲 数据库对象(视图、序列、同义词、索引) ORACLE 第四讲 数据库对象(视图、序列、同义词、索引)

本章目标 熟练掌握视图的创建和使用 熟练掌握序列的创建和使用 熟练掌握同义词的创建和使用 熟练掌握索引的创建和使用

视图 什么是视图 视图以经过定制的方式显示包含在一个或多个表(或其它视图)中的数据。视图获取查询的输出结果,并将其作为表来处理,因此,可以将视图视为“已存储的查询”或“虚拟表”。尽管视图看起来像真实的表,但他们是定制的子集或表,仅包含选定的行和列。视图可被看作是一个进入数据库表中的“窗口”,透过它只能看见选定的行和列。

视图 为什么要使用视图——视图的优点 通过限制对表中预定的一组行和列的访问。视图提供了另外一种级别的表安全性。可根据不同用户定义不同视图,达到安全性的目的。 视图隐藏了数据的复杂性。例如,一个视图可能是用一个连接来定义的,它是多个表的相关列或相关行的集合。视图隐藏了这样一个事实,即此信息实际上来自于多个表。即简化了SQL语句。

视图 视图简化了用户的命令,因为视图允许用户从多个表中选择信息,而用户不必实际知道如何执行连接。 视图将应用程序与基表定义的修改隔离开来。例如一个视图引用了4列表中的3个列。现在,如果要向该表添加第5个列,则视图的定义不会受影响,而且使用该视图的所有应用程序也不受影响。 视图通过重命名,从另一个角度(相对于基表),提供了数据,而不影响基表。

视图 如何使用视图 创建视图的语法 CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW view_name [(alias[ , alias]…)] AS select_statement --------SQL查询语句 [WITH CHECK OPTION [CONSTRAINT constraint] ] [WITH READ ONLY];

视图 其中: OR REPLACE:表示在视图存在的情况下替换该视图。 FORCE:如果使用此关键字,则无论基表是否存在,都将创建视图。但是编译会报错 NOFORCE:这是默认值。如果使用此关键字,则仅当基表存在时才创建视图。 view_name:表示要创建的视图的名称。 alias:指定由视图的查询所选择的表达式或列的别名。别名的数目必须与视图所选择的表达式的数目相匹配。 select_statement:表示SELECT语句。 WITH CHECK OPTION:此选项指定只能插入或更新视图可以访问的行。 术语constraint表示为CHECK OPTION约束指定的名称。 WITH READ ONLY:此选项确保不能在此视图上执行任何修改操作。即只读视图。

视图 创建视图 举例: create view emp_1300 as select * from myemp where sal>1300; create or replace view emp_1300 as select * from myemp where sal>1500; create view eview as select a.*, dname,loc from emp a, dept b where a.deptno=b.deptno; create view emp_1300 as select * from myemp where sal>1300 with read only;----创建只读视图

视图 更新视图 更新视图必须满足的条件 在视图中使用DML语句只能修改一个底层的基表。只能修改键值保存表。(如果基表的主键在视图中也为主键,则称这个表为键值保存表。) 如果对记录的修改违反了基表的约束条件,则无法更新视图。 如果创建的视图包含连接运算符、DISTINCT运算符、集合运算符、聚合函数和GROUP BY子句,则将无法更新视图。 如果创建的视图包含伪列或表达式,则将无法更新视图。 不能有WITH READ ONLY修饰。

视图 删除视图 语法: DROP VIEW viewname;

序列 什么是序列 序列是为生成唯一数字列值创建的数据库对象。 什么时候用序列 序列通常用来自动生成主键或唯一键的值。序列可以按升序排列,也可以按降序排列。

序列 创建序列 语法: CREATE SEQUENCE sequence_name [START WITH integer] [INCREMENT BY integer] [MAXVALUE integer | NOMAXVALUE] [MINVALUE integer | NOMINVALUE] [CACHE integer] [CYCLE | NOCYCLE];

序列 其中: START WITH:指定要生成的第一个序号。对升序序列,其默认值为序列的最小值。对于降序序列,其默认值为序列的最大值。 INCREMENT BY:用于指定序列号之间的间隔。其默认值为1。如果n为正值,则生成的序列将按升序排列,如果n为负值,则生成的序列将按降序排列。 MAXVALUE:指定序列可以生成的最大值。 NOMAXVALUE:如果指定了NOMAXVALUE,Oracle将升序序列的最大值设为1027,将降序序列的最大值设为-1。这是默认选项。

序列 MINVALUE:指定序列的最小值。MINVALUE必须小于或等于START WITH的值,并且小于MAXVALUE。 NOMINVALUE:如果指定了NOMINVALUE,Oracle将升序序列的最小值设为1,将降序序列的最大值设为-1026。这是默认选项。 CYCLE:指定序列在达到最大值或最小值后,将继续从头开始生成值。 NOCYCLE:指定序列在达到最大值或最小值后,将不能再继续生成值。这是默认选项。

序列 创建序列 举例: create sequence seq start with 1 increment by 2 maxvalue 50 cache 10 cycle;

序列 访问序列 创建了序列之后,可以通过CURRVAL和NEXTVAL伪列来访问该序列的值。 NEXTVAL:创建序列后第一次使用NEXTVAL时,将返回该序列的初始值。以后在引用NEXTVAL时,将使用INCRMENT BY子句的值来增加序列值,并返回这个新值。 CURRVAL:返回序列的当前值,即最后一次引用NEXTVAL时返回的值。

序列 更改序列 ALTER SEQUENCE命令用于修改序列的定义。如果执行下列操作,则会修改序列: 举例: insert into student values(squ.nextval,'fangcheng','male'); 用select squ.currval from dual;查看序列的当前值。 更改序列 ALTER SEQUENCE命令用于修改序列的定义。如果执行下列操作,则会修改序列: 设置或删除MINVALUE或MAXVALUE。 修改增量值。

序列 语法: 举例: ALTER SEQUENCE sequence_name [INCREMENT BY integer] [MAXVALUE integer | NOMAXVALUE] [MINVALUE integer | NOMINVALUE] [CYCLE | NOCYCLE]; 注意:不能修改序列的START WITH参数。在修改序列时,应注意升序序列的最小值应小于最大值。 举例: alter sequence squ increment by 3 maxvalue 60 cycle;

序列 删除序列 语法: DROP SEQUENCE sequencename;

同义词 什么是同义词 同义词是数据库对象的一个别名,这些对象可以是表、视图、序列、过程、函数、程序包,甚至其他同义词。通过使用同义词,用户可以访问其它模式的数据库对象而无需指定模式前缀。例如,USER1要访问USER2的表emp,必须使用USER2.emp来引用,如果为USER1创建一个名为emp的同义词代表USER2.emp,那么USER1就可以用该同义词象访问自己的表一样引用USER2.emp了。

同义词 为什么使用同义词——同义词用途 简化SQL语句。 隐藏对象的名称和所有者,安全性。 提供对对象的公共访问。 同义词允许应用程序访问数据库对象,不论哪个用户或哪个数据库拥有该对象。但是同义词不能代替权限,在使用同义词之前要确保用户已经得到访问对象的权限。 可以通过同义词执行SELECT、INSERT、UPDATE、DELETE、GRANT和REVOKE等语句。同义词只是表的一个别名,因此对它的所有操作都会影响到表。

同义词 同义词类型 私有同义词 私有同义词只能被当前模式的用户访问。私有同义词名称不可与当前模式的对象名称相同。要在自身模式创建私有同义词,用户必须拥有CREATE SYNONYM系统权限。 公有同义词 公有同义词可被所有的数据库用户访问。公有同义词可以隐藏基表的身份,并降低SQL语言的复杂性。要创建公有同义词,用户必须拥有CREATE PUBLIC SYNONYM系统权限。公有同义词名称可以与当前模式对象名称相同,但是当公有对象和本地对象具有相同名称时,本地对象优先。

同义词 创建私有同义词 举例: 创建公有同义词 语法: CREATE [OR REPLACE] SYNONYM [schema.]synonym_name FOR [schema.]object_name; 举例: create synonym s for student; 创建公有同义词 CREATE [OR REPLACE] PUBLIC SYNONYM [schema.]synonym_name FOR [schema.]object_name; 首先在SYSTEM模式下向用户授予CREATE PUBLIC SYNONYM系统权限。 grant create public synonym to username; 然后在某用户模式下创建公有同义词。 create public synonym s for student;

同义词 删除同义词 语法: DROP SYNONYM synonymname;

索引 什么是索引 索引是一种结构,它基于一列过多列的值来提供快速访问表的数据 。 为什么使用索引 可以明确的创建索引,以加快对表执行DQL语句的速度,就象书的索引可以帮我们更快的查找信息一样。

索引 索引的优缺点 创建索引的原则 优点:提高查询速度 缺点:降低增删改的性能,创建索引需要维护所以降低性能 如果一张表很大,记录数很多,则创建索引 不要对一张表创建多个索引,因为会影响DML操作 为频繁使用的列创建索引

索引 使用索引 创建普通索引 系统会自动为主键加上索引 创建索引以后不需要再管,由数据库自己去维护 语法: 举例: CREATE INDEX index_name ON table_name (column_list); 举例: create index i on emp(ename);

索引 创建位图索引 原则: 如果取值范围很小而且是固定的,可以创建位图索引 语法: 举例: CREATE BITMAP INDEX index_name ON table_name (column_list); 举例: create bitmap index I on emp(deptno);

索引 删除索引 语法: DROP INDEX indexname;

数据字典 通过数据字典查询存在的数据库对象 查询视图信息: 查询序列信息: 查询同义词信息: 查询索引信息: select view_name from user_views; 查询序列信息: select sequence_name from user_sequences; 查询同义词信息: select synonym_name from user_synonyms; 查询索引信息: select index_name from user_indexes;