oracle必看经典.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oracle必看经典.doc

oracle?建立主键与索引 (2008-05-04 11:24:39) 转载 标签: oracle 主键 索引 index unique primary key 分类: 创建主键: alter table T add primary key (V) T是表名,V是列名 ? 创建索引:? create index F2009100000NMINFOSYS_XIANG on f2009100000nminfo( SYS_XIANG ); 创建一般索引,索引名为表名+列名 ? create unique index F2009100000NMINFOSYS_ZDM on f2009100000nminfo( SYS_ZDM ); 创建唯一索引 ? create BITMAP index F2009100000NMINFOSYS_XIANG on f2009100000nminfo( SYS_XIANG ); 创建位图索引 ? 完整语法如下: CREATE (UNIQUE|BITMAP) INDEX [用户名.]索引名 ON [用户名.]表名 (列名 [ ASC | DESC], [列名 [ ASC | DESC]]...) [ TABLESPACE 表空间名 ] [?PCTFREE?正整型数?] [?INITRANS?正整型数?] [?MAXTRANS?正整型数?] [ 存储子句 ] [?LOGGING |?NOLOGGING?] [?NOSORT?] ? Oracle中怎么知道表没有建立主键? 一般的情况下,表的主键是必要的,没有主键的表可以说是不符合设计规范的。 SELECT table_name FROM User_tables t??WHERE NOT EXISTS?? (SELECT table_name FROM User_constraints c WHERE constraint_type = P AND t.table_name=c.table_name) 其它相关数据字典解释 user_tables? ?? ???表 user_tab_columns? ?表的列 user_constraints? ? 约束 user_cons_columns??约束与列的关系 user_indexes? ?? ? 索引 ? Oracle建立自增主键 CREATE TABLE example( ID Number(4) NOT NULL PRIMARY KEY, NAME VARCHAR(25), PHONE VARCHAR(10), ADDRESS VARCHAR(50)); 如果对于以上的建表语句还有疑问的话,建议您不要继续了!有那么些时间您还不如去看看金庸读读琼瑶! 然后,你需要一个自定义的sequence CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 NOCACHE -- 不建缓冲区 以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle 是决定不循环,如果你设置了最大值那么你可以用cycle 会使seq到最大之后循环.对于nocache顺便说一下如果你给出了cache值那么系统将自动读取你的cache值大小个seq ,这样在反复操作时会加快运行速度,但如果遭遇意外情况如当机了或oracle死了,则下次取出的seq值将和上次的不连贯.(如果连不连贯无所谓建议用cache,因为时间就是金钱呀!跑题了!) 书接上文,你只有了表和序列还不够,还需要一个触发器来执行它!代码如下: CREATE TRIGGER 触发器名称 BEFORE INSERT ON example FOR EACH ROW WHEN (new.id is null) begin select emp_sequence.nextval into: new.id from dual; end; 打完收工!下面你就试试插入数据吧! INSERT INTO example(Name,phone,address) Values(CaoHeibei); ? ? Primary Key与Unique Key Primary key 与Unique Key都是唯一性约束。但二者有很大的区别: 1、Primary key的1个或多个列必须为NOT NULL,如果列为NULL,在增加PRIMARY KEY时,列自动更改为NOT NULL。而UNIQUE KE

文档评论(0)

zhiminwei + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档