`

Oracle常见术语、操作、区别

 
阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/2358549

 

数据库9大对象

1.表(Table )

数据库中的表与我们日常生活中使用的表格类似,它也是由行(Row) 和列(Column)组成的。列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名。行包括了若干列信息项。一行数据称为一个或一条记录,它表达有一定意义的信息组合。一个数据库表由一条或多条记录组成,没有记录的表称为空表。每个表中通常都有一个主关键字,用于惟一地确定一条记录。

 

2.索引(Index)

索引是根据指定的数据库表列建立起来的顺序。它提供了快速访问数据的途径,并且可监督表的数据,使其索引所指向的列中的数据不重复。

 

3.视图(View)

视图看上去同表似乎一模一样,具有一组命名的字段和数据项,但它其实是一个虚拟的表,在数据库中并不实际存。在视图是由查询数据库表产生的,它限制了用户能看到和修改的数据。由此可见,视图可以用来控制用户对数据的访问,并能简化数据的显示,即通过视图只显示那些需要的数据信息。

 

4.图表(Diagram)

图表其实就是数据库表之间的关系示意图。利用它可以编辑表与表之间的关系。

 

5.缺省值(Default)

缺省值是当在表中创建列或插入数据时,对没有指定其具体值的列或列数据项赋予事先设定好的值。

 

6.规则(Rule)

规则是对数据库表中数据信息的限制。它限定的是表的列。

 

7.触发器(Trigger)

触发器是一个用户定义的SQL事务命令的集合。当对一个表进行插入、更改、删除时,这组命令就会自动执行。

 

8.存储过程(Stored Procedure)

存储过程是为完成特定的功能而汇集在一起的一组SQL 程序语句,经编译后存储在数据库中的SQL 程序。

 

9.用户(User)

所谓用户就是有权限访问数据库的人。

 

什么是视图?

A view is a SELECT statement that’s stored in the database as a database object.

 

什么是存储过程?

A stored procedure is an executable database object that contains a block of PL/SQL code.

 

什么是函数?

A user-defined function(UDF), which can also be called a stored function or just a function, is an executable database object that contains a block of PL/SQL code.

 

什么是触发器?

A trigger is a named block of PL/SQL code that is executed, or fired, automatically when a particular type of SQL statement is executed.

 

视图能否插数据?

插入视图的条件:

  • 如果视图是基于一个基础表产生的,那么这就称为非连接视图,所有的非连接视图都是可以更新的,也就是说可以在该视图上进行,INSERT,UPDATE,DELETE的操作。
  • 如果是连接视图,那就要遵守基本更新准则了。现在只对INSERT准则做一下说明:在INSERT语句中不能显式或隐式的引用到任何非码保留基础表中的字段,如果在定义视图中使用了WITH CHECK OPTION子句,那就不能对视图执行INSERT操作。

注:码保留表,非码保留表的解释:

在DEPT中,DEPT_NO是主码,在EMP中,EMP_NO是主码

然后建立连接视图:

create view emp_dept as 
select emp.emp_no,emp.emp_name,emp.dept_no,dept.name 
from emp,dept 
where emp.dept_no=dept.dept_no

这个视图中,EMP_NO仍然充当主码,所以EMP为码保留表,而DEPT中的DEPT_NO就不是主码了,所以为非码保留表。

多张表关联后需要向视图插入数据,建议使用替代触发器

create trigger [触发器名] 
on [视图名] 
instead of insert 
as 
begin 
——声明变量; 
——从inserted表中查出所有列的数据,分别赋给声明好的变量; 
——用上面的数据向第一张表插入数据 
——用上面的数据向第二张表插入数据 
end 

此外通过user_updatable_columns表能够查询到该表或者视图是否可更新。 

 

函数和存储过程主要有两个区别

  • 函数总是返回值或者表
  • 函数不能对数据库进行修改,比如执行INSERT、UPDATE、DELETE语句等

WHERE和HAVING的区别

  • WHERE:是在执行GROUP BY操作之前进行的过滤,表示从全部数据之中筛选出部分的数据,在WHERE之中不能使用统计函数
  • HAVING:是在GROUP BY分组之后的再次过滤,可以在HAVING子句中使用统计函数

union和union all区别

  • union在进行表求并集后会去掉重复的元素,所以会对所产生的结果集进行排序运算,删除重复的记录再返回结果 —— 无重复记录
  • union all则只是简单地将两个结果集合合并后就返回结果。因此,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据 —— 有重复记录

Clustered Index和Non-Clustered Index区别

最通俗的解释是:聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的索引顺序与数据物理排列顺序无关。举例来说,你通过目录翻到新华字典的汉字“爬”那一页就是P开头的部分,这就是物理存储顺序(聚簇索引);而不用你到目录,找到汉字“爬”所在的页码,然后根据页码找到这个字(非聚簇索引)。

Clustered Index用于查询

Non-Clustered Index用于更新

http://sql-plsql.blogspot.com/2010/06/non-clustered-indexes.html

 

Oracle表的建立及约束、序列的使用

CREATE TABLE MYPERSON
(
	PID VARCHAR2(18),
	NAME VARCHAR2(20) NOT NULL,
	AGE NUMBER(3) NOT NULL,
	BIRTHDAY DATE,
	SEX VARCHAR2(6) DEFAULT '男',
	CONSTRAINT PERSON_PID_PK PRIMARY KEY(PID),
	CONSTRAINT PERSON_NAME_UK UNIQUE(NAME),
	CONSTRAINT PERSON_AGE_CK CHECK(AGE BETWEEN 0 AND 120),
	CONSTRAINT PERSON_SEX_CK CHECK(SEX IN('男','女','未指定'))
);
INSERT INTO MYPERSON(PID,NAME,AGE,BIRTHDAY,SEX) VALUES
('111111111111111111','Sara',20,TO_DATE('2000-12-21','YYYY-MM-DD'),'女');

CREATE TABLE MYBOOK
(
	BID NUMBER NOT NULL,
	BNAME VARCHAR2(30),
	BPRICE NUMBER(5,2),
	PID VARCHAR2(18),
	CONSTRAINT BOOK_BID_PK PRIMARY KEY(BID),
	CONSTRAINT PERSON_BOOK_PID_FK FOREIGN KEY(PID) REFERENCES MYPERSON(PID) ON DELETE CASCADE
);
INSERT INTO MYBOOK(BID,BNAME,BPRICE,PID) VALUES
(1,'GROOVY',88.0,'111111111111111111');

--先删除子表(有外键的)
DROP TABLE MYBOOK;
--再删除主表
DROP TABLE MYPERSON;

--删除序列:
DROP SEQUENCE myseq;
--创建序列:
CREATE SEQUENCE myseq INCREMENT BY 1 START WITH 1 NOCYCLE;

 

Oracle数据库操作

表的复制

--表结构和数据一起复制

CREATE TABLE myemp AS SELECT * FROM emp;

--只复制表结构

CREATE TABLE myemp AS (SELECT * FROM emp WHERE 1==2);

 

表的删除

DROP TABLE myemp;

 

添加数据

INSERT INTO myemp(empno, ename, job, hiredate, sal, deptno)
VALUES(8888, ‘张益达’,’律师’,TO_DATE(‘2012-12-21’, ‘yyyy-mm-dd’), 9000, 40);

  

修改数据

UPDATE myemp SET comm=1000;
UPDATE myemp SET sal=5000 WHERE empno=7899;

 

删除数据

DELETE FROM myemp;
DELETE FROM myemp WHERE empno=7899;

 

ROWID

ROWID表示的是每一行数据保存的物理地址的编号

select rowid, deptno, dname, loc from dept;

每一条记录的ROWID都不会重复,所以即便表中所有列的数据内容都重复了,ROWID也是不会重复的,而且以一个ROWID为例,说明ROWID组成,例如:AAAR3qAAEAAAACHAAA

  • 数据对象号:AAAR3q
  • 相对文件号:AAE
  • 数据块号:AAAACH
  • 数据行号:AAA

请删除表中的重复记录,现在项目之中由于管理不善,所以导致出现了许多重复的信息,为了说明问题,下面为表中增加若干条记录。现在要求删除掉所有的重复记录,保留最早增加的记录。数据插入的早,ROWID就小。

delete from dept
where rowid not in(
    select min(rowid) from dept group by dname, loc
); 

 

 

 

 

 

 

分享到:
评论

相关推荐

    oracle概念和术语

    ### Oracle概念和术语详解 #### 数据库块(Block) 在Oracle数据库中,数据库块是最小的存储和处理单元,其中不仅包含数据,还包含了块头部信息。数据库块的大小在安装时可自定义设置,范围从2KB至64KB不等。这一设置...

    性能测试常见术语

    以下是对“性能测试常见术语”及LoadRunner压力测试基本流程的详细解释: 1. **性能测试**:性能测试是为了确定系统在特定工作负载下的性能表现,如响应时间、并发用户数、系统吞吐量等。 2. **LoadRunner**:是一...

    ORACLE EBS安装操作系统准备

    根据提供的文档内容,本文将详细解析“ORACLE EBS安装操作系统准备”的关键知识点,包括环境假设、术语定义、认证操作系统的选择、OEL6.5安装介质的获取与配置步骤等。 ### 一、环境假设 #### 3.1 假设 - **目标...

    ORACLE大学培训材料

    以上知识点涵盖了Oracle公司、Oracle大学、EBS R12采购管理系统、文档的法律声明、实践操作指导以及相关的技术术语等内容。这些信息对于希望深入了解Oracle EBS R12采购管理系统的学员和从业者至关重要。

    Oracle Developer:第19章 术语.pdf

    Oracle Developer 是一款强大的...以上术语涵盖了Oracle Developer中的关键概念,对于理解和操作Oracle数据库应用程序至关重要。了解这些术语可以帮助开发者更有效地使用Oracle Developer来构建和管理数据库应用。

    Oracle Server X7-2 Service Manual服务操作手册

    ### Oracle Server X7-2 服务操作手册关键知识点解析 #### 一、文档基本信息与版权说明 - **文档编号**:E72445-15 - **发布日期**:2021年1月 - **版权所有**:© 2017, 2021, Oracle 及其关联公司。保留所有权利...

    oracle11g安装手册

    手册中所用的术语和概念都是基于 Oracle 官方文档和实际操作经验。 概述 Oracle 数据库管理系统是一种关系型数据库管理系统,能够存储、管理和检索大量数据。Oracle 11g 是 Oracle 数据库管理系统的第十一代版本,...

    Oracle公司Oracle培训教材.doc

    Oracle提供的几个示例方案,如scott、hr、oe、pm、qs和sh,用于演示不同功能和应用场景,帮助初学者理解数据库的工作原理和常见业务需求。 数据库和实例是Oracle的核心概念。数据库是实际存储数据的文件集合,而...

    深度对比 Oracle与SQL Server

    在操作系统的支持方面,Microsoft SQL Server 和 Oracle 显示出了显著的区别。SQL Server 作为 Microsoft 的产品,一直以来都主要支持 Windows 平台,包括 Windows XP、Vista、Windows Server 2000、2003、2008等...

    oracle资料oracle资料

    它可能包含了数据库的基本术语,如表、索引、视图、触发器等,以及Oracle特有的特性,如分区、簇、存储过程等。这样的手册有助于初学者快速建立起对Oracle数据库体系的全面认知,并提供中英文对照,方便对技术名词的...

    常见IT名词术语解释.pdf

    IT领域涵盖了众多的专业术语,这些术语对于理解和操作各种信息技术至关重要。以下是对常见IT名词的一些解释: 一、网站和网络相关名词: 1. 网站的工作原理:网站由一系列网页组成,存储在服务器上。当用户在浏览器...

    Oracle SQL*Plus Pocket Reference, 2nd Edition

    选择数据是SQL中最常见的操作之一。本节将介绍如何使用`SELECT`语句来从数据库表中检索数据。这包括如何指定要检索的列、如何应用过滤条件(使用`WHERE`子句)、如何对结果进行排序(使用`ORDER BY`子句)等。 ####...

    oracle 查询重复数据

    在IT行业的数据库管理中,处理重复数据是一项常见且重要的任务,尤其在大型数据库如Oracle中。本文将深入探讨如何在Oracle数据库中查询重复数据,理解SQL语句背后的逻辑,并掌握其实现方法。 ### Oracle查询重复...

Global site tag (gtag.js) - Google Analytics