关于oracle数据库(11)
事务
事务是最小的工作单元,是对数据库的若干操作,增删查改(要不就都成功,要不就都失败)
在oracle数据库中,事务是默认打开的,其他数据库都需要一条语句来打开事务,默认关闭的
事务的特征
原子性、一致性、隔离性、永久性
比如如果发生了错误(异常)
rollback; --回滚
在哪里执行就在哪里提交
在oracle里面一次连接(会话)就是一个事务
select * from student;
savepoint p1; --标记一个位置(事务保存点)
insert into student value();
savepoint p2; --标记一个位置(事务保存点)
insert into student value();
savepoint p3; --标记一个位置(事务保存点)
insert into student value();
savepoint p4; --标记一个位置(事务保存点)
insert into student value();
rollback to p1; --回退到指定位置
commit; --一旦执行commit之后,数据就是永久的了
数据库都有一个锁机制,当一个事务在修改某一条数据的时候,数据库会将被修改的那条数据锁住,不让其它事务修改
delete from student where sid='';
select * from student for update;
删除的时候可以锁,查询的时候也可以锁
序列 一个自动增长的对象
create sequence 序列名称;
create sequence sq1;
序列的使用
select sq1.nextval from dual; --每用1次就增加1
insert intd student values(sq1.nextval,'java',3);
increment by 1 --每次加几个
start with 1 --从1开始计数
nomaxvalue --不设置最大值
nocycle --一直累加,不循环
cache 10 --内存缓冲
查询当前序列sq1.currval
select sq1.currval from dual;
查询下一个序列sq1.nextval
select sq1.nextval from dual;
同义词
create synonym emp11 for emp; --给emp表取别名emp11
select * from emp11;
create synonym sq11 for sq1; --给序列sq1取别名sq11
select sq11.nextval from dual;
作用:一个表可以有多个别名;不想把真名告诉其它用户,删除别名,就查不了
drop synonym 别名; --删除别名
视图★
视图是一张虚拟表,数据来自于真实表,修改视图会影响真实表
作用:保护一些需要权限的字段不被其它用户看到;简化查询操作
建立视图
create view 视图名称 as 查询语句
create view v1 as select ename,sal from emp;
比如不想让行政部的人看到工资,但又想他管理员工(把视图的权限赋予给行政部就看不到工资了)
create view xz_emp as select empno,ename,job,hiredate,deptno from emp;
select * from xz_emp;
简化
--保存查询语句
create view student2 as
select sname,sid,cname from student s inner join myclass m on s.cid=m.cid
select * from student2
删除视图
drop view 视图名称;
索引(目录)
优化查询,提高sql语句执行性能(数据查询时,速度会提高一些)
简化磁盘读写
在逻辑上和物理上都独立于表的数据
索引只能建在列上面,每列只能建一个索引
系统会给主键建一个索引,不能手动给主键建立索引
如果每列都建一个索引,会提高查询效率,会降低增删改效率
一般是作为条件的列,比如:where后面的列 order by后面的列等
给ename列创建一个索引
create index inx_ename on emp(ename);
不需要手动调用,系统会自动使用
删除索引
drop index inx_ename;
唯一索引(确保定义索引的列中没有重复值)
create unique index 索引名 on 表名(字段名);
组合索引
create index 索引名 on 表名(字段1,字段2,...);
反向键索引(用于模糊查询的列)
create index 索引名 on 表名(字段名) reverse;
比如很长的字符串 需要模糊查询
select text from 表 where text like %张三%; --模糊查询效率比较低 少用
位图索引
适合创建在低基数列上(取值较少,重复值较多)
关于oracle数据库(11)的更多相关文章
- CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系
CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...
- AppFuse3.5对接oracle数据库
AppFuse是一个使用Java语言开发web应用系统的集成框架.java开发人员最头痛的事情就是面对大量的框架不知该如何选择.这些框架性能如何,兼容性如何等等都需要筛选比较.Appfuse作者Mat ...
- P6 EPPM手动安装指南(Oracle数据库)(一)
P6 EPPM手动安装指南(Oracle数据库) P6 EPPM Manual Installation Guide (Oracle Database) 1. 内容... 1 1.1. ...
- Oracle数据库的版本变迁功能对比
Oracle数据库自发布至今,也经历了一个从不稳定到稳定,从功能简单至强大的过程.从第二版开始,Oracle的每一次版本变迁,都具有里程碑意义. 1979年的夏季,RSI(Oracle公司的前身,Re ...
- oracle数据库常用SQL语句(11.29更新)
笔者日常工作中常用到的sql语句,现总结如下,留作日后查看. 1.按照两列中的最大值取 ,只取两列其中的一列 SELECT * FROM t_doc T ORDER BY GREATEST(T.Loa ...
- 探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1)
探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1) 一.前言: Oracle 12c公布距今已经一年有余了,其最大亮点是一个能够插拔的数据库(PD ...
- Oracle安装11.2.0.4.180116补丁及如何检查数据库安装补丁
最近做了一个安装11.2.0.4.180116补丁的实验,突然想起之前和同事讨论的一个问题:如何检查数据库安装补丁的版本,之前搜到的是去查dba_registry_history,有的说在操作系统中执 ...
- Oracle 数据库 Database Express Edition 11g Release 2 (11.2) 错误解决集锦(安装方面)
前言:第一次接触数据库,想下载个oracle试玩下(虽然听说一般大企业才用),到 官网下载 了个简易版 XE 版本,安装时要注意记住自己输入的数据库密码(口令) 还有安装路径不能含有空格(Do no ...
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
随机推荐
- iOS网络通信http之NSURLConnection
iOS网络通信http之NSURLConnection 移动互联网时代,网络通信已是手机终端必不可少的功能.我们的应用中也必不可少的使用了网络通信,增强客户端与服务器交互.这一篇提供了使用NSURLC ...
- centos6.5 搭建nginx1.6.0 +gridfs +mongodb2.4..10环境
一) 缘由 因为公司业务需要,需要搭建图片服务器,需求很简单:读取+上传图片,当时第一考虑用nginx来作,但考虑到单纯用nginx来作,无法水平扩展和管理,一旦遇到海量图片,就无办法 扩展.所以考虑 ...
- 工作流--JBPM核心服务及表结构
一. 使用JBPM开发工作流的一般流程 1. jBPM的运行需要数据库的支持,因此系统设计时要选定所用数据库.只要是Hibernate支持的数据库,jBPM就支持.数据库的初始化 ...
- c++字符串连接方法大观
c++字符串连接方法大观 抛砖引玉: springf(config_itemID[i],"ItemID%s_%d",i,i); 大家说说自己都用什么方法,个有什么利弊呢?
- 办理布鲁克大学(本科)学历认证『微信171922772』Brock学位证成绩单使馆认证Brock University
办理布鲁克大学(本科)学历认证『微信171922772』Brock学位证成绩单使馆认证Brock University [寻-求-当-地-合-作-代-理-人-员] 丨Q微-1719-22772丨學丨历 ...
- PostScript学习:另一种缩写为PS的技术
1.前言 PostScript是一种编程语言,直译为"后处理脚本"[相对印刷过程而言],学名为页面描述语言.更为详细的解释见维基百科,以及其翻译版百度百科. 值得一提的是,Post ...
- [HMLY]11.iOS函数式编程的实现&&响应式编程概念
简介 本篇主要回顾一下--iOS函数式编程 && 响应式编程概念 ,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit源码有一定的帮助. 作为一 ...
- 在使用cognos时遇到的问题记录帖
在使用cognos时遇到的问题记录帖 1.开一个project 报无法访问位于 URL 的服务: http://localhost:80/ibmcognos/cgi-bin/cognos.cgi?b_ ...
- 最全js 放大镜效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- VS2010下调试.NET源码
微软走向开源,是时候用vs去单步调试进入源码了.参考地址:http://blog.csdn.net/waxgourd0/article/details/6600182 可供参考的文章:https:// ...