工具/材料
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出門(mén)頭溝免費(fèi)做網(wǎng)站回饋大家。
SQL Developer
01
首先打開(kāi)SQL Developer軟件,找一個(gè)沒(méi)有主鍵約束的表,如下圖所示
02
然后我們新建一個(gè)查詢,在界面中輸入如下的約束修改語(yǔ)句,如下圖所示,主要通過(guò)add constranint來(lái)添加約束
03
編寫(xiě)完約束添加語(yǔ)句以后,點(diǎn)擊工具欄中的執(zhí)行按鈕,如下圖所示,如果輸出欄顯示已變更則證明主鍵約束創(chuàng)建成果
04
然后我們進(jìn)入STUDENT表的約束添加頁(yè)中可以看到,我們加的主鍵約束已經(jīng)添加進(jìn)去了,如下圖所示
05
另外,創(chuàng)建表的時(shí)候可以直接添加主鍵約束,如下圖所示,直接在表創(chuàng)建語(yǔ)句中添加constraint即可
06
表創(chuàng)建完以后,記得在左側(cè)刷新數(shù)據(jù)庫(kù)信息,如下圖所示,因?yàn)槟銊?chuàng)建的信息不刷新的話不會(huì)更新
07
最后打開(kāi)你所創(chuàng)建的表,看到你添加的主鍵約束已經(jīng)加入進(jìn)來(lái)了,這種方式的效果alter的方式是一樣的
1.創(chuàng)建表時(shí):
create table table_name
(
first_name varchar2(12),
second_name varchar2(10),
idcard varchar(36),
home_name varchar(66),
constraint pk_table_name primary key(first_name,second_name,idcard) -- 聯(lián)合主鍵
);
2.創(chuàng)建表之后追加聯(lián)合主鍵
alter table table_name add constraint pk_table_name primary key (first_name,second_name);
一、權(quán)限分為系統(tǒng)權(quán)限及對(duì)象權(quán)限。
1、系統(tǒng)權(quán)限:系統(tǒng)規(guī)定用戶使用數(shù)據(jù)庫(kù)的權(quán)限。(系統(tǒng)權(quán)限是對(duì)用戶而言)。
1)、DBA: 擁有全部特權(quán),是系統(tǒng)最高權(quán)限,只有DBA才可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)。
2)、RESOURCE:擁有Resource權(quán)限的用戶只可以創(chuàng)建實(shí)體,不可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)。
3)、CONNECT:擁有Connect權(quán)限的用戶只可以登錄Oracle,不可以創(chuàng)建實(shí)體,不可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)。
對(duì)于普通用戶:授予connect, resource權(quán)限。
對(duì)于DBA管理用戶:授予connect,resource, dba權(quán)限。
2、對(duì)象權(quán)限:某種權(quán)限用戶對(duì)其它用戶的表或視圖的存取權(quán)限。(是針對(duì)表或視圖而言的)。
CREATE SESSION,創(chuàng)建會(huì)話,才可以打開(kāi)界面
CREATE TABLE,創(chuàng)建表,可創(chuàng)建空表,但沒(méi)有權(quán)限插入數(shù)據(jù)
CREATE SEQUENCE創(chuàng)建序列
CREATE VIEW,創(chuàng)建視圖
1.先清理現(xiàn)有的數(shù)據(jù)并規(guī)劃只能一個(gè)主鍵,或者考慮組合主鍵(即ID列與另一個(gè)關(guān)鍵列組合成主鍵)
2.通過(guò)SQL增加主鍵:alter
table
tabname
add
constraint
tabname_pk
primary
key
(id)
enable
validate;
組合鍵:alter
table
tabname
add
constraint
tabname_pk
primary
key
(id,另一列名)
enable
validate;
其實(shí)ORACLE創(chuàng)建
主鍵
上面的兩種方式都可以,如何使用也看個(gè)人的選擇了,畢竟建立主鍵是針對(duì)表的操作,而不像在表中大批量的查詢數(shù)據(jù),所以性能方面的問(wèn)題倒是不用過(guò)多考慮。
我個(gè)人更傾向于第二種,因?yàn)榈诙N方式的語(yǔ)句更清晰,它的作用是修改表結(jié)構(gòu),添加一個(gè)約束,PK一般都
主鍵
的前綴,表明了這個(gè)約束是為一個(gè)列添加主鍵,同樣還可以使用FK來(lái)建立
外鍵
的約束或者
check約束
等都可通過(guò)第二條語(yǔ)句的方式來(lái)實(shí)現(xiàn)!~
1.先建一個(gè)序列:
--?Create?sequence?
create?sequence?auto_id
minvalue?1
maxvalue?9999999999999
start?with?1
increment?by?1
cache?10;
2.創(chuàng)建觸發(fā)器:
create?or?replace?trigger?auto_col_trigger
before?insert?on?auto_tab
for?each?row
declare
v_id?number?:=?0;
begin
select?auto_id.nextval?into?v_id?from?dual;
:new.id?:=?v_id;
end;
我隨便寫(xiě)的,表名和字段名改一下就行了。