`

oracle基础知识7_oracle常见对象

    博客分类:
  • DB
 
阅读更多

 

0 常见对象有:

 

对象 描述
基本存储单位
视图 在表基础上抽取出逻辑相关的数据集合
序列 提供有规律的数值
索引 提供高效的查询
同义词 给对象起别名

 

1 表字段类型

 

数据类型 描述
char(size) 定长字符
varchar2(size) 可变长字符
clob 字符数据,最大可4G
BLOB 二进制数据,最大可4G
number(n) 可变长数值类型
long 可变长字符数据,最大可2G
rowid 行地址
bfile 存储外部文件的二进制数据,最大可4G
date 日期
   

 

eg: create table testsavepoint (tid number,tname varchar2(20));

 

 

2 DDL语句:

 

1 参考原来表结构的基础上创建新表,同是将原表部分数据赋值到新表中:

create table emp20
    as
   select * from emp where deptno=20; (创建表的同时将部门号为20的记录赋值到新表emp20中)

 

如果仅仅是创建表,写成如下:

create table emp20
    as
   select * from emp where 1=2;

 

2 修改表: (追加新列 修改列 删除列 重名列)

2.0 create table test1(tid number,tname varchar2(20),hiredate date);

2.1 alter table test1 add image blob;

2.2 alter table test1 modify tname varchar2(40);

2.3 alter table test1 drop column image;

2.4 alter table test1 rename column tname to username;

 

3 删除表:

drop table test1;

 

 

 3 约束(表级别的限制,关键词constraint,可以不加此关键词)

 

约束类型:

a) not null

b) unique

c) primary key

d) foreign key

e) check

 

 检查性约束:

create table test2
   (tid number,
    tname varchar2(20),
    gender varchar2(4) check (gender in ('男','女')),
    sal number check (sal > 0)
   );

 

外键约束几个关键字:

a) foreign key: 在子表中定义了一个表级的约束

b) references: 指定表和父表的列

c) on delete cascade: 当删除父表时,级联删除子表记录

d) on delete set null: 当删除父表时,将子表的相关记录外键值为null

 

eg:  见下面创建表的同时创建约束并给约束赋值,最后一行就是设置外键约束写法


 

 create table myperson
    (pid varchar2(18) constraint myperson_PK primary key,
     pname varchar2(40) constraint myperson_Name_notnull not null,
     gender varchar2(4) constraint myperson_Gender check (gender in ('男','女')),
     email varchar2(40) constraint myperson_Email_unique unique
                        constraint myperson_Email_notnull not null,
     deptno number constraint myperson_FK references dept(deptno) ON DELETE CASCADE
   );  创建表myperson字段deptno ,给这个字段增加外键约束myperson_FK,关联父表dept字段deptno,并当

 删除父表时,级联删除子表myperson记录。

 

 

 

4 视图

 

a) 视图是一张续虚表

b) 建立在已有表的基础上的一种封装查询

c) 仅仅是提供数据展示的一种形式而已,对于开发人员而言,就是带有业务功能的select查询的预定义,终极目的是为了简化查询而生(这个简化是相对于开发人员而言,对于oracle而言是一点简化都没有)

d) 只能创建/删除/替换, 如果修改的话,就相当于替换

e) 非常不建议通过视图对表的数据进行 插入/修改/删除

f)  建议创建视图时候就增加上 read only

 

 创建视图和快捷创建表写法类似,如下

create view empview
    as
    select e.empno,e.ename,e.sal,e.sal*12 annlsal,d.dname
    from emp e,dept d
    where e.deptno=d.deptno with read only;

 

创建好了后,直接执行: select * from empview;  实际上就是让oracle根据视图名称 empview去执行

视图名称对应的 那一大堆select查询,仅仅是让操作人员操作起来少些一些代码而已(类似于一个预定义功能,或者理解为面向对象的封装)

 

 

5 序列:(产生唯一数值的数据库对象,多用于生成主键)

 

 序列就是数组,并被装载在内存中。

两个属性:

a) nextval---> 返回序列中下一个有效的数值,任何用户都可以引用

b) currval---> 存放序列的当前值

序列初始化后,当前值是指向第一个数值之前的那个位置(类似于游标),因此第一个数值

 

创建: create sequence myseq;

得到序列的第一个数值:

 

错误写法:

select myseq.currval from dual
       *

第 1 行出现错误:
ORA-08002: 序列 MYSEQ.CURRVAL 尚未在此会话中定义

 

正确写法:

select myseq.nextval from dual;

NEXTVAL
1

 

 

 

 

 

 

 

 

 

 

使用序列作为主键向表中插入数值:

 create table tableA(tid number,tname varchar2(20));

insert into tableA values(myseq.nextval,'aaa' );

 

 

如果你创建的序列作为所有表的主键来共同使用,那么每个表的主键必定会造成不连续结果,

tableA 1

tableA 2

tableB 3

tableA 4

 

因此在开发中,每个表对应一个此表专有的序列对象。

 

序列修改后,只会影响将来的值,已经被使用的数值不会改变。

alter sequence xxx  increment by xx maxvalue  xxx;

 

删除序列:  drop sequence xxx;

 

 

 

6 索引(和表记录的关系类似于 字典目录和字典里面详细内容)

 


 

 如果针对创建索引的列字段经常被更新(eg:sal) 那么不建议创建索引,否则 数据库经常维护这个索引表,效率也不会提高到多少。

 

创建索引:

create index myindex on emp(deptno);

create index myindex on emp(deptno,ename);

 

删除索引:

drop index myindex ;

 

 

 

 

 

 

 

  • 大小: 48.5 KB
分享到:
评论

相关推荐

    Oracle-dba.zip_Oracle-dba_dba_oracle_oracle dba_oracle 管理

    1. **Oracle基础知识**:包括Oracle数据库架构、表空间与数据文件、控制文件、重做日志、实例与服务等基本概念。 2. **安装与配置**:介绍如何在各种操作系统上安装Oracle数据库软件,以及配置数据库实例和网络环境...

    oracle 基础知识整理

    本文将深入探讨Oracle基础知识,包括其架构、安装、数据类型、SQL语句、表空间管理以及备份与恢复策略。 一、Oracle数据库架构 Oracle数据库采用客户/服务器(Client/Server)模式,由多个组件构成。主要包括数据库...

    oracle 基础知识总结初学者必备

    ### Oracle基础知识总结初学者必备 Oracle数据库作为一款广泛使用的数据库管理系统,在企业和开发领域扮演着重要的角色。对于初学者而言,掌握其基础知识是非常必要的。本文将根据提供的内容进行深入解析,并结合...

    Oracle_11G_数据库应用简明教程PPT

    首先,Oracle 11g的基础知识包括数据库体系结构,它主要由实例和数据库两部分构成。实例是运行在操作系统上的内存结构和后台进程,而数据库则是存储在磁盘上的物理文件集合,如数据文件、控制文件、重做日志文件等。...

    Oracle基础知识

    "Oracle基础知识"涵盖了SQL语言的基本概念以及Oracle 10G版本的相关特性。以下将详细介绍这些知识点。 首先,SQL(Structured Query Language)是用于管理和处理关系数据库的标准编程语言。SQL基础包括以下几个部分...

    Oracle DBA基础知识

    ### Oracle DBA基础知识 #### 一、Oracle体系结构 ##### 1.1 Oracle Server Oracle Server 是Oracle数据库的核心组件,负责处理用户请求并提供数据库服务。它由两大部分组成:系统全局区(SGA)和程序全局区(PGA)。...

    oracle10gr2_ concept中英文对照

    "Oracle10gr2_ concept中英文对照" 提供了这个版本的核心概念的双语对照,帮助用户更好地理解和学习 Oracle 数据库的基础知识。 在 Oracle 10g 中,“Concepts”文档是入门教程的一部分,它详尽地解释了数据库系统...

    shujuku.rar_Oracle javaweb_javaweb oracle_oracle_数据库面试

    7. Web安全:包括认证、授权、CSRF防护、XSS防护等,面试者应了解常见的Web安全问题和解决方案。 在“就业面试题库(数据库).pdf”中,你将找到更多关于这两个领域的具体面试题目和解答,涵盖上述知识点,帮助你更...

    Oracle基础培训.ppt

    Oracle基础培训涵盖了数据库管理系统Oracle的基础知识,包括使用DDL(Data Definition Language)、DML(Data Manipulation Language)、PL/SQL编程语言以及PROC*C的基础概念。以下是对这些内容的详细阐述: 1. ...

    oracle 基础知识讲义

    总之,Oracle基础知识涵盖了SQL语言的使用、数据库对象的操作、时间处理等多个方面。理解并掌握这些内容,对于日常的数据库管理和开发工作至关重要。通过深入学习和实践,你可以更有效地管理和利用Oracle数据库,...

    数据库操作-ADO篇.rar_ADO_ADO ACCESS_ADO oracle_ado sql_数据库操作

    7. 实战案例:通过提供的实例,实践在VC环境中使用ADO进行数据库操作,加深对理论知识的理解。 通过这个压缩包,开发者不仅可以学习到ADO的基本用法,还能掌握在实际项目中如何高效地使用ADO进行数据库操作,这对于...

    oracle_sql_函数_语法_集合

    本资源包包含了丰富的Oracle SQL相关知识,包括基本的SQL语句、函数以及一些实用案例,旨在帮助Oracle基础较弱的学习者快速提升技能。 在Oracle SQL中,函数是用来处理数据的预定义操作。以下是一些常见的Oracle ...

    Oracle基础.ppt

    Oracle 基础知识点总览 Oracle 基础知识点可以概括为以下几个方面: 1. Oracle 概述 Oracle 是一种对象关系数据库管理系统(ORDBMS),它提供了关系数据库系统和面向对象数据库系统这二者的功能。Oracle 数据库...

    查看ORACLE系统对象

    在Oracle数据库管理中,了解如何查看系统对象是至关重要的,因为这些对象构成了数据库的基础结构,包括表、视图、索引、存储过程、触发器等。系统对象通常由Oracle数据库自身或者管理员创建,用于实现数据库功能和...

    oracle傻瓜手册v2.0_oracle_V2_

    通过阅读《Oracle傻瓜手册v2.0》,初学者可以全面了解Oracle数据库的基础知识,并逐步掌握实际操作技能,为后续深入学习和职业发展奠定坚实基础。尽管手册以“傻瓜”命名,但它覆盖的内容却是深入且实用的,对于希望...

    Oracle_Performance_Tuning_01_Performance_Tuning_Methodology

    本篇文档旨在介绍Oracle性能调优的基础知识和方法论,特别适合初学者入门学习。 #### 二、Oracle性能调优的主要领域 Oracle性能调优主要涉及以下几个方面: 1. **应用层调优**: - **SQL语句性能优化**:针对...

    Thomas Kyte-Expert_Oracle_Database_Architecture.rar

    最后,本书还可能涵盖了数据库安全性、性能监控、SQL优化、数据库设计原则等多个方面,这些都是Oracle数据库管理员和开发人员需要掌握的关键知识。 总的来说,《Thomas Kyte-Expert Oracle Database Architecture》...

    oracle的基础知识

    Oracle基础知识详解 Oracle数据库是甲骨文公司推出的一款关系型数据库管理系统,被广泛应用于企业级应用、数据分析和事务处理等领域。以下将从Oracle对象、表的创建与操作、SQL语句以及事务处理等方面,深入解析...

    oracle基础资料

    本文将基于"Oracle基础资料"这一主题,结合提供的压缩包文件"Oracle8i_9i数据库基础.doc",深入探讨Oracle数据库的基础知识,包括其核心概念、数据类型、SQL语句、表的创建以及备份恢复策略。 首先,Oracle数据库的...

    Oracle数据库基础知识

    根据提供的文档信息,以下是从标题、描述以及部分文档内容中提炼出的相关Oracle数据库的基础知识点。 ### Oracle数据库基础知识 #### 1.1 产品概述 **1.1.1 产品简介** Oracle数据库是由美国甲骨文公司开发的一...

Global site tag (gtag.js) - Google Analytics