Oracle学习————【数据库对象】

1 DDL

使用DDL来管理数据库的对象。

那Oracle数据库中有哪几个常用对象呢?表、视图、序列、索引、同义词、存储过程、存储函数、触发器、包、包体。

1.1 表空间

在这里插入图片描述
在这里插入图片描述
在创建表时字段可以指定哪些数据类型?如下
在这里插入图片描述
这里说一下ROWID,它是一个伪列
在这里插入图片描述
可以看到ROWID像是UUID一样是每行数据对应唯一的一个id

1.1.1 如何通过子查询创建一张表?

在这里插入图片描述

1.1.2 如何查看当前用户下所存在表?

语句:select * from tab;

1.2 修改表

修改表的操作:增加新列,修改列,删除列,重命名列,重命名表

1.2.1 增加新列

alter table test1(表名) add (字段名) (字段类型);

1.2.2 修改列

alter table test1(表名) modify (字段名) (字段类型);

1.2.3 删除列

alter table test1(表名) drop column (字段名);

12.4 重命名列

alter table test1(表名) rename column (原字段名) to (新字段名);

12.5 重命名表

rename (原表名) to (新表名);

1.2 删除表

语法:DROP TABLE 表名

注意一点:当我们使用这句删除表语法时,其实这张表并没有被真正的删除掉,而是相当于进入了Oracle的回收站。

那问题来了,如何查看Oracle回收站呢?
在这里插入图片描述
那么如何清空回收站呢?
在这里插入图片描述
注意:在Oracle中并不是所有人都有回收站的。管理员没有回收站,当以管理员身份drop掉一张表那么将会是永远删除。

那么如何将回收站中表给还原回来呢?
在这里插入图片描述

1.2.1 简单说一下Oracle11g中有几种闪回类型?

  1. 闪回删除
  2. 闪回数据归档 (Oracle10g中没有这项)
  3. 闪回表
  4. 闪回查询
  5. 闪回版本查询
  6. 闪回事务查询
  7. 闪回数据库

1.3 约束

在这里插入图片描述
检查性约束:类似Java中的枚举类来约束值的选择范围。

检查性约束的使用:
在这里插入图片描述
那么在创建表的时候怎么样设置约束名字呢?如下
在这里插入图片描述

1.3.1 唯一性约束

如果我们使用唯一性约束其实就自带索引作用

2 视图

在这里插入图片描述

  1. 视图本身是不存数据的
  2. 视图是能创建、删除和替换,不能修改。
  3. with read only表示为只读,不能修改。
  4. with check option表示只能处理视图范围内的数据

2.1 视图中使用DML的规定

当视图定义中包含以下元素之一时不能使用update:

  1. GROUP BY语句
  2. DISTINCT 关键字
  3. ROWNUM伪列
  4. 列的定义为表达式

3 序列

序列:可供多个用户用来产生唯一数值的数据库对象。

  • 自动提供唯一的数据
  • 共享对象
  • 主要用于提供主键值
  • 将序列值装入内存可以提高访问效率
    在这里插入图片描述
  • 上图中括号栏位为非必填项:increment by----步长:序列增长的跨度,start with—序列开始值,默认为1开始,maxvalue和minvalue为最大最小值,这里也可以设置为NOMAXVALUE没有最大,NOMINVALUE没有最小值,cycle为循环或nocycle不循环,当然序列做主键是不会循环的。cache为缓存,表示这个序列数组的长度默认20,如果nocache数组长度就是1。
  • 序列创建完成之后,所有的自动增长应该由用户自己处理,所以在序列中提供了以下的两种操作:nextval:取得序列的下一个内容。currval:取得序列的当前内容

4 索引

什么情况下可以创建索引?

  1. 列中数据值分布范围很广
  2. 列经常在WHERE子句或连接条件中出现
  3. 表经常被访问而且数据量很大,访问的数据大概占数据总量的2%到4%

下列情况不要创建索引:
4. 表很小
5. 列不经常作为链接条件或出现在WHERE子句中
6. 查询的数据大于2%到4%
7. 表经常更新

4.0 执行计划

如何知道我们一条查询语句是否高效率?我们可以通过执行计划查看,当我们想查看某条查询语句的执行计划怎样的时候,需在这条查询select语句前加上explain plan for 执行,执行后再执行select * from table(dbms_xplan.display);

4.0.1 查看执行计划结果判断效率

在这里插入图片描述

4.1 单列索引

在这里插入图片描述

4.2 复合索引

在这里插入图片描述

4.3 Oracle中的索引类型

  1. B树(默认)
  2. 位图

5 同义词

同义词其实就是别名

语法:
在这里插入图片描述

6 触发器

数据库触发器是一个与表相关联的、存储的PL/SQL程序。每当一个特定的数据操作语句(insert、update、delete)在指定的表上发出时,Oracle自动地执行触发器中定义的语句序列。

6.1 触发器总结

6.1.1 触发器可用于

  • 数据确认
  • 实施复杂的安全性检查
  • 做审计(日志),跟踪表上所做的数据操作等
  • 数据的备份和同步

利用触发器来做审计叫“值的审计”,oracle还有其他4种审计:强制审计,标准审计(配置),细粒度审计,管理员审计

6.1.2 创建触发器

CREATE [or REPLACE] TRIGGER 触发器名
{BEFORE | AFTER}
{DELETE | INSERT | UPDATE [OF 列名]}
ON 表名
[FOR EACH ROW [WHEN(条件)]]
PLSQL块

6.1.3 触发器类型

6.1.3.1 语句级触发器

在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行

6.1.3.2 行级触发器(FOR EACH ROW)

触发语句作用的每一条记录都被触发。在行级触发器中使用:old和:new 伪记录变量,识别值的状态。

7 整理的一些相关链接

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值