Oracle数据库之视图与索引 1. 视图简介 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改. 视图基于的表称为基表,视图是存储在数据字典里的一条SELECT语句.通过创建视图可以提取数据的逻辑上的集合或组合. 我们可以像使用表一样使用视图,但需要注意的是:查询视图没有什么限制,插入/更新/删除视图的操作会受到一定的限制:所有针对视图的操作都会影响到视图的基表:为了防止用户通过视图间接修改基表的数据,可以将视图创建为只读视图(带上with rea…
Oracle数据库索引 在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快.索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容. 对于数据库来说,索引是一个必选项,但对于现在的各种大型数据库来说,索引可以大大提高数据库的性能,以至于它变成了数据库不可缺少的一部分. 索引分类: 逻辑分类 single column or concatenated    对一列或多列建所引 unique or nonunique  唯一的和非唯一的所引,也就是对某…
数据库对象 用户模式:指数据库用户所创建和存储数据对象的统称.在访问其它用户模式的数据库对象时需加上用户模式. 如:scott.emp, scott.dept等. 数据库对象包括:表.视图.索引.序列.目录.同义词.数据库用户.存储过程.函数.触发器等. 同义词 同义词是现有数据库对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 同义词分为私有和公有的 --创建同义词得通过sys进行授权 grant create [any] synonym to $username$; --授权,创建私…
数据库对象 用户模式:指数据库用户所创建和存储数据对象的统称.在访问其它用户模式的数据库对象时需加上用户模式. 如:scott.emp, scott.dept等. 数据库对象包括:表.视图.索引.序列.目录.同义词.数据库用户.存储过程.函数.触发器等. 同义词 同义词是现有数据库对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 同义词分为私有和公有的 复制--创建同义词得通过sys进行授权 grant create [any] synonym to $username$; --授权,创…
数据库对象 Oracle数据库对象: 数据库对象是数据库的组成部分,常常用 CREATE 命令进行创建,可以使用 ALTER 命令修改,用 DROP 执行删除操作. 种类: (1)表空间:所有的数据对象都存在指定的表空间中. (2)同义词:就是给数据库对象起一个别名. (3)序列:Oracle中实现增长的对象. (4)视图:预定义的查询,作为表一样的查询使用,是一张虚拟表. (5)索引:对数据库表中的某些列进行排序,便于提高查询效率. 表空间 在数据库系统中,存储空间是较为重要的资源,合理利用空…
一.涉及内容 1.理解索引的概念和类型. 2.掌握创建索引的命令. 3.理解视图的概念和优点. 4.理解可更新视图应具备的特点. 5.掌握创建一般视图和可更新视图的命令. 6.理解序列和同义词的概念和作用. 7.掌握序列的创建与应用. 8.掌握同义词的创建与应用. 二.具体操作 ( 实验) 1.在数据库中创建Student表,包括学号Id.姓名Name.性别Sex.班级编号Class_id.利用该表创建如下索引: (1)在Id字段上创建唯一的B树索引. (2)在Name字段上创建普通的B树索引.…
视图(View) 视图也被称作虚表,也就是虚拟的表,是一组数据的逻辑表示. 视图对应一个select语句,结果集被赋予一个名字,也就是视图的名字. 视图本身不包含任何数据,它只是包含映射到基表的一个查询语句,当基表数据发声变化,视图数据也随之变化. 视图创建后,可以像操作表一样操作视图,主要是查询. 根据视图所对应的子查询种类分为几种类型: select语句是基于单表建立,并且不包含任何函数运算.表达式或者分组函数,叫做简单视图,此时视图是基表的子集. select语句是基于单表建立,但是包含了…
使用视图的优点:    1.简化数据操作:视图可以简化用户处理数据的方式.    2.着重于特定数据:不必要的数据或敏感数据可以不出现在视图中.    3.视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限. 4.提供向后兼容性:视图使用户能够在表的架构更改时为表创建向后兼容接口. 创建或修改视图语法 CREATE [OR REPLACE] [FORCE] VIEW view_name        AS subquery        [WITH CHECK OPTION ]…
序列是什么,通俗点说,序列就是按照一定顺序进行排列,序列会自动给你递增,生成唯一的序列号: oracle数据库不同于sqlServer数据库,oracle数据库中是没有自增长列,使用的是sequence序列: ==== 创建序列 create  sequence  emp_sequence               --    (序列名) increment     by  1                                      --  (每次增长的数) start wi…
alter table userInfo add(msn varchar2(20)); 1.建表 create table userInfo ( id number(6), name varchar2(20), sex number(1), age number(3), birthday date, address varchar2(50), email varchar2(25), tel number(11) ); 2.创建约束 不带约束名称的: create table userInfo (…