Oracle数据库对象的使用详解

目录
  • 一、序列
  • 二、同义词的作用
  • 三、视图的定义及使用
  • 四、索引的定义及使用
  • 五、总结

一、序列

序列可以使用在数据库表的自动增长列中来用,假如我们的学生表的id想从1开始,然后自动增长,每次增加2,也就是学生id是1、3、5、7、9这种的,我们就可以配合序列来使用
序列有以下属性
sequence_name:序列名称
min_value:当前序列的最小值
max_value:当前序列的最大值
increment_by:每次序列增长的步长
cy:是否为循环序列
or:是否需要排序
cache_size:缓存个数,默认为20个
last_number:最后的数值
nextval:取得序列下一个内容,每调用一次序列的值都会增长
currval:表示取得序列的当前内容,每一次调用序列不会增长

1、创建一个序列

create sequence myseq;

2、向学生表插入一条数据,学生id使用myseq序列

insert into student(id,name) values (myseq.nextval;'张三');

3、改变myseq序列的步长,每步增加2

create sequence myseq increment by 2;

4、改变myseq序列的开始值为10000

create sequence myseq increment by 2 start with 10000;

5、创建一个循环序列,并且不使用缓存

如果我们希望某一列的数据只是1到9的数据,那么我们可以使用循环序列来操作

create sequence myseq
minvalue 1 maxvalue 9
cycle nocache;

二、同义词的作用

同义词可以将一个模式的表给另一个模式来访问。

1、将scott用户下的student表同义给sys用户使用

create sysnoym student for scott.emp;

2、将scott用户下的student表同义给所有用户使用

create public sysnoym student for scott.emp;

三、视图的定义及使用

视图是为了简化复杂查询的,视图是一张虚拟表,并不存储数据,但是数据都来源于真实表中

1、创建一个视图,从学生表中名字为‘张三’的学生中取

create view studentview as select * from student where name = '张三';

2、查询学生视图

select * from studentview;

3、更新学生视图,将name为‘张三’的年龄更新为20

update studentview set age = 20 where name = '张三';

这个时候我们发现真实表student中张三的年龄也被修改了,所以这样修改视图会影响真实表的数据,那么我们接下来创建一个视图让他修改后不影响真实表。

4、创建一个视图,从学生表中名字为‘张三’的学生中取,并且修改视图不能影响原来真实表的数据

create or replace view studentview as
select * from student where name = '张三'
with check option; 

5、创建一个视图,从学生表中名字为‘张三’的学生中取,并且视图设置为只读

create or replace view studentview as
select * from student where name = '张三'
with read only;

四、索引的定义及使用

1、创建一个学生表,并给name建立索引

create index name_index on student (name);

五、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

到此这篇关于Oracle数据库对象的使用的文章就介绍到这了,更多相关Oracle数据库对象内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Oracle数据库失效对象处理详情

    近期对数据库进行巡检,发现数据库业务用户(非 SYS/Public)下存在失效对象.对失效对象进行分析,主要包括失效的视图.物化视图.函数.包.触发器等. 思考: 基于以下原因,建议对失效对象进行处理: 1.通过失效的对象,可能能够反推发现业务软件问题(业务系统功能太多,可能存在测试不充分的问题): 2.如果失效对象太多,业务又频繁调用的话,担心影响数据库性能(未进行测试,个人想法,如有错误请大家指正): 处理方式: 1.先搜索发现失效对象(在sys用户下执行) select owner, ob

  • 关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考

    在ORACLE中,我们可以通过file_id(file#)与block_id(block#)去定位一个数据库对象(object).例如,我们在10046生成的trace文件中file#=4 block#=266 blocks=8,那么我可以通过下面两个SQL去定位对象 SQL 1:此SQL效率较差,执行时间较长. SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME FROM DBA_EXTENTS WHERE FILE_ID =&F

  • ORACLE正则匹配查询LIKE查询多个值检索数据库对象

    字符串’^198[0-9]$’可以匹配‘1980-1989’,如果希望统计出公司那些员工是80年-89年入职的,就可以使用如下的SQL语句: select * from emp e where regexp_like(to_char( e.hiredate,'yyyy'),'^198[0-9]$'); 正则表达式中常用到的元数据(metacharacter)如下: ^ 匹配字符串的开头位置. $ 匹配支付传的结尾位置. * 匹配该字符前面的一个字符0次,1次或者多次出现.例如52*oracle

  • 解析Oracle数据库中的对象集合schema

    搭建一个oracle,下面会有很多schema,每个schema下的数据都不影响. 感觉和mysql的库的概念很像,现在用的数据库管理系统其实也是这么划分的,mysql用的ip+port+库标识,oracle用ip+port+schema标识,平时还总听到一个实例的概念,我的理解就是实例就是一系列相关进程,代表了一个数据库服务.目前线上为了节省资源,常常把机器分成多个实例,用不同的端口号标识,每个实例上有多个schema. 旭哥跟我说的很形象,oracle一个实例上有对应多个库.mysql一个库

  • Oracle数据库对象的使用详解

    目录 一.序列 二.同义词的作用 三.视图的定义及使用 四.索引的定义及使用 五.总结 一.序列 序列可以使用在数据库表的自动增长列中来用,假如我们的学生表的id想从1开始,然后自动增长,每次增加2,也就是学生id是1.3.5.7.9这种的,我们就可以配合序列来使用序列有以下属性sequence_name:序列名称min_value:当前序列的最小值max_value:当前序列的最大值increment_by:每次序列增长的步长cy:是否为循环序列or:是否需要排序cache_size:缓存个数

  • Oracle数据库的备份与恢复案例详解

    目录 1 逻辑备份/恢复(导出/导入) 1.必备参数 2.owner参数 3.tables参数 4.关于inctype参数 2 物理备份/恢复 1.冷备份/恢复 2.热备份/恢复 3 利用PL/SQL Developer备份数据库 在Oracle数据库的使用过程中,备份与恢复是经常遇到的操作.Oracle中的备份分为两大类:逻辑备份和物理备份.其中物理备份又分为两类:冷备份和热备份.本节将简要讲述如何利用各种备份手段进行Oracle数据库的备份与恢复. 1 逻辑备份/恢复(导出/导入) 逻辑备份

  • ORACLE数据库中Rownum用法详解

    ORACLE 中ROWNUM用法总结!  对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=),并非说用>,& gt;=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇,同样是伪列,rownum 与 rowid 可有些不一样,下面以例子说明: 假设某个表

  • oracle数据库的删除方法详解

    1.图形界面删除 练习之前记得创建快照 执行命令之前要保证数据库属于open状态 SQL> alter database open; [oracle@localhost ~]$ dbca 2.静默删除 使用DBCA进行删除的数据库必须处于OPEN状态,否则不能删除. SQL> alter database open; [oracle@localhost ~]$ dbca -silent -deleteDatabase -sourceDB OCPLHR1 3.SQL窗口 startup ##启动

  • C# Oracle数据库操作类实例详解

    本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长度等,同时还有哈稀表自动插入数据库等高级任务.需要特别指出的是:在执行SQL语句,返回 DataReader之前一定要先用.read()打开,然后才能读到数据,再用hashTable对数据库进行insert,update,del操作,注意此时只能用默认的数据库连接"connstr". 完整

  • oracle数据库tns配置方法详解

    TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器. TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC.如果通过TNS连接Oracle,那么客户端必须安装Oracle client

  • LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2)首先要打开监听器命令如下:lsnrctl start,然后sqlplus /nolog ,然后conn /as sysdba,然后startup(这一部分命令是用来打开oracle数据库) 3)查看我们常规将用户表空间放置的位置:执行如下sql: SQL> select

  • 深入分析C#连接Oracle数据库的连接字符串详解

    两种方式:1.IP+SID方式 2.配置链接方式1..IP+SID方式 复制代码 代码如下: DbHelperOracle.connectionString = string.Format(@"Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = {0})(PORT = 1521)))(CONNECT_DATA =(SID = {1})(SERVER = DEDICATED)));User Id={

  • Oracle数据操作和控制语言详解

    正在看的ORACLE教程是:Oracle数据操作和控制语言详解.SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL.其中用于定义数据的结构,比如 创建.修改或者删除数据库:DCL用于定义数据库用户的权限:在这篇文章中我将详细讲述这两种语言在Oracle中的使用方法. DML语言 DML是SQL的一个子集,主要用于修改数据,下表列出了ORACLE支持的DML语句. 插入数据 INSERT语句常常用于向表中插入行,行中可以有特殊数据字段,或者可以

  • Oracle安装卸载图文教程详解

    ORACLE安装与卸载步骤详解,供大家参考,具体内容如下 ORACLE安装步骤 1. 将win32_11gR2_database_1of2.zip与win32_11gR2_database_1of2.zip 解压到当前目录(PS:选中两个压缩包后右键解压到当前文件夹:必须同时解压,不能单独解压否则会覆盖文件) 2. 解压完成后设置文件兼容性: 进入 database文件夹 右键点击 setup.exe 属性-兼容性 3. 双击 setup.exe 进行安装 出现 doc窗口后 等待出现安装界面(

随机推荐