数据库对象
Oracle 数据库对象又称模式对象
数据库对象是逻辑结构的集合,最基本的数据库对象是表
其他数据库对象包括:同义词,序列,视图,索引
同义词:
同义词是现有对象的一个别名。
简化SQL语句,隐藏对象的名称和所有者,提供对对象的公共访问
同义词共有两种类型:
私有同义词: 只能在其模式内访问,且不能与当前模式的对象同名。
公有同义词: 可被所有的数据库用户访问。
私有同义词:
本用户创建后只能本用户使用
创建用户并赋予权限(system身份登录创建test用户)
CREATE USER 创建的用户名 IDENTIFIED BY 密码;
GRANT CONNECT , CREATE SYNONYM TO 用户名;
GRANT SELECT ON SCOTT.EMP TO 用户名;
GRANT DELETE ON SCOTT.EMP TO 用户名;
GRANT UPDATE ON SCOTT.EMP TO 用户名;
用户登录数据库,执行sql:
CREATE SYNONYM 表别名 FOR SCOTT.表名; --给表起别名
公有同义词:
由管理员创建,所有用户都可以使用
system管理员身份登录,创建公有同义词:
CREATE PUBLIC SYNONYM 表别名 FOR SCOTT.表名;
序列:
序列是用于生成唯一、连续序号的对象
序列可以是升序的,也可以是降序的
使用CREATE SEQUENCE语句创建序列
START WITH 1 --指定第一个序列从1开始
INCREMENT BY 1 --序列直接的间隔为1
MAXVALUE 2000 --序列的最大数(默认最大为int范围)
MINVALUE 1 --序列的最新值(默认最新为1)
NOCYCLE --在达到最大值后停止
CYCLE --在达到最大值后再从头开始
创建序列:
Create sequence seq_表名 START WITH 1 INCREMENT BY 1 MAXVALUE 2000;
利用序列实现自增:
Insert into 表名 values(seq_表名.nextval,......)
视图:
视图以经过定制的方式显示来自一个或多个表的数据
视图可以视为“虚拟表”或“存储的查询”
创建视图所依据的表称为“基表”
视图的优点有:
提供了另外一种级别的表安全性
隐藏的数据的复杂性
简化的用户的SQL命令
隔离基表结构的改变
通过重命名列,从另一个角度提供数据
创建视图:
CREATE VIEW 视图名 AS 查询结果集; --创建视图时查询结果不能有重复字段,创建视图需给用户授予创建视图的权限:grant create view to 用户名;
在视图上也可以使用修改数据的DML语句,如
INSERT、UPDATE和DELETE
视图上的DML语句有如下限制:
只能修改一个底层的基表
如果修改违反了基表的约束条件,则无法更新视图
如果视图包含连接操作符、DISTINCT 关键字、集合操作符、聚合函数或 GROUP BY 子句,则将无法更新视图
如果视图包含伪列或表达式,则将无法更新视图
索引:
索引是与表相关的一个可选结构
用以提高 SQL 语句执行的性能减少磁盘I/O
在逻辑上和物理上都独立于表的数据
创建索引:
Create index 新表名 on 表名(id)