亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

pk+uk+fk+index

系統(tǒng) 1977 0

1.pk
數(shù)據(jù)庫表分為實體表和關(guān)系表。
實體表是用來描述在domain(領(lǐng)域模型)里確實存在的實體(人、財、物、時間、空間)及實體元素發(fā)生的活動(轉(zhuǎn)移)。實體表的pk一般由系統(tǒng)自動生成(SYS_GUID()和sequence)。
關(guān)系表是用來描述兩張實體表之間的多對多關(guān)系,關(guān)系表的pk一般是兩張實體表pk的聯(lián)合,此pk同時具有uk的功能,所以關(guān)系表不用再建uk。

--查詢pk缺失的表
select table_name from user_tables t where? not exists (select 1 from user_indexes i where i.table_name=t.table_name and uniqueness='UNIQUE' and index_name like '%PK%');
--創(chuàng)建pk
alter table yj_dcjxdy add constraint pk_yj_dcjxdy primary key (id);

2.uk
重復(fù)記錄的發(fā)生:在數(shù)據(jù)庫設(shè)計之初就考慮給每張表建UK,一般是不會出現(xiàn)重復(fù)記錄的情況,重復(fù)記錄的發(fā)生主要是因為uk缺失導(dǎo)致的。
uk在后期的調(diào)整大多是增加屬性,此時不會出現(xiàn)重復(fù)記錄的情況;當(dāng)uk的調(diào)整是減少屬性是,可能出現(xiàn)重復(fù)記錄。

--查詢uk缺失的表
select table_name from user_tables t where? not exists (select 1 from user_indexes i where i.table_name=t.table_name and uniqueness='UNIQUE' and index_name like 'UK_%');
--刪除重復(fù)記錄
delete from yj_dcjxdy e where e.rowid > (select min(x.rowid) from yj_dcjxdy x where x.dcgid = e.dcgid);
--創(chuàng)建uk
create unique index UK_yj_dcjxdy on yj_dcjxdy (dcgid);

3.fk+index
fk是用來描述兩張實體表之間的一對多關(guān)系(兩張實體表之間一般不存在一對一的關(guān)系,如果有一對一的兩張實體表,完全可以合并成一張實體表)。
fk與pk的區(qū)別在于,oracle自動給pk建索引,但默認(rèn)不給fk建索引。
fk不建索引的后果是:在多表級聯(lián)查詢時,沒有索引,將觸發(fā)全表掃描,在數(shù)據(jù)量大的情況下,會慢的一塌糊涂。

--查詢fk沒有建index的情況
select table_name, constraint_name,
cname1 || nvl2(cname2,','||cname2,null) ||nvl2(cname3,','||cname3,null) || nvl2(cname4,','||cname4,null) ||nvl2(cname5,','||cname5,null) || nvl2(cname6,','||cname6,null) ||nvl2(cname7,','||cname7,null) || nvl2(cname8,','||cname8,null) columns
from (select b.table_name, b.constraint_name, max(decode( position, 1, column_name, null )) cname1, max(decode( position, 2, column_name, null )) cname2,
??max(decode( position, 3, column_name, null )) cname3, max(decode( position, 4, column_name, null )) cname4, max(decode( position, 5, column_name, null )) cname5, max(decode( position, 6, column_name, null )) cname6,
??max(decode( position, 7, column_name, null )) cname7, max(decode( position, 8, column_name, null )) cname8, count(*) col_cnt
? from (select substr(table_name,1,30) table_name,substr(constraint_name,1,30) constraint_name,substr(column_name,1,30) column_name,position from user_cons_columns ) a,
?????? user_constraints b
? where a.constraint_name = b.constraint_name and b.constraint_type = 'R' group by b.table_name, b.constraint_name
????? ) cons
?where col_cnt > ALL
? (select count(*)
? from user_ind_columns i
? where i.table_name = cons.table_name and i.column_name in (cname1, cname2, cname3, cname4, cname5, cname6, cname7, cname8 )
?? and i.column_position <= cons.col_cnt
?? group by i.index_name
? ) order by table_name;

--創(chuàng)建index
create index idx_xt_yh_szbm on xt_yh (szbm);

4.引用
select * from user_constraints???????????????????????????? 約束表
select * from user_cons_columns??????????????????????????? 約束引用列表?? position 列在約束中的位置
select * from user_indexes order by uniqueness,index_name? 索引表
select * from user_ind_columns???????????????????????????? 索引引用列表?? column_position 列在索引中的位置
select * from user_tables order by table_name????????????? 物理表
select * from user_segments??????????????????????? 物理表和索引表
segment是指可增長的對象,如:表、索引;
其余的像 procedure、package、package body、type、type body、function、trigger都是不可增加對象,
按行存貯在source$的source varchar2(4000)屬性中(即每行不能超多4000字節(jié));
其中trigger還有另外一個限制,trigger的名稱存放在obj$.name中;
trigger的內(nèi)容作為匿名塊存放在trigger$.action#(long類型 32MB 32760B)中,
即trigger的長度不能超過32760B。

pk+uk+fk+index


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: www香蕉视频| 日韩色区 | 完整日本特级毛片 | 久久久无码精品亚洲日韩按摩 | 国产国产成人人免费影院 | 爱操视频在线观看 | 国产1区 | 大陆一级毛片免费视频观看i | 按摩理论片 | 99尹人香蕉国产免费天天在线 | 好吊色青青青国产欧美日韩 | 瑟瑟综合 | 国产大陆亚洲精品国产 | 国产网红福利视频网站 | 亚洲精品日本一区二区在线 | 99久久久国产精品免费播放器 | 欧美特级爽毛片 | 99re6这里只有精品视频 | 日本在线高清不卡 | 日一级片| 久久精品综合免费观看 | 欧美洲久久日韩欧美 | 免费一级毛片在线播放不收费 | 97在线视频99播放 | a毛片免费全部播放完整成 a毛片免费全部在线播放毛 | 朴妮唛禁福利视频在线 | 免费中文字幕一级毛片 | 国产 在线 | 日韩 | 在线观看免费情网站大全 | 波多野吉衣一区二区三区在线观看 | 国产一区二三区 | 中文字幕精品在线观看 | 欧美成人免费在线视频 | 久草男人天堂 | 久久这里只有精品免费播放 | 国产精品伦理久久久久久 | 狠狠久久久久久亚洲综合网 | xxxx日本免费高清视频 | 亚洲欧美日韩国产一区二区精品 | 亚洲精品日韩中文字幕久久久 | 牛牛色婷婷在线视频播放 |