`

Oracle 对象-如何操作

阅读更多
Oracle对象——增删查改
1、增删查改的简单操作介绍

--插入数据
Insert into 表名 (列名) values (值列表);
Insert into students (sno,sname,sid)values (2,’tom’,22);

Insert into 表名 values (值列表);
insert into myuser values(1,'张三','123');

插入数据的注意事项:
1、 每插入一行数据,插入的列和插入的值的数量要一致 --– 完整性
2、 列名的类型和要插入值类型要对应 ---  准确性
3、 不能为标识列指定值,因为它的数字是自动增长的
4、 不许为空的列必须插入数据
5、 具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值

--更新数据
Update <表名> Set <列名 = 更新值>  [Where <更新条件>]

--删除数据
Delete From <表名> [Where <删除条件>]

Delete from表名     ----   删除表中的所有数据
Drop table 表名      ----    删除表

Truncate Table <表名>    清空数据
截断,效率更高,不记录在日志文件中,也将不可恢复。


--查询emp表
select * from emp;

select 列名 from 表

--查询部分行数据
Select 列名 from 表名  where 查询条件

--别名查询
select e.ename,e.deptno,d.dname from emp e,dept d where e.deptno = d.deptno;


Commit  提交数据,将事务做的修改提交到数据库

Rollback 回滚事务过程中的任何修改


2、数据库对象

--赋权限
Grant 权限(select,insert,update)[ on 表名 ] to 用户;
--删除权限
Revoke 权限 [on 表名] from 数据库用户

-- 创建表
Create table user
(
Uid number(10)  not null ,
Uname varchar2(20) ,
Upwd varchar2(20)
)
--创建表空间 
Create tablespace USERS
Temporary  storage -- 临时存储空间
  (
initial 64K,      
next 64K ,
    minextents 1, 最小长度
    maxextents unlimited, 最大长度  没有限制
    pctincrease 0          增长百分比
  );


1.同义词:现有对象的一个别名
作用:
简化SQL语句
隐藏对象名称和所有者

私有同义词:只有建立该同义词的用户可以访问
Create synonym 别名 for 表名;
Creat synonym e for scott.emp ;

公有同义词:可被所有的数据库用户访问
Create public synonym 别名 for 表名;
Create public synonym e for scott.emp ;

创建和替换现有的同义词
Create or replace synonym e for scott.emp ; 

删除同义词
Drop synonym emp;
Drop public synonym emp;

2.序列 (一般做主键使用)
序列是用于生成唯一,连续序号的对象
有升序asc 和 降序 desc
创建序列(一般直接生成,不容易出错)
Create sequence seq_num ;  -- create sequence 序列名;
Start with 1   --start with 起始值
Increment by 20 --increment by 增量 (每次增长量为20)
Maxvalue 20  --maxvalue 最大值
Minvalue 1 --minvalue 最小值
Cache 10 --cache 缓存个数 (缓存10个,执行一次序列)
Nocycle ;  --nocycle (默认,不循环;)
(cycle 序列达到最大值,又从起始值开始执行)
通过序列的伪列来访问序列的值
Seq_num.NEXTVAL 返回序列的下一个值
Seq_num.CURRVAL 返回序列的当前值

--查询用户的数列
Select * from user_sequence;

Select * from user_sequence.currval ;

--使用数列 seq_num
create table seqtest(sid int,sname varchar2(10),age int);

insert into seqtest values(seq_auto.nextval,'ding',10)
或者
insert into seqtest(sid,sname) vlues(seq_auto.nextval,'ding');


--更改序列 (起始值不能修改)
Alter sequence seq_num
maxvalue
30 cycle ;  --更改序列的最大值,并设置循环

--删除序列
Drop sequence seq_num ;

3、视图
View 是一个虚拟表,只有表结构,没有数据,用户查询时通过表结构从原表中得到数据
视图一般用来查看数据,不是用来修改数据的
数据库开发时,有时视图和表是并行开发的。表还没开发好,创建一个错误的视图,在表创建后,错误视图自动变为正确视图

优点:
1. 提供了另外一种级别的表安全性,隐藏原有表名
2. 隐藏数据的复杂性
3. 简化用户的sql命令
4. 通过重命名列,给用户看到想给看的部分,将原有的表结构隐藏了

创建或代替原有视图
Create or replace view v_emp as select empno,ename,job from emp ;

-- 修改了列名
create or replace view vm_emp
as
select empno as salary,ename as name,job,
       (select dname from scott.dept where deptno=e.deptno) as dname
       from scott.emp e;

语法
Create [or replace] [from] view 视图名 as select 视图的列 from 表
[with check option] [with read only]

--查询视图
Select * from v_emp ;

--删除视图
Drop view v_emp ;

在视图上也可以使用修改数据的DML语句,如INSERT、UPDATE和DELETE
但是有如下限制:
1.只能修改一个底层的基表
2.不能违反基表的约束条件
3.如果视图中包含连接操作符、distinct关键字、集合操作符、聚合函数或者group by语句,则无法更新视图
4.视图中包含伪列或表达式,则无法更新视图

--键保留表
如果一个视图中包含一张表的主键列,那么这张表成为键保留表
创建错误视图:Create force view vv as select * from student ;
Student表中有主键:sid ;

4、索引 index 基于rowid 产生的
优点;提高sql查询语句执行的性能
减少磁盘I/O
在逻辑和物理上都独立于表的结构
Oracle自动维护索引

不足: 降低了增删改的效率

-- 创建索引
Create index 索引名 on表名(列名)
Tablespace 表空间名;
(一旦列中的数据发生改变,DBMS自动维护索引)
Create index item_index on item ;

--重建索引
Alter intdex item_index rebuild ;

--删除索引
Drop index item_index ;

1. 唯一索引:确保在定义索引的列中没有重复值
建立之后相当于该列多了一条约束性条件,没有重复值,但是可以为空,而唯一列的效率                比较低下(每次都要全部比较一下有无重复值),在实际开发中用的比较少

Create unique index item2 on item ;

2. 组合索引:常用在两列或多列上进行查询,比如 经常使用 empno,sal 作为查询条件

Create index ix_item on item(sid,sname);

3方向索引 :一般用在数值为主键的列上
一万条记录,前五十条被删除的比较多,可能造成索引树分布不均匀,反向索引是数值变成二进制,将二进制顺序颠倒,在对这个颠倒顺序的值进行索引构建
反向索引有可能解决索引树分布不均匀的问题

4、位图索引  适用于低基数列
Create bitmap index bit_index on student (sno);

不建立索引的情况:
1. 数据比较少,十万行以下
2. 不经常查询的列
3. 低基数列(低基数:重复值比较多,不同的值比表的行数少)

0
0
分享到:
评论

相关推荐

    Oracle PL-SQL语言基础

    内有文件: Oracle PL-SQL入门之慨述.doc Oracle PL-SQL语言基础.doc ORACLE 数据库开发经验总结.doc Oracle9i PL-SQL编程的经验小...Oracle中使用PL-SQL操作COM对象.doc Toad资料.doc PL-SQL单行函数和组函数详解.doc

    Oracle Stream-安装配置

    这种技术可以将整个数据库、数据库中的对象复制到另一数据库中,通过使用Stream的技术,对归档日志的挖掘,可以在对主系统没有任何压力的情况下,实现对数据库对象级甚至整个数据库的同步。  Oracle 的Streams提供...

    Oracle--索引的基本操作与存储效率的体验.docx

    掌握对数据库对象索引的基本操作 索引的基本操作与存储效率的体验

    Java操作Oracle大对象

    本文介绍如何操作oracle中的lob对象

    Oracle数据库对象操作

    一份简洁、明了的Oracle数据库对象操作

    Oracle中的对象相关操作

    Oracle中的对象,主要是对视图、索引、同义词、以及序列,还包含一部分关于Oracle数据库的分页介绍,适合初学者理解。

    oracle mysql sqlser2000对大数据对象的操作

    oracle mysql sqlser2000对大数据对象的操作,包括读取和保存(原创)

    oracle实验对象管理及使用.docx

    这是oracle数据库的实验三内容,其中主要是一些操作方式和操作流程,涉及到企业管理器的由于没有工具没有写,主要是oracle语句对象的操作与管理方面的

    oracle 分区技术-大批量数据操作

    oracle 分区技术-大批量数据操作 大数据对象 (表, 索引)被分成小物理段 当分区表建立时,记录基于分区字段值被存储到相应分区。 分区字段值可以修改。(row movement enabled) 分区可以存储在不同的表空间 分区可以...

    Oracle11gR2DBA操作指南

    资源名称:Oracle 11g R2 DBA操作指南内容简介:Oracle数据库是一款优秀且应用广泛的关系数据库管理系统。本书全面、详细地讲解了Oracle llgR2数据库管理技术,是学习0racle数据库管理的实用教材和参考书。 本书共...

    oracle对象创建实例

    对oracle数据库的操作经常会遇到trigger ,procude 等对象的创建,该文档是很有帮助的。

    oracle对大对象类型操作:blob,clob,nclob,bfile

    oracle对大对象类型操作:blob,clob,nclob,bfile

    oracle恢复工具-FY_Recover_Data

    接下来我们来截断表, 其实这个操作只是重新格式化了段头块(Segment Header), 并分配一个新的数据对象号(Data Object ID), 当然空间分配信息也改了, 除非加了重用空间选项(Reuse Storage). 来看一下这个操作的前后...

    oracle10g课堂练习I(1)

    Oracle Database 10 g :“g”代表网格 1-6 Oracle 数据库体系结构 1-8 数据库结构 1-9 Oracle 内存结构 1-10 进程结构 1-12 Oracle 实例管理 1-13 服务器进程和数据库缓冲区高速缓存 1-14 物理数据库结构 1-...

    C#操作ORACLE中的BLOB

    C#操作ORACLE大对象 C#操作BLOB字段

    Oracle-数据库简答题.doc

    答:数据库由若干个表空间组成,表空间由表、索引、视图等逻辑对象组成,表由段 组成,段由区组成,区则由数据块组成。 2.简述Oracle数据库物理结构中包含的文件类型,以及不同类型文件所能起的作用 。 答:物理...

    Oracle SQL Hand-Oracle工具 v5.1.zip

    Oracle SQL Hand-Oracle工具,是专为Oracle数据库开发人员及操作人员精心打造的一款Oracle开发工具(客户端工具)。 Oracle SQL Hand-Oracle工具特点如下: (1) 跨平台,能运行于平台 Windows(WIN7,XP...)、Linux 、...

    Oracle DBA workshop1 (中文版)

    Oracle 产品和服务1-5 Oracle Database 10g:“g”代表网格1-6 Oracle 数据库体系结构1-8 数据库结构1-9 Oracle 内存结构1-10 进程结构1-12 Oracle 实例管理1-13 服务器进程和数据库缓冲区高速缓存1-14 物理数据库...

    Oracle OCP SQL-1Z0-071培训方案.xlsx

    Oracle OCP SQL-1Z0-071培训方案,总计14章,两天课程安排。 《OCA Oracle Database SQL认证考试指南(1Z0-071)》完整覆盖1...●模式对象 ●分层检索 ●集合操作符 ●正则表达式支持 ●从多表显示数据 ●用户访问控制

Global site tag (gtag.js) - Google Analytics