創(chuàng)建成績表T_GRADE,并把學號S_ID+課程編號C_ID設為復合主鍵。
在潛山等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站制作、網(wǎng)站建設 網(wǎng)站設計制作按需定制,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設,潛山網(wǎng)站建設費用合理。
Create Table T_GRADE( --學生成績表
S_ID Number(8), --學生編號
C_ID number(4), --課程編碼
G_PS varchar2(6), --平時成績
G_KS varchar2(6), --考試成績
Constraint Grade_pk Primary Key (S_ID,C_ID)); --表級復合主鍵
可以設置復合外鍵。設置方法與復合主鍵一樣,Primary Key(...) 換成
FOREIGN KEY(...) REFERENCES 主表(...)
或 ALTER TABLE 表 ADD CONSTRAINT 外鍵名
FOREIGN KEY(復合外鍵) REFERENCES 主表(主鍵|唯一鍵);
復合主鍵沒法忽略順序,因為復合索引在使用的時候語言遵照最左選擇
像資源管理器中選擇文件一樣,按住Ctrl,然后選中多個要被設置成主鍵的字段,最后點擊右鍵,選擇(主鍵)即可,或者直接點擊工具欄上的鑰匙圖標即可。 備注:本操作適合在Access和SQL上操作,Oracle不得知。
你說的是單一主鍵和聯(lián)合主鍵的問題,一個表只能有一個主鍵: 基于一列的主鍵:alter table test add constraint PK_TEST primary key(ename); 基于多列的聯(lián)合主鍵: alter table test add constraint PK_TEST primary key(ename,birthday);
建表時候設置
CREATE TABLE TAB (
ID1 NUMBER(10) ,
ID2 NUMBER(4),
CREDIT NUMBER(2),
CONSTRAINT PK_TAB PRIMARY KEY (ID1,ID2) -- 主鍵
);
或者建表之后追加
alter table tab add constraint pk_tab2 primary key (id1,id2);
看下下邊這句運行的結果
select?distinct?a.zhanghbm?as?jigh?,a.kehh?,a.zhanghxz?as?duizlx?from?d_zhanghb?a,?d_kemb?b?where?a.kem=b.kemh?and?(a.zhanghye10000.00?or?a.nianjs1800000.00)?order?by?a.zhanghbm,a.kehh?;
你看前兩個字段有沒有重復的,應該肯定有重復的,沒重復就不報錯了,因為你有聯(lián)合主鍵
只不過查出來要怎么辦???你還想強行插的話,就得把聯(lián)合主鍵刪掉
網(wǎng)站欄目:oracle怎么復合鍵 oracle建立外鍵
標題鏈接:http://chinadenli.net/article44/hgcdee.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計、移動網(wǎng)站建設、微信公眾號、云服務器、App開發(fā)、網(wǎng)站導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)