欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

oracle怎么添加約束 oracle中常見(jiàn)的約束有哪些

Oracle如何添加主鍵約束

工具/材料

目前成都創(chuàng)新互聯(lián)公司已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、武江網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

SQL Developer

01

首先打開(kāi)SQL Developer軟件,找一個(gè)沒(méi)有主鍵約束的表,如下圖所示

02

然后我們新建一個(gè)查詢,在界面中輸入如下的約束修改語(yǔ)句,如下圖所示,主要通過(guò)add constranint來(lái)添加約束

03

編寫完約束添加語(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的方式是一樣的

Oracle使用(九)_表的創(chuàng)建/約束/索引

表創(chuàng)建標(biāo)準(zhǔn)語(yǔ)法:

CREATE TABLE [schema.]table

(column datatype [DEFAULT expr] , …);

--設(shè)計(jì)要求:建立一張用來(lái)存儲(chǔ)學(xué)生信息的表,表中的字段包含了學(xué)生的學(xué)號(hào)、姓名、年齡、入學(xué)日期、年級(jí)、班級(jí)、email等信息,

--并且為grade指定了默認(rèn)值為1,如果在插入數(shù)據(jù)時(shí)不指定grade得值,就代表是一年級(jí)的學(xué)生

--DML是不需要commit的,隱式事務(wù)

create table student

(

stu_id number(10),

name varchar2(20),

age number(2),

hiredate date,

grade varchar2(10) default 1,

classes varchar2(10),

email varchar2(50)

);

-- 注意日期格式要轉(zhuǎn)換,不能是字符串,varchar2類型要用引號(hào),否則出現(xiàn)類型匹配

--DML 需要收到commit

insert into student values(20211114,'zhangsan',22,to_date('2021-11-14','YYYY-MM-DD'),'2','1',' 123@qq.com ');

insert into student(stu_id,name,age,hiredate,classes,email) values(20211114,'zhangsan',22,to_date('2021-11-14','YYYY-MM-DD'),'1',' 1234@qq.com ');

select * from student;

-- 給表添加列,添加新列時(shí)不允許為not null,因?yàn)榕c舊值不兼容

alter table student add address varchar(100);

-- 刪除列

alter table student drop column address;

--修改列

alter table student modify(email varchar2(100));

正規(guī)表設(shè)計(jì)使用power disinger

--表的重命名

rename student to stu;

-- 表刪除

drop table stu;

**

在刪除表的時(shí)候,經(jīng)常會(huì)遇到多個(gè)表關(guān)聯(lián)的情況(外鍵),多個(gè)表關(guān)聯(lián)的時(shí)候不能隨意刪除,使用如下三種方式:

2.表的約束(constraint)

約束:創(chuàng)建表時(shí),指定的插入數(shù)據(jù)的一些規(guī)則

約束是在表上強(qiáng)制執(zhí)行的數(shù)據(jù)校驗(yàn)規(guī)則

Oracle 支持下面五類完整性約束:

1). NOT NULL 非空約束 ---- 插入數(shù)據(jù)時(shí)列值不能空

2). UNIQUE Key 唯一鍵約束 ----限定列唯一標(biāo)識(shí),唯一鍵的列一般被用作索引

3). PRIMARY KEY 主鍵約束 ----唯一且非空,一張表最好有主鍵,唯一標(biāo)識(shí)一行記錄

4). FOREIGN KEY 外鍵約束---多個(gè)表間的關(guān)聯(lián)關(guān)系,一個(gè)表中的列值,依賴另一張表某主鍵或者唯一鍵

-- 插入部門編號(hào)為50的,部門表并沒(méi)有編號(hào)為50的,報(bào)錯(cuò)

insert into emp(empno,ename,deptno) values(9999,'hehe',50);

5). CHECK 自定義檢查約束---根據(jù)用戶需求去限定某些列的值,使用check約束

-- 添加主鍵約束/not null約束/check約束/唯一鍵約束

create table student

(

stu_id number(10) primary key,

name varchar2(20) not null,

age number(3) check(age0 and age126),

hiredate date,

grade varchar2(10) default 1,

classes varchar2(10),

email varchar2(50) unique,

deptno number(2),

);

-- 添加外鍵約束

create table stu

(

stu_id number(10) primary key,

name varchar2(20) not null,

age number(3) check(age0 and age126),

hiredate date,

grade varchar2(10) default 1,

classes varchar2(10),

email varchar2(50) unique,

deptno number(2),

FOREIGN KEY(deptno) references dept(deptno)

);

-- 創(chuàng)建表時(shí)沒(méi)添加外鍵約束 也可以修改 其中fk_0001為外鍵名稱

alter table student add constraint fk_0001 foreign key(deptno) references dept(deptno);

索引創(chuàng)建有兩種方式:

組合索引:多個(gè)列組成的索引

--索引:加快數(shù)據(jù)剪碎

create index i_ename on emp(ename);

--當(dāng)創(chuàng)建某個(gè)字段索引后,查詢某個(gè)字段會(huì)自動(dòng)使用到索引

select * from emp where ename = 'SMITH';

--刪除索引 索引名稱也是唯一的

drop index i_ename;

一些概念:

回表:

覆蓋索引

組合索引

最左匹配

Oracle之約束

約束用于限制加入表數(shù)據(jù)的類型,目的是保證數(shù)據(jù)的一致性和完整性

創(chuàng)建格式:在創(chuàng)建表時(shí)規(guī)定約束(在Create添加),也可以在創(chuàng)建之后添加(Alter table)。

約束類型:NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT。

非空約束就是限制必須為某個(gè)列提供值,不允許有空值的存在。

空值(NULL)是不存在的值,它既不是數(shù)字0也不是空字符串,而是不存在未知的情況,即:該列的所有值不能為空,但可以為空字符或者0。

結(jié)果:通過(guò)desc查看會(huì)發(fā)現(xiàn)Nullable那一列的Y消失,表示此列不能為空。且在插入數(shù)值的時(shí)候此列必須添加數(shù)值,否則會(huì)報(bào)錯(cuò)。

取消非空約束使用alter方法:alter table test1 modify Author null; 設(shè)置test1的Author可以

唯一性約束強(qiáng)調(diào)所在的列不允許有相同的值,但可以有多個(gè)Null。

其定義比主鍵約束弱,即他的列允許有空值(主鍵不允許有空值),唯一性約束的主要作用是保證在除主鍵外,其他列值得唯一性。

即:直接在列后面添加unique,

或在列后面添加 constraint 約束名 unique,

或在最后添加constraint 約束 unique(列名),

或者alter table 表名 add constraint 約束名 unique(列名);

建議使用的方法為alter和在最后添加最后添加constraint 約束 unique(列名)。

注:添加約束名的好處為:便于刪除操作,在刪除時(shí)需要通過(guò)約束名來(lái)完成操作。同時(shí)如果不添加約束名則系統(tǒng)會(huì)自動(dòng)生成約束名,在表移動(dòng)等操作時(shí),約束名也會(huì)更改,會(huì)造成后期操作的麻煩。

取消唯一性約束:alter table test3 drop constraint QQ_UK2;

主鍵約束唯一地標(biāo)識(shí)了每一行記錄(非空+唯一),在一個(gè)表中,最多只能有一個(gè)主鍵約束,主鍵約束既可以由一個(gè)列組成,也可以由兩個(gè)或兩個(gè)以上列組成(這種稱聯(lián)合主鍵)。

具體的方法和添加唯一約束相同,建議使用的方法為alter和在最后添加最后添加constraint 約束 unique(列名)。

刪除主鍵:alter table 表名 drop constraint 約束名

外鍵約束主要是在B表中的某一列受到A表的制約,B的那一列的值只能是A內(nèi)的值,比如工資表的員工號(hào)必須受員工表的員工號(hào)限制一樣,工資表不能有不存在的員工號(hào)。

一般外鍵約束會(huì)使用兩個(gè)表進(jìn)行關(guān)聯(lián),外鍵是指"當(dāng)前表"引用"另一個(gè)表"的某一列或某幾列。在另一個(gè)表中,被引用的列必須具有主鍵約束或者唯一性約束,不存在的數(shù)據(jù)不能出現(xiàn)在當(dāng)前表的對(duì)應(yīng)列中。一般情況下當(dāng)刪除被引用表中數(shù)據(jù)時(shí),該數(shù)據(jù)也不能出現(xiàn)在外鍵列中,如果存在則刪除失敗。

刪除外鍵約束:alter table test5_1 drop constraint FK_test_5_1;

check約束是為了讓表中某字段值只能輸入固定的值。

check設(shè)置數(shù)值范圍:constraint check 表名 check (列名 between 小范圍 and 大范圍);

設(shè)置為大寫:constraint check 表名 check (列名 = upper(列名));

取消 alter table test6_2 drop constraint check_test_6_2;

默認(rèn)約束是設(shè)置列的默認(rèn)值,即當(dāng)插入一行時(shí),若不給出該列的值,就用默認(rèn)值代替。

結(jié)果:在添加數(shù)據(jù)的時(shí)候,如果在設(shè)置有默認(rèn)值的列沒(méi)有添加數(shù)據(jù)則會(huì)把默認(rèn)值添加進(jìn)去。

取消默認(rèn)約束 alter table test2 modify BOOKNAME default null;

注:

add用于修改字段類型和長(zhǎng)度的(即修改字段的屬性)

modify修改表的數(shù)據(jù)結(jié)構(gòu)。

update是修改數(shù)據(jù)內(nèi)容的。

drop是刪除數(shù)據(jù)內(nèi)容。

網(wǎng)站題目:oracle怎么添加約束 oracle中常見(jiàn)的約束有哪些
當(dāng)前路徑:http://aaarwkj.com/article28/dooocjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、App設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)商城網(wǎng)站、靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
高潮内射主播自拍一区| 精品国产乱码一区二区三区| 国产极品嫩模在线观看91| 国产精品白浆大屁股一区二区三| av资源网大全手机在线观看| 久久国产精品一二三区| 久久精品国产亚洲成人av| 久久亚洲女同第一区综合| 美女诱惑丝袜国产国产av丝袜| 亚洲和欧洲一码二码区视频| 亚洲91无专砖码高清观看| 亚洲国产精品自拍第一页| 国产原创剧情免费观看av| 一本久久综合亚洲鲁鲁五月天 | 婷婷丁香久久五月婷婷| 日本特黄特色高清免费大片| 亚洲男人天堂日本一区| 国产精品自产在线观看一| 国产在线视频不卡一区| 久久久亚洲精品中文字幕蜜桃| 日韩一卡一卡在线观看| 不卡av免费在线网址| 国产精品一区二区三区熟女| 我想看亚洲一级黄色录像| 91精品国产91久久综合桃花| 日韩av在线国产观看| 国产亚洲精品久在线| 97久久久人妻精品一区| 欧美美女福利午夜视频| 不卡的视频在线观看| 国产有码视频一区二区三区| 一区二区三区国产精品乱码| 熟女亚洲一区精品久久| 亚州精品少妇久久久久久 | 人妻中文字幕精品系列| 日韩国产传媒视频在线观看| 中文成人无字幕乱码精品| 91久久精品91久久性色| 国产美女主播视频一区二区三区| 在线看片国产精品自拍| 日本人妻中文字幕在线一区|