oracle 基础总结笔记(二)
?
----外连接
外连接的连接符(+)
外连接符放在没有数据可被关联的一边(?数据少的一边?),只能在表达式的一侧
使用外连接可以查到正常连接没有产生关联的一些数据使用。
外连接符号外连接不能够使用IN表达式,不能和其他查询条件通过OR来连接。
?
?
----自连接
自连接即同一个表内的记录关联。
通过使用两个别名来模拟FROM子句中的两张表
?
----数据库事务管理
事务开始于第一个数据操作SQL命令
事务结束于一下事件,
???—COMMIT?或?ROLLBACK命令执行
???—DDL或DCL命令执行(?自动提交?)
???—?Errors?,exit,or?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.
?
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。