Oracle初学者笔记(五)

王朝oracle·作者佚名  2006-11-24
宽屏版  字体: |||超大  

死锁

如上节讲的,如果A用户给一个表加了共享锁,而B用户也给同一个表加了

共享锁,那么A如果进行插入,删除,更新操作时,必须等待B来解锁,

而如果B又进行同样性质的操作,又在等A来解锁,这样就产生了死锁;

其实既然有锁,那就一定会有死锁;

Oralce数据库的表结构

通过图形化的界面可以直接创建表,而不一定是用SQL语句;

表的创建和维护:

create table tablename

(

...

...

);

number类型是int类型的父类型;

//凡是对表中数据操作的sql语句不需要带一个table关键字;

//而对表进行操作的sql,如create,drop,alter都需要带着

//table以表明是对表操作而不是表中的数据;

//对应着我们有insert,delete,update;

更改表:

添加列:alter table tablename add(新列名定义);

删除列:alter table tablename drop column 列名;

更改列:alter table tablename modify(列的重新定义);

增加约束:alter table tablename add constraint pk_stuno primary key(stuno);

删除约束:alter table tablename drop constraint pk_stuno;

rollback没什么用;确实没用;发现在数据库定义语言执行的过程中,没有事务的控制,做就直接做了,

这就引发了一个问题:有人在使用某个表的时候,我如果改变这个表的结构??

解决的办法是:alter table tablename set unused column 列名;

数据字典:desc user_constraints;

表分区:

范围分区法:按照逻辑上的分段在物理存储上也相应分区;

散列分区法:

符合分区:范围与散列的总结,先进行大的范围分区,然后在

小范围中进行散列分区;

列表分区:当要参考分区的列的值没有边界,并且只有少数几个

数据的不断重复时,无论是范围分区还是散列分区都不再

适用,此时用列表分区;

把不想用的列置为无用状态;

在闲暇的时间:alter table tablename drop unused columns;

把无用状态的列删除;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有