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.

?

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。