oracle 基础总结笔记(二)

 

----外连接

外连接的连接符(+)

外连接符放在没有数据可被关联的一边数据少的一边 ),只能在表达式的一侧

使用外连接可以查到正常连接没有产生关联的一些数据使用。

外连接符号外连接不能够使用IN表达式,不能和其他查询条件通过OR来连接。

 

 

----自连接

自连接即同一个表内的记录关联。

通过使用两个别名来模拟FROM子句中的两张表

 

----数据库事务管理

事务开始于第一个数据操作SQL命令

事务结束于一下事件,

   —COMMIT 或 ROLLBACK命令执行

   —DDLDCL命令执行自动提交 )

   — Errors exitor system crash

 

 产生自动提交的情况:

—执行了DDL命令,如 CREATE

—执行了DCL命令,如GRNAT

—系统崩溃产生自动回滚。

 

 

-----COMMIT或 ROLLBACK之前的数据状态

数据保存在数据库buffer 中,

修改前的数据可以恢复

当前用户可以通过SELECT查看DML操作的结果

其他用户不能看到此用户DML操作的结果。

被操作数据处理数据库锁状态;其他用户不能对这些数据进行操作。

 

----COMMIT 后的数据状态

数据变化已经写到数据库中

变化前的原数据不可恢复

所有用户能看到变化后的结果

记录的数据库锁被释放

 

----ROLLBACK后的数据状态

回滚所有数据变化

数据改变无效

元数据被恢复

数据库锁被释放

 

回滚数据到SAVEPOINT标记

在当前事务中通过SAVEPOINT创建标记

通过ROLLBACK TO  SAVEPOINT  命令进行回滚。

 

----常用数据类型

varchar2(size) 可变长度字符串,最大是4000

char(size)     固定长度字符串

number(p,s)    浮点数字

date           日期时间型

Long           可达2G的变长字符串

RAW and LONG RAW 可变长的2进制方式存储的字符串。

 

----表中的字段改变

增加字段:在表结构中是最后一个字段。

ALTER  TABLE  tablename  add();

 

修改字段:类型,大小,缺省值和非空字段属性。

ALTER  TABLE tablename  MODIFY(修改字段);

 

字段不能被删除。

 

-----表的删除

DELETE       删除表的数据,删除的数据可以回滚

TRUNCATE命令 删除表中所有记录,释放表的存储空间,数据不能回滚

DROP         彻底删除表,所有事物会提交,表的相关索引被删掉,无法恢复。

 

-----索引

什么事索引

数据库对象,提高数据操作速度,通过快速定位数据位置减少磁盘I/O

 

索引类型:

唯一索引:确保字段中值唯一性

非唯一索引:提高查询速度

单字段索引:索引建立在一个字段上

复合索引:索引建立在多个字段上

 

建立索引语法:

 CREATE  INDEX  indexname  ON  tablename(column);

删除索引:DROP  INDEX  indexname

 

索引创建原则:

对在WHERE中经常使用或经常用来做关联的字段创建索引.

字段中有很多不同的值.

WHERE条件或关联条件中经常一起使用的两个或多个字段可以做复合索引

表非常大,而且每次查询的结果大多在全部记录的2%以下.

更多的索引并不一定能提高查询速度.

 

以下情况不必创建索引

表中数据很少.

不经常用来作为查询条件的字段.

大部分查询都希望得到2%以上的数据

表被频繁的UPDATE.

 

你可能感兴趣的:(oracle,索引)