亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

4.約束&&視圖

2024-07-21 02:53:05
字體:
來源:轉載
供稿:網友

什么是約束

約束是表級的強制規定

有以下五種約束: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - CHECK

表級約束和列級約束

作用范圍:

① 列級約束只能作用在一個列上② 表級約束可以作用在多個列上(當然表級約束也可以作用在一個列上)

定義方式: 列約束必須跟在列的定義后面,表約束不與列一起,而是單獨定義。

非空(not null) 約束只能定義在列上

1.添加約束

alter table [表名] add constraint [約束別名] [約束類別(字段名)]

向表emp2的id列中添加PRIMARY KEY約束(my_emp_id_pk)

ALTER table emp2ADD constraint my_emp_id_pk primary key(id);

2. 修改約束

alter table modify [字段名] [約束]

或者

alter table modify [字段名] [constraint] [別名] [約束] - 例如:把 name 字段修改為 not null約束

alter table emp2 modify name not null;

修改的時候增加別名

alter table emp2 modify salary constraint my_emp2_salary_n not null;

3.check約束

alter table [表名] add constraint [約束別名] check([約束條件])

例子:給表中添加約束,使得salary大于0

alter table emp2 add constraint emp2_salary_min check(salary>0);

4.刪除約束

alter table [表名] drop constraint [約束別名]

5. 約束要注意的地方

非空約束(not null)只能定義在列級唯一約束(unique)的列值可以為空外鍵(foreign key)引用的列起碼要有一個唯一的約束

6.級聯操作

當一個表進行操作的時候會影響和他有外檢約束的另外一張表

ON DELETE CASCADE(級聯刪除): 當父表中的列被刪除時,子表中相對應的列也被刪除ON DELETE SET NULL(級聯置空): 子表中相應的列置空

假如表emp有一個外鍵dept_id連接到表deptdept_id

constraint dept_fk foreign key(dept_id) references dept(dept_id) on delete cascade;

在創建表的時候就設置

on delete cascade

on delete set null

視圖

視圖和子表類似,不同的是,對視圖的操作會影響原表的內容

視圖是一種虛表。 視圖建立在已有表的基礎上, 視圖賴以建立的這些表稱為基表。向視圖提供數據內容的語句為 SELECT 語句, 可以將視圖理解為存儲起來的 SELECT 語句. 視圖向用戶提供基表數據的另一種表現形式

簡單視圖和復雜視圖區別:

特性 簡單視圖 復雜視圖
表的數量 一個 一個或多個
函數 沒有
分組 沒有
DML操作 可以 有時候可以

簡單視圖

創建視圖

注意: 使用scott用戶登陸的時候默認是沒有創建視圖權限的 解決方式: 1. 打開cmd 2. 使用system用戶登錄:sqlplus system/root@orcl 3. 賦權限:grant create view to scott; 4. 此時scott用戶就獲得了創建view的權限

實例:創建視圖empview,來自于對employees的查詢

create view empview as select employee_id,last_name,salary from employees where department_id=80

desc empview查看一下

SQL> desc empview Name Null? Type ----------------------------------------- -------- --------------- EMPLOYEE_ID NOT NULL NUMBER(6) LAST_NAME NOT NULL VARCHAR2(25) SALARY NUMBER(8,2)

此時看到創建的視圖符合我們的意圖

修改視圖

添加上or replace即刻

create or replace view empview as select employee_id,last_name,salary from employees where department_id=80

復雜視圖

使用組合函數的查詢創建的視圖為復雜視圖

實例:查詢所有部門的平均工資,賦值給empview2

SQL> create view empview2 as select department_id,avg(salary) avg_salary from employees group by department_id;

使用權限

在創建一個view的時候后面加上with read only表示只讀; 例如:

create view empview3 as select employee_id,last_name,salary from employees where department_id=80 with read only;

此時進行uodate操作會提示錯誤

SQL> update empview3 set salary=8000 where last_name='Jhonson';update empview3 set salary=8000 where last_name='Jhonson' *ERROR at line 1:ORA-42399: cannot perform a DML Operation on a read-only view

刪除視圖

很簡單 drop view [視圖圖名]

TOP-N分析

選取前n行的值,或者第n到m行之間的值

實例說明: 現在想選取出來工資前十名的人員的信息 創建一個empview4

SQL> create view empview4 as select employee_id,last_name,salary from employeesorder by salary desc;

此時要想選擇前十個,是無從下手的,這個時候就要借助rownum這個偽列 例如:

select rownum,employee_id,last_name,salary from employeesorder by salary desc;

但是此時還不能夠使用rownum來作為查詢的條件,因為偽列是虛擬的

然后把上面的查詢結果,作為一個新的表再次查詢

select rownum,employee_id,salary from (select employee_id,salary from employees order by salary desc )where rownum < 11;

輸出:

ROWNUM EMPLOYEE_ID SALARY---------- ----------- ---------- 1 100 24000 2 101 17000 3 102 17000 4 145 14000 5 146 13500 6 201 13000 7 205 12000 8 147 12000 9 108 12000 10 168 1150010 rows selected.

注意 : 對 ROWNUM 只能使用 < 或 <=, 而用 =, >, >= 都將不能返回任何數據。 想要查詢第40–第50的員工信息,只能再次嵌套一次,將rawnum作為一個真實的一列查詢。

select * from( select rownum rn,employee_id,salary from (select employee_id,salary from employees order by salary desc ) ) where rn>40 and rn<50;

輸出結果:

RN EMPLOYEE_ID SALARY---------- ----------- ---------- 41 154 7500 42 171 7400 43 172 7300 44 164 7200 45 179 7000 46 161 7000 47 178 7000 48 155 7000 49 113 69009 rows selected.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
海角国产乱辈乱精品视频| 精品高清一区二区三区| 精品福利在线看| 精品人伦一区二区三区蜜桃免费| 日韩亚洲综合在线| 色综合91久久精品中文字幕| 这里只有精品视频在线| 91精品视频在线免费观看| 中文字幕一区二区三区电影| 成人免费福利在线| 国产大片精品免费永久看nba| 久久精品91久久香蕉加勒比| www国产91| 91久久国产综合久久91精品网站| 国产精品自拍偷拍| 久久久999精品| 最近2019中文字幕mv免费看| 久久视频精品在线| 国产脚交av在线一区二区| 日韩av网站电影| 日韩三级影视基地| 国产97在线亚洲| 欧美多人乱p欧美4p久久| 国产精品自产拍在线观看| 最新69国产成人精品视频免费| 日韩精品视频免费专区在线播放| 午夜精品久久久久久久99热| 欧美激情区在线播放| 中文字幕日韩av电影| 欧美黑人性生活视频| 国产欧美精品一区二区三区介绍| 久久久亚洲精选| 国内精品小视频| 欧美日韩免费观看中文| 欧美成人在线免费视频| 亚洲欧美制服中文字幕| 91在线视频精品| 亚洲人成电影网站| 日韩欧中文字幕| 国产一区二区精品丝袜| 欧美中文字幕在线| 亲爱的老师9免费观看全集电视剧| 91香蕉嫩草神马影院在线观看| 欧美放荡办公室videos4k| 欧美日韩在线观看视频| 在线播放精品一区二区三区| 国产精品视频大全| 成人国产精品久久久久久亚洲| 国内精品久久久久| 亚洲香蕉成视频在线观看| 欧美精品亚州精品| 日韩欧美第一页| 国产suv精品一区二区三区88区| 北条麻妃在线一区二区| 中文字幕久热精品在线视频| 欧美成人全部免费| 欧美高清视频免费观看| 精品一区电影国产| 日韩欧美aⅴ综合网站发布| 亚洲视频在线观看免费| 欧美在线视频免费播放| 国产成人精品在线| 国产成人精彩在线视频九色| 美女性感视频久久久| 欧美激情精品久久久久久大尺度| 国产成人综合精品| 日韩电影大片中文字幕| 欧美在线一级va免费观看| 国产在线视频91| 亚洲欧美日韩在线一区| 日韩激情av在线播放| 欧美成人精品在线播放| 国产精品久久一区主播| 欧美日韩国产在线播放| 成人精品久久一区二区三区| 91久久久在线| 国产区亚洲区欧美区| 久久久中精品2020中文| 97香蕉久久超级碰碰高清版| 91精品视频在线播放| 国产精品久久久久福利| 在线看日韩av| 国产精品一区二区在线| 欧美怡红院视频一区二区三区| 国产精品久久久久影院日本| 国内精品视频在线| 国产99视频精品免视看7| 日韩午夜在线视频| 中文字幕无线精品亚洲乱码一区| 久久久人成影片一区二区三区| 中文字幕在线看视频国产欧美| 亚洲va久久久噜噜噜| 亚洲深夜福利网站| 欧美黑人性视频| 久久精品亚洲一区| 国产日韩综合一区二区性色av| 亚洲最新av网址| 尤物九九久久国产精品的特点| 国产精品自拍偷拍| 成人福利网站在线观看| 国产日本欧美一区二区三区在线| 久久久国产精品亚洲一区| 久久精品久久久久久| 欧美日韩国产色| 日韩视频免费在线| 综合网日日天干夜夜久久| 91av在线影院| 欧美人与物videos| 精品中文字幕在线观看| 亚洲电影成人av99爱色| 国产精品福利小视频| 色综合久久久888| 97av在线视频| 欧美大秀在线观看| 国内揄拍国内精品少妇国语| 在线播放精品一区二区三区| 国产精品极品美女粉嫩高清在线| 国产精品久久久久久久天堂| 欧美激情第三页| 亚洲欧美成人一区二区在线电影| 日韩中文字幕视频在线观看| 波霸ol色综合久久| 亚洲欧美国产精品va在线观看| 日韩欧美国产成人| 亚洲免费视频网站| 亚洲美女自拍视频| 亚洲精品97久久| 日韩视频免费看| 欧美精品生活片| 国内精品视频一区| 538国产精品一区二区免费视频| 亚洲男人av电影| 色偷偷噜噜噜亚洲男人的天堂| 国产亚洲人成网站在线观看| 亚洲午夜精品久久久久久久久久久久| 亚洲理论电影网| 九九精品在线观看| www.久久久久久.com| 国内伊人久久久久久网站视频| 日韩欧美国产一区二区| 欧美第一淫aaasss性| 黄色一区二区在线| 欧美日韩国产第一页| 最近2019中文字幕一页二页| 亚洲欧美中文字幕| 国产日韩中文在线| 日韩精品在线观看一区| 中文字幕亚洲欧美一区二区三区| 成人免费视频网址| 26uuu另类亚洲欧美日本老年| 91网站免费观看| 国产精品日韩欧美综合| 91黄色8090| 97香蕉久久夜色精品国产| 中文字幕亚洲自拍| 亚洲乱码一区av黑人高潮| 69视频在线播放| 精品视频偷偷看在线观看| 色妞色视频一区二区三区四区| 国产成人啪精品视频免费网| 日韩av片电影专区| 国产精品成人一区二区三区吃奶| 欧美视频中文字幕在线| 久久色免费在线视频|