前言
在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容…
在数据库中,我们可以把各种的SQL语句分为四大类…
批量操作
何为批量操作,就是一次性插入多条数据….在SQL中oracle查看实例名,我们查询出来的数据可看成是一张表,那么我们在插入数据的时候,可以根据查询出来的数据进行插入…这就可以看成是批量操作…
值得注意的是,如果没有指定插入哪些字段的话,那么查询出来的全部字段均会插入表中..
删除操作对比
我们的删除语法有三种:
我们来对比一下他们的区别:
drop table
truncate table
delete from
事务
事务其实我们在JDBC章节中已经讲解过了,详情可查看我JDBC的博文。
再次明确一下:事务就是让一个不可分割的子操作形成一个整体,该整体要么全部执行成功,要么全部执行失败
我们值得注意的是Oracle中的事务与Mysql中的事务操作是有些不同的:
Oracle的事务开始:
Oracle的提交事务
Oracle的回滚事务
因为Oracle有实例池这个概念,所以Oracle支持回滚…
这里写图片描述
Oracle默认支持的隔离级别是:read commited
Mysql默认支持的隔离级别是:reapatable read
访问其他用户的对象
在上一篇博文已经说了,Oracle将表/用户都看成是对象…那么我们怎么在scott用户下访问hr用户下的表呢???
其实,我们只要在访问表的时候,指定具体的用户.数据库表就行了,但是呢,还要看看该用户有没有权限查询别的用户的数据表,于是就需要赋予权限了…
视图
视图是一种基于数据表的一种虚表
为什么要用到视图?
有的时候,我们可能只关系一张数据表中的某些字段,而另外的一些人只关系同一张数据表的某些字段…
那么把全部的字段都都显示给他们看,这是不合理的。我们应该做到:他们想看到什么样的数据,我们就给他们什么样的数据…一方面就能够让他们只关注自己的数据,另一方面,我们也保证数据表一些保密的数据不会泄露出来…
这里写图片描述
还有另外一个原因:
我们在查询数据的时候,常常需要编写非常长的SQL语句,几乎每次都要写很长很长….上面已经说了,视图就是基于查询的一种虚表,也就是说,视图可以将查询出来的数据进行封装。。。那么我们在使用的时候就会变得非常方便…
小总结:
同义词
我们在使用多表查询,或者查询出来的表字段意义不清晰的时候,我们就使用别名来替代….当然了,别名只针对列名或表名
现在,我们已经知道的对象有用户/视图/表等等其他对象了,Oracle也提供了同义词【类似于别名】给我们进行使用
同义词的作用
序列
Mysql的自动增长可以直接在创建表的时候,在字段后面跟上auto increament关键字就行了。那Oracle 有没有自动增长策略呢???
Oracle使用的是序列这么一个对象….
(5)序列值,可放于内存,取之较快
那oralce中的序列和Mysql中的自动增长有啥区别???
这里写图片描述
有的同学可能会疑问oracle查看实例名,我们在分页的时候用到了rownum这么一个伪列,为啥不用它来做自动增长的呢???
rownum的值虽然是唯一和连续的,但是不能一直唯一标识该记录…也就是说,一旦该记录删除了,那么rownum的值是会变的。
为什么要用序列
索引什么是索引
什么是索引【Index】
(1)是一种快速查询表中内容的机制,类似于新华字典的目录
(2)运用在表中某个/些字段上,但存储时,独立于表之外
为什么要用索引
为什么要用索引
索引表把数据变成是有序的….
这里写图片描述
快速定位到硬盘中的数据文件…
这里写图片描述rowid特点
rowid的特点
索引特点
索引的特点
需要注意的是:Oracle是自动帮我们管理索引的,并且如果我们指定了primary key或者unique约束,系统会自动在对应的列上创建索引..
什么时候【要】创建索引
什么时候【不要】创建索引
权限与用户
这里写图片描述
如果文章有错的地方欢迎指正,大家互相交流。习惯在微信看技术文章,想要获取更多的Java资源的同学,可以关注微信公众号:Java3y
———END———
限 时 特 惠:本站每日持续更新海量各大内部创业教程,一年会员只需128元,全站资源免费下载点击查看详情
站 长 微 信:jiumai99
2.本站所有项目来源于投稿或购买自其他第三方,若本站侵犯了您的权益请 联系站长 进行删除处理。