oracle讲解 Chapter 3
ORACLE第三章
• $ 显示美元符号
• L 显示本地货币符号
• . 显示小数点
• , 学习改变命运,知 显示千分位符号
识创造未来
ORACLE第三章
常用SQL函数
• 例子1:select ename,to_char(sal,'$99,999.9999') salary from emp
• 例子2:select to_char(sal, ‘$00,000.0000’) salary from emp where ename = ‘ALLEN’; $01,600.0000
学习改变命运,知 识创造未来
ORACLE第三章
常用SQL函数
• DY-----星期的缩写,对中文的星期来 说就是全称
• HH24、HH12 ----- 12小时或者24小 时进制下的时间
• MI ----- 分钟数 • SS ---- 秒数
学习改变命运,知 识创造未来
ORACLE第三章
常用SQL函数
学习改变命运,知 识创造未来
ORACLE第三章
带连接条件的等值多表查询
• 例子1:请你选出雇员的名字,和雇员在部 门的名字?
• 错误写法:select ename, deptno from emp;//这里选的是部门的编号,问题里是让 选部门的名字
• select dname, deptno from dept where deptno = 20;//选出了编号是20的这 个人所在部门的名字
ORACLE第三章
常用SQL函数
• 8.to_date()函数 • 将特定的字符串转换成日期格式,这个
函数有两个参数
• 第一参数:自定义的日期字符串 • 第二参数:指定这个字符串的格式 • 例子1:将1981年3月2日中午以后入职
Chapter 3
定的行 ―在 SELECT 语句中使用“FOR UPDATE”子句, 可以强制使用共享更新锁 ―允许多个用户同时锁定表的不同行
10
锁定概念 8 - 8
• 排他锁
―与其他两种锁相比,排他锁是限制性最强的 表锁 ―仅允许其他用户查询数据 ―不允许执行插入、删除和更新操作 ―在同一时间仅允许一位用户在表上放置排他 锁 ―共享锁与此相反
• 语法: Lock table < table_name> in <mode>;
8
锁定概念 8 - 6
• 共享锁
―锁定表 ―仅允许其他用户执行查询操作 ―不能插入、更新和删除 ―多个用户可以同时在同一表中放置此锁
9
锁定概念 8 - 7
• 共享更新锁
―锁定要被更新的行 ―允许其他用户同时查询、插入、更新未被锁
13
表分区 13 - 3
• 范围分区
―根据列值的范围将行映射到分区 ―由表的分区规范进行定义:
PARTITION BY RANGE ( column_list ) ―由每个单独分区的分区规范进行定义: VALUES LESS THAN ( value_list ) ―其中 column_list 是列的有序列表 ―value_list 是 column_list 中列值的有序列表
21
表分区13 - 11
• 分区维护操作
―修改已分区表的一个分区 ―划分为两类事件: 计划事件 - 定期删除最旧分区的操作 非计划事件 – 解决应用程序或系统问题
22
表分区 13 - 12
• 维护分区
―各种分区维护操作如下: 添加分区 移动 删除 结合 截断 拆分 合并 交换表分区
23
表分区13 - 13
Oracle课件 第3章
课程描述
数据字典存储Oracle数 据库的元数据,掌握它 们能更好地了解和管理 Oracle数据库。 动态性能视图记录数据 库的运行状况,了解它 们有助于查找性能瓶颈, 从而为改善数据库系统 的性能提供依据。
本章知识点
静态数据字典的作用; 常用数据字典; 动态性能视图的作用; 常用动态性能视图。
3.2 动态性能视图
Oracle数据库运行过程中维护了一套动态性能视图 ,用于记录数据库的当前活动,管理员在进行会话 管理、备份操作和性能调优时必须要使用它们。这 些视图之所以被称之为动态性能视图,是因为在实 例运行和数据库使用过程中,它们的内容不断地更 新,而且其内容也主要与性能有关。
3.2 动态性能视图
3.1.1三组常用数据字典视图
这三组视图所提供的信息量可用下图表达:
USER_* 用户视图
ALL_*
DBA_*
用户扩展视图 系统管理员视图
3.1.2 其他常用特殊数据字典视图
dictionary和dict_columns:前者列出所有 数据字典视图的名称及其描述,后者列出每 个数据字典视图中各列的名称及其描述;
实验三:数据字典和性能视图的使用
实验目的:掌握常用的Oracle数据库数据字典、动态性能 视图的命名格式、内容及使用方法,能够使用它们完成基 本的日常管理工作。 实验要求: 1. 简单了解Oracle数据库具有哪些数据字典和动态性能视 图。 2. 使用数据字典或性能视图查询数据库的物理存储结构。 3. 用数据字典查询数据库的逻辑存储结构。 4. 用动态性能视图查询Oracle实例当前状态。 5. 以scott用户登录,查询该用户所具有的数据库对象。
3.1 静态数据字典
oracle入门-v3
Oracle不变的-内存与进程
实例 SGA
数据库缓存 高速缓存
Java池 重做日志缓存区 流池
共享池 库缓存 数据字典缓存
RAM
大池
PMON
SMON DBWR LGWR
CKPT
Others
OS
Parameter file Password file
பைடு நூலகம்
Data files
Control files
Redo Log files
在事务commit时,同时必须保证redo log被写入.
Oracle不变的-Oracle 后台进程
1.Smon 2.Pmon 3.Ckpt 4.Lgwr
5.Dbwr
Oracle不变的-Oracle SGA
1.共享池 2.数据库缓冲区高速缓存
3.重做日志缓冲区
4.其他
Oracle 安全
.备份重于一切:可以使DBA在梦中惊醒
CKPT
Others
OS
参数文件
数据文件
控制文件
重做日志 文件
DISK
密码文件
归档日志文件
数据库
oracle 是什么? Oracle server:
看得见的 数据库:存储在磁盘上的一组物理文件: 参数文件,数据文件,控制文件,日志文件„..
参数文件
数据文件
控制文件
重做日志 文件 归档日志文件
DISK
1 6
Oracle 关闭
shutdown
1.正常关闭(干净)
2.异常关闭(脏)
1 7
Oracle 关闭
正常关闭(连接,会话,事务,检查点,介质恢复)
shutdown immdediate
Oracle11g数据库第三章课件
授予角色 内容回顾:
可以使用CREATE ROLE语句创建一个角色。 授予角色时,可以使用WITH OPTION,WITH ADMIN OPTION为被 授权者提供了将同一个角色授予其他用户的权利。 角色存在于一个名称空间中,这个名称空间存在于任何一个用 户账户之外。 一个角色是由一个由一组权限和其他角色组成的集合。 可以将一个角色授予其他角色。
VIEW
SEQUENCE
常见的八种主数据库对象类型
SYNONYM CONSTRAINT USERS ROLES 数据库中另外一个对象的别名,经常用来为表或视图指定一个可 选的名称。 由程序员定义的一小段逻辑,用来指示特定的表如何接受、修改 或拒绝输入数据。 数据库对象的“所有者”。 可以授权给用户的一种或多种权限。
我们来看下面的例子。
对表或其他对象进行命名 对于下面的语句:
CREATE TABLE ports ( port_id NUMBER, port_name VARCHAR2(20)); 1. 表名为 ports ,以小写字母输入,数据库会自动转 换为大写字母,最终得到的对象名为:PORTS。 2. 当使用SQL引用这个对象时,下面的形式均可: SELECT * FROM ports; SELECT * FROM PORTS;
区分权限和角色
内容回顾:
直接授予用户的权限与授予角色的权限是相互独立存在的。 如果直接从一位用户那里收回了一项权限,同时这位用户被授 予的一个角色也包含了同一项权限,那么这个角色将保持不变, 用户仍然通过这个角色拥有这项权限。 如果直接从角色那里收回权限,那么上面的情况同样也会发生。 如果从一位用户拥有的某个角色那里收回了一项权限,同时这位 用户被直接授予了这项权限,那么这项直接授予的权限依然存在 并仍然起着作用。
Oracle 12c数据库基础教程(第3版)精品课件(完整版1319页)
4.区间(Extent)
区间是数据库存储空间中分配的一个逻辑 单元,由一组相邻的数据块组成,它是 Oracle分配磁盘空间的最小单位。 MINEXTENTS定义了段中所能包含的最小区 间数量,在创建段时,它所包含的区间数 量只能为MINEXTENTS。随着段中数据的增 加,区间数量也可以不断增加,但不能超 过MAXEXTENTS中定义的数量,否则会出现 错误。
(2)SYSTEM表空间
每个Oracle数据库都包含一个SYSTEM表空间,当数据 库创建时,SYSTEM表空间会自动创建。当数据库打开 时,SYSTEM表空间始终在线。
SYSTEM表空间中包含整个数据库的数据字典表,另外 PL/SQL中的一些程序单元(如存储过程、函数、包和 触发器等)也保存在SYSTEM表空间中。PL/SQL是 Oracle提供的数据库访问语言
5.数据块(Data Block)
数据块是Oracle管理数据库存 储空间的最小数据存储单位。 一个数据块对应磁盘上一定数 量的数据库空间,标准的数据 块大小由初始参数 DB_BLOCK_SIZE指定。因此,数 据块既是逻辑单位,也是物理 单位。
公共的变长头 表目录 行目录 空闲空间
行数据
1.2.5 数据库物理结构
物理结构由构成数据库的操作系统文件 所决定。每个Oracle数据库都由3种类型 的文件组成,即数据文件、日志文件和 控制文件。这些数据库文件为数据库信 息提供真正的物理存储。
1.控制文件
每个Oracle数据库有一个控制文件,记录数据 库的物理结构。控制文件包含数据库名、数据 库数据文件和日志文件的名字、位置和数据库 建立日期等信息。 数据库的控制文件用于标识数据库和日志文件 ,当开始数据库操作时它们必须被打开。当数 据库的物理组成更改时,Oracle自动更改该数 据库的控制文件。数据恢复时,也要使用控制 文件。 当数据库打开时,Oracle数据库服务器必须可 以写控制文件。没有控制文件,数据库将无法 装载,恢复数据库也很困难。
Oracle基础教程(第3版)教案
目录第I部分 SQL语言与PL/SQL语言 (9)第1章数据库的概念与Oracle的安装 (9)1.1实体-关系模型 (9)1.2 关系数据库系统概述 (9)1.3 Oracle数据库历史与Oracle (10)1.4 Oracle数据库的安装 (11)1.5 本章小结 (14)第2章 SQL语言基础 (15)2.1 Oracle的数据类型 (15)2.2 SQL基本语法 (15)2.3 SQL*PLUS 工具和SQL*Plus工作单 (16)2.4函数 (17)2.4.1 单行SQL字符函数 (18)2.4.2 转换格式函数 (19)2.4.3 多行函数 (20)2.5本章小结 (20)第3章数据操作和数据库对象 (21)3.1 多表查询 (21)3.1.1 简单的两表查询 (21)3.1.2 三表查询和多表查询 (21)3.1.3 一些连接操作设置符号 (21)3.2 数据修改 (22)3.2.1 数据的插入 (22)3.2.2 数据的修改 (22)3.2.3 数据的删除 (22)3.3 事务控制命令 (22)3.4 表的创建与修改 (23)3.4.1 生成一个简单表 (23)3.4.2 表的重命名与删除 (24)3.5 视图 (24)3.6 其他数据库对象和数据字典 (25)3.6.1 索引(Index) (25)3.6.2 约束 (26)3.6.3 同义词 (26)3.6.4 过程、函数和包 (26)3.6.5 触发器 (27)3.6.6 数据字典 (27)3.7 本章小结 (27)4.1 PL/SQL简介 (28)4.2 PL/SQL块结构与用途 (28)4.3常量与变量 (29)4.3.1 变量声名 (29)4.3.2 常量 (29)4.3.3 单字符分界符和双符分界符 (29)4.3.3 标识符 (30)4.4 执行一个PL/SQL块 (30)4.7 游标 (31)4.8 出错处理 (32)4.9 本章小结 (33)第II部分 ORACLE数据库结构与管理 (34)第5章 Oracle的管理界面 (34)5.1 企业管理器 (34)5.2 Oracle Net Manager (34)5.3 登录方式 (35)5.4 启动和关闭数据库服务器 (35)5.5 配置系统初始化参数 (36)5.6 本章小结 (36)第六章 Oracle服务器的例程 (37)6.1 系统全局区 (37)6.1.1 数据库高速缓冲区 (37)6.1.2 共享存储区 (38)6.1.3 重做日志缓冲区 (38)6.1.4 Java存储区 (38)6.1.5 大型存储区 (38)6.1.6空池 (38)6.2进程全局区 (39)6.3用户全局区 (39)6.4 Oracle进程 (39)6.4.1 服务器进程 (39)6.4.2 后台进程 (40)6.4.3从属进程 (41)6.5 本章小结 (41)第7章 Oracle数据库的物理结构 (43)7.1 数据文件 (43)7.2 控制文件 (43)7.2.1 多路控制文件 (43)7.2.2 控制文件的生成 (44)7.2.3 查询控制文件信息 (44)7.3.1 管理重做日志文件 (45)7.3.2 日志转换(Log Switch) (45)7.3.3 检查点 (45)7.3.4 多路日志文件 (45)7.4 归档日志文件 (46)7.4.1 设置归档路径 (46)7.4.2 设置ARCHIVELOG/NOARCHIVELOG模式 (46)7.4.3 查询日志和归档信息 (47)7.5 本章小结 (47)第八章 Oracle数据库的逻辑结构 (48)8.1 表空间 (48)8.1.1 表空间管理 (48)8.1.2 管理数据文件 (50)8.1.3 数据文件信息查询 (50)8.2 数据块 (50)8.3 扩展区 (51)8.4 段 (51)8.4.1 数据段和索引段 (51)8.4.2 临时段 (52)8.4.3 回滚段 (52)8.5 本章小结 (53)第9章表、索引与约束 (54)9.1 数据库表创建 (54)9.1.1 生成一个简单表 (54)9.1.2 指定存储参数 (54)9.1.3 为表分区 (55)9.2 表管理 (55)9.2.1 指派与回收扩展区 (55)9.2.2 表重组 (55)9.3 表分析 (56)9.4 创建索引 (56)9.4.1 索引的分类与生成 (56)9.4.2 索引修改 (57)9.4.3 查询索引信息 (57)9.5 数据库的完整性约束 (57)9.5.1 约束的分类 (57)9.5.2 约束的创建 (57)9.6 本章小结 (58)第10章概要文件、用户权限与角色 (59)10.1 概要文件 (59)10.2 管理用户 (60)10.2.2 修改用户信息 (60)10.2.3 删除用户 (60)10.3 用户验证 (61)10.4 查询用户信息 (61)10.5 权限与角色 (61)10.5.1 对象权限 (61)10.5.2 系统权限 (62)10.5.3权限回收 (62)10.5.4角色管理 (62)10.6 本章小结 (63)第11章常用工具 (64)11.1 SQL*Loader (64)11.2 数据导入与导出 (64)11.2.1 用EXPORT导出数据 (64)11.2.2 用IMPORT导入数据 (64)11.2.3 表空间传输 (65)11.3 国家语言支持 (65)11.4 本章小结 (66)第三部分 ORACLE 数据库的备份与恢复 (67)第12章Oracle备份与恢复机制 (67)12.1 理解数据库备份 (67)12.2 冷备份与热备份 (68)12.3 归档备份与非归档备份对恢复的影响 (68)12.4 理解几种不同的恢复机制 (69)12.5 本章小结 (69)第13章非RMAN下物理备份与恢复实现 (70)13.1 数据库的冷备份 (70)13.2 数据库的热备份 (70)13.3 控制文件的备份 (70)13.4 几种不同的恢复方式 (71)13.4.1 非归档日志下的数据库恢复 (71)13.4.2 归档日志下对丢失部分数据文件的恢复 (71)13.4.3 丢失整个数据库情况下的恢复 (72)13.5非完全恢复 (72)13.5.1 基于Cancel的恢复 (72)13.5.2 基于Time的恢复 (72)13.5.3 基于SCN的恢复 (73)13.6 本章小结 (73)第14章逻辑备份与恢复 (74)14.1 使用逻辑备份与恢复工具 (74)14.2 数据库逻辑备份与恢复的实现 (74)14.3 使用Oracle企业管理器 (74)14.4 本章小结 (75)第15章Oracle恢复机制的补充 (76)15.1 并行恢复的实现 (76)15.2 控制文件的重建 (76)15.3 只读表空间的恢复 (77)15.4 本章小结 (77)第16章Oracle数据库恢复管理器和待命服务器 (78)16.1 RMAN简介 (78)16.1.1 Nocatalog 下连接RMAN (78)16.1.2 创建恢复目录 (78)16.1.3 管理恢复目录 (79)16.1.4 LIST和REPORT命令 (79)16.1.5 生成存储恢复管理器语句 (79)16.1.6 操作系统命令备份 (80)16.2 使用RMAN进行备份 (80)16.2.1 备份的分类与实现 (80)16.2.2 备份操作的调整 (80)16.3 使用RMAN进行还原与恢复 (80)16.3.1 数据文件的恢复 (81)16.3.2 表空间的恢复 (81)16.3.3 非归档日志下数据库的还原 (81)16.4 Oracle服务器的备用数据库(Standby Database) (81)16.4.1 考虑使用Standby Database (82)16.4.2 初始化参数的配置 (82)16.4.3 创建待命数据库 (82)16.5 本章小结 (83)第IV部分性能调整 (84)第17章性能调整概要 (84)17.1 调整目标与计划的制定 (84)17.2 调整内容 (84)17.3 常用调整工具 (85)17.4 本章小结 (85)第18章Oracle内容调整 (86)18.1 共享存储器调整 (86)18.1.1 调整库高速缓存与数据字典高速缓存 (86)18.1.2 共享存储区的“命中率” (86)18.1.3 提高共享存储区的性能 (87)18.2.1 存取区缓存管理机制 (87)18.2.2 测量高速缓冲区的性能 (88)18.2.3 提高缓冲区的性能 (88)18.3 重做日志缓冲区的调整 (89)18.3.1 测试日志缓冲区的性能 (89)18.3.2 提高日志缓冲区的性能 (90)18.4 本章小结 (90)第19章结构查询语句与应用程序设计调整 (91)19.1 TKPROF工具 (91)19.2 解释计划 (91)19.3 使用AUTOTRACE工具选项 (91)19.4 理解Oracle的最佳性能 (92)19.5 设置优化模式 (92)19.5.1 例程级优化模式 (93)19.5.2 会话级优化模式 (93)19.5.3 语句级优化模式 (93)19.6 应用程序的性能 (94)19.6.2 索引与聚簇来最小化I/O (94)19.7 OLTP和DSS系统的性能调整要求 (96)19.8 本章小结 (96)第20章物理I/O调整 (97)20.1 数据文件I/O的调整 (97)20.2 数据库写进程的调整 (97)20.3 段与数据块的调整 (98)20.4 检查点进程的调整 (98)20.5 归档日志进程的调整 (99)20.6 排序区的调整 (99)20.7 回滚段的调整 (100)20.7.1 回滚段的作用 (100)20.7.2 回滚段的种类 (100)20.7.3 回滚段I/O性能测试 (101)20.7.4 提高回滚段I/O性能 (101)20.8 本章小结 (101)第21章调整竞争 (102)21.1 锁 (102)21.1.1 数据锁 (102)21.1.2 字典锁 (103)21.1.3 死锁 (104)21.2 闩的调整 (104)21.3 Freelist的竞争 (105)21.4 本章小结 (105)22.1资源管理概况 (106)22.2 资源管理配置 (106)22.3 资源管理器的管理 (107)22.4 使用SQL*PLUS创建资源计划和使用者组 (107)22.5 本章小结 (107)第23章Oracle性能调整工具 (108)23.1 考虑使用Oracle Expert (108)23.2 Oracle Expert的使用 (108)23.2.1 设定范围 (108)23.2.2 收集统计 (110)23.2.3 复查 (111)23.2.4 生成建议案 (112)23.2.5 脚本的生成 (112)23.3 本章小结 (112)第5部分网络管理 (113)第24章Net Manager基本架构 (113)24.1 Oracle Net Manager功能简介 (113)24.2 Oracle 监听器 (113)24.3 概要文件 (113)24.4 网络服务命名 (114)24.5 Oracle Net Manager网络协议堆栈段 (114)24.5.1 典型的OSI协议通信栈 (114)24.5.2 Oracle Net Manager客户端/服务器中的堆栈 (115)24.6 Oracle连接管理器 (116)24.7 域 (117)24.8 本章小结 (117)第25章Oracle网络服务配置 (118)25.1 配置监听器 (118)25.2 本地命名服务器配置 (118)25.3 主机命名法 (119)25.4 Oracle命名服务器配置 (119)25.5 多线程服务器配置与网络安全 (119)25.5.1 多线程服务器配置 (119)25.5.2 高级网络安全 (120)25.6 本章小结 (120)第26章出错处理 (121)26.1服务器段异常处理 (121)26.2 命名服务器异常出理 (121)26.3 客户机异常处理 (121)26.5 NET8跟踪文件 (122)26.6 本章小结 (122)第I部分 SQL语言与PL/SQL语言第1章数据库的概念与Oracle的安装本章的学习目标:●了解实体-关系模型的基本概念和方法●了解当今流行的关系数据库以及Oracle数据库的优势●熟悉Oracle数据库服务器的安装过程1.1实体-关系模型模型是对过程和对象的抽象化,经过模型可以深入了解复杂系统的主要特征。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
序列语法
• • • • • • CREATE SEQUENCE <sequencename> INCREMENT BY n START WITH n [MAXVALUE n] [MINVALUE n] [CYCLE|NOCYCLE] [CACHE n|NOCACHE]; – 注:INCREMENT BY n:指定序列数字之间的整数间隔 – START WITH n:指定要生成的第一个序列号 – MINVALUE n:指定序列的最小值 – MAXVALUE n:指定序列可以生成的最大值 – CYCLE:指定序列即使达到了最大值,还应继续生成值 ,通常 是循环从头开始产生序列值 – CACHE:允许更快地生成序列号,Oracle分配序列号,并将 其保存在内存中以便更快地访问
– OR REPLACE:存在,就替换 – WITH CHECK OPTION:只能插入或更新视图可以访问的行 – WITH READ ONLY:不能在视图上执行任何DML操作
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 15 / 44
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 19 / 44
联接视图(SQL语句是多个表的连接)
• 通过联接多个表来创建视图 • DML 只能修改一个基表 • 通过INSTEAD OF触发器来修改
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 20 / 44
(Oracle数据库设计与实现) Database Design and Implementation Using Orac • •
经过定制的表示方式,用来显示来自一个或 多个表的数据 也称为“虚拟表”或“已存储的查询” 基表 - 创建视图所依据的表
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 13 / 44
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 21 / 44
删除视图
•
DROP VIEW 语句
– 从数据库中删除视图 – DROP VIEW empview;
•
有关视图的信息
– 查询 USER_VIEWS
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 22 / 44
创建视图
• CREATE [OR REPLACE] VIEW viewname[(alias,alias,…)] AS subquery WITH CHECK OPTION [CONSTRAINT constraintname] WITH READ ONLY [CONSTRAINT constraintname]
• 删除
– DROP [PUBLIC] SYNONYM [schema.]synonym; – DROP SYNONYM vendor_master;
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 5 / 44
注意事项
视图5 - 2
视图的优点
• • • • • 提供了另外一种级别的表安全性 隐藏数据的复杂性 简化用户的 SQL 命令 将应用程序与基表定义的修改隔离开来 从另一个角度提供数据
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 14 / 44
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 9 / 44
序列应用
•
访问序列
– nextval:第一次使用nextval时,将返回该序列的初 始值 – currval:返回序列的当前值,即最后一次引用 nextval时返回的值 – SELECT vdnseq.NEXTVAL FROM dual; – SELECT venseq.CURVAL FROM dual; – INSERT INTO vendor_master(vencode,venname) VALUES(’V’ || venseq.nextval,’vijay’)
视图中的函数
• 在视图中可以使用函数和表达式 • CREATE VEIW itemsold AS SELECT itemcode,SUM(qty_ord) sold_qty FROM order_detail GROUP BY itemcode; • 注意事项
– 不能选择伪列,如currval,nextval – 视图包括联接,集合操作符,分组函数,DISTINCT子句,不 能执行删除、更新、插入操作 – 在视图中所作的修改将影响基表,反之亦然 – 分组函数和GROUP BY子句也可以包含在视图中 – 使用函数时,应为列指定一个别名
– 私有 – 公用
• • •
CREATE SYNONYM 命令用于创建同义词 DROP SYNONYM 命令用于删除同义词 USER_SYNONYMS 包含有关同义词的信息
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 4 / 44
第三章
数据库对象
Version 3.0
目标
• •
•
•
同义词 序列 视图 索引
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 2 / 44
一、同义词 2- 1
• 数据库对象的替换名称,用作表、视图、 序列、过程、存储函数、程序包、实体化 视图或其他同义词的别名或替换名称
• 私有同义词是由普通用户创建的,并且有创 建该同义词的用户才能使用 • 公用同义词是由DBA创建的,任何数据库用 户都可以使用它。用于隐藏基表的身份,并 降低SQL语句的复杂性 • 当公用对象和本地对象具有相同的名称时, 本地对象优先,但在删除本地对象之后,可 以像平常一样使用公用同义词
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 6 / 44
四、索引10 - 1
• • •
•
• •
与表关联的可选结构 加快 SQL 语句的执行 减少磁盘 I/O CREATE INDEX 语句用于创建索引 在逻辑上和物理上独立于表中的数据 Oracle 自动维护索引
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 23 / 44
同义词的创建及使用
• 语法
– CREATE [PUBLIC] SYSNONYM FOR objcet;
• 示例
– SELECT * FROM Marketing.vendor_master; – CREATE SYSNOSYM vendor_master FOR Marketing.vendor_master;
创建视图(续)
• 示例 CREATE VIEW emp_dept10(no, name, salary) AS SELECT empno, empname, salary FROM employee WHERE deptno = 10;
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 16 / 44
优点:
– 简化 SQL 语句 – 隐藏对象的名称和所有者 – 为分布式数据库的远程对象提供了位置透明 性 – 提供对对象的公共访问
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 3 / 44
同义词 2- 2
• 同义词类型
•
•
•
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 11 / 44
删除序列
• Drop Sequence • 语法: – DROP SEQUENCE <sequencename>; • 示例 DROP SEQUENCE member_seq; • 查看序列: – select * from seq;
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 8 / 44
示例
• 示例 CREATE SEQUENCE venseq INCREMENT BY 1 START WITH 1 MAXVALUE 10 MINVALUE 1 CYCLE CACHE 4;
• 不允许更新只读视图
(Oracle数据库设计与实现) Database Design and Implementation Using Oracle 18 / 44
ORDER BY 视图
• ORDER BY 子句可以用来按特定的顺序对行 进行排列 • CREATE OR REPLACE VIEW empview2 AS SELECT * FROM EMP ORDER BY deptno DESC;
1、唯一索引
• 确保在定义索引的列中没有重复的值
• Oracle 自动为主键和唯一键列创建唯一索
引 • CREATE UNIQUE INDEX 语句用于创建唯一 索引 • CREATE UNIQUE INDEX ind2 ON order_master(orderno);