最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

內(nèi)外連接、組函數(shù)、DDL、DML和TCL

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 15:07:19
文檔

內(nèi)外連接、組函數(shù)、DDL、DML和TCL

內(nèi)外連接、組函數(shù)、DDL、DML和TCL:前言 cross join ,是笛卡爾積;nature join 是自然連接。 正文 內(nèi)外連接 inner join inner join 的inner可以省略。 內(nèi)連接 在一個表中能夠找到在另一個表中與之對應(yīng)的記錄,來組成新的記錄顯示出來,舍棄表中在另一個表中沒有對應(yīng)記錄的記錄。 等值連接 一
推薦度:
導(dǎo)讀內(nèi)外連接、組函數(shù)、DDL、DML和TCL:前言 cross join ,是笛卡爾積;nature join 是自然連接。 正文 內(nèi)外連接 inner join inner join 的inner可以省略。 內(nèi)連接 在一個表中能夠找到在另一個表中與之對應(yīng)的記錄,來組成新的記錄顯示出來,舍棄表中在另一個表中沒有對應(yīng)記錄的記錄。 等值連接 一

前言 cross join ,是笛卡爾積;nature join 是自然連接。 正文 內(nèi)外連接 inner join inner join 的inner可以省略。 內(nèi)連接 在一個表中能夠找到在另一個表中與之對應(yīng)的記錄,來組成新的記錄顯示出來,舍棄表中在另一個表中沒有對應(yīng)記錄的記錄。 等值連接 一

前言

cross join ,是笛卡爾積;nature join 是自然連接。

正文

內(nèi)外連接 inner join

inner join 的inner可以省略。

內(nèi)連接

在一個表中能夠找到在另一個表中與之對應(yīng)的記錄,來組成新的記錄顯示出來,舍棄表中在另一個表中沒有對應(yīng)記錄的記錄。

等值連接

一個表中的某個字段是另一個表的外鍵

例如。emp表和dept表存在多對一的關(guān)聯(lián)關(guān)系,由外鍵字段deptno來維護(hù),即emp表來主動維護(hù)這一關(guān)系。

非等值連接

between and 來實現(xiàn)非等值連接;

select e.ename,e.sal,s.grade from emp e join salgrades on e.sal between s.losal and s.hisal;

自連接

表中的字段之間尋在引用關(guān)系,通過得同一個表取不同別名來實現(xiàn)自身連接。

select e.empno,m.name from emp e join emp m on m.empno=e.mgr;

外連接

外連接【陪陪時會將驅(qū)動表中所有記錄顯示

左外連接 left join

左外連接會將主表對應(yīng)的所有信息顯示,從表與之匹配的記錄顯示。

select * from emp join dept on emp.deptno=dept.deptno(+); --加號在join 右邊的表的屬性上位左連接

select * from emp left join dept on emp.deptno=dept.deptno;

右外連接 right join

加號在join 左邊的表的屬性上位右連接

全連接 full join

將兩表中所有匹配和不匹配記錄顯示出來。

組函數(shù)

多行函數(shù),輸入一組記錄,輸出一行記錄。max、min、avg、sum和count函數(shù)。

分組查詢 group by

1.如果在select之后有某個字段名稱,那么此字段必須作為分組的條件之一。

select deptno,max(sal) from emp group by deptno;--在分組查詢中,select 之后除了組函數(shù)以外,查詢的字段名稱和個數(shù)最好和group by 之后的字段名稱和個數(shù)一致。

2.過濾分組查詢可以使用having關(guān)鍵字,having用于過濾分組之后的結(jié)果

select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;--having不能單獨使用,它必須出現(xiàn)在group by 之后。

3.where 不可接分組函數(shù)

4.分組查詢的執(zhí)行順序

先執(zhí)行from,在執(zhí)行where,或在分組,最好才執(zhí)行select。

子查詢

查詢中含有查詢

非關(guān)聯(lián)子查詢

單列子查詢

查詢結(jié)果是一行一列

單行子查詢可以使用比較運算符(<,>,=,!=,<>)

select enamel ,sal rom emp where sal>(select sal from emp where ename='SOTT');

單行子查詢

子查詢的結(jié)果是一行多列

select enamel,sal。deptno from emp where (deptno,sal) in(select deptno,max(sal) from emp group by deptno having deptno=10);

多行子查詢

子查詢的結(jié)果是多行一列

select * from emp where deptno in(select deptno from emp where job='CLERK');

注:

=any 跟in的效果一樣,匹配子查詢的所有值

>any 大于最小的

多列子查詢

子查詢的結(jié)果是多行多列

select enamel,sal。deptno from emp where (deptno,sal) in(select deptno,max(sal) from emp group by deptno );

關(guān)聯(lián)子查詢(循環(huán)主查詢)

子查詢和主查詢進(jìn)行關(guān)聯(lián)查詢

select * from emp out where sal>(select avg(sal) from emp where out.deptno=deptno group by deptno);--先將主表out的第一條記錄的deptno傳到子查詢,并將查詢結(jié)果返回到主查詢,主查詢將符合條件的記錄放入到結(jié)果集中,依次循環(huán)該過程,直到循環(huán)到主表的最后一條記錄。

例子

select * from emp out where empno in(select mgr from emp);;--查詢出所有的領(lǐng)導(dǎo)

select * from emp out where exists(select 'x' from emp where mgr=out.empno);--exists,假如存在,子查返回的是true,并不關(guān)注子查詢返回的具體的結(jié)果。

集合

集合查詢中的字段個數(shù)和類型要一致,這稱為select的同構(gòu)。

select job from emp deptno=10 union all select job from emp deptno=20;

注:

union all 并集,并且不去除重復(fù)

union 并集,去除重復(fù)

intersect 交集

minus 差集

DDL create、drop、truncate和alter

oracle數(shù)據(jù)庫的基本數(shù)據(jù)類型

number 數(shù)字類型

varchar2字符串類型;可變長

char 字符串類型,固定長度,占用空間不變,執(zhí)行效率高

date日期類型

clob 字符型大數(shù)據(jù)類型

blob 字節(jié)型大數(shù)據(jù)類型

創(chuàng)建表

create table 表名(字段名 數(shù)據(jù)類型 約束,字段名 數(shù)據(jù)類型 約束);

復(fù)制表

復(fù)制表只能復(fù)制表結(jié)構(gòu)和數(shù)據(jù),復(fù)制不了約束。

create table 表名1 as select * from emp where empno=10000;---如果where條件不成立,查不到任何東西時,該語句只復(fù)制了表結(jié)構(gòu);

注:user_constraints 存儲當(dāng)前用戶的相關(guān)信息的數(shù)據(jù)字典

刪除表

drop table 表名

修改表

重命名

rename 舊表名 to 新表名

修改表的字段名

alter table 表名 rename column 舊字段名 to 新字段名;

修改字段類型長度

修改字段類型的前提是當(dāng)前的字段值是空的,即修改的列為空。

alter table 表名 modify(字段名稱 字段類型(長度));

添加字段

alter table 表名 add(字段名稱 字段類型(長度));

刪除字段

alter table 表名 drop (字段名稱);

alter table 表名 drop column(字段名稱);

截斷表 truncate

刪除表中的所有記錄,效率比delete更高

DML insert、delete、update

添加記錄

字段的值與表中字段的類型和長度要匹配

insert into 表名(字段名稱1,字段名稱2) value(字段1的值,字段2的值);

1.一次插入多條記錄

insert into emp(empno,ename) select empno,ename from emp;

修改記錄

update 表名 set 被修改的字段名1=新值,被被修改的字段名2=新值

刪除記錄

delete 【from 】 表名;

TCL commit、rollback和savapoint

事務(wù)ACID特性

數(shù)據(jù)庫運行的最小單元,是一系列的數(shù)據(jù)操作,是數(shù)據(jù)庫應(yīng)用程序的基本邏輯單元。事務(wù)是恢復(fù)和并發(fā)控制的基本單元。

1.在sql中,定義事務(wù)的預(yù)計有3條

begin transaction

commit

rollback

通常事務(wù)以begin transaction 開始,以commit或rollback結(jié)束。

注:

1.rollback 回滾事務(wù),事務(wù)恢復(fù)到上一個事務(wù)結(jié)束之前的狀態(tài)。

2.dml執(zhí)行會開啟一個事務(wù)。

3.commit 提交事務(wù),當(dāng)前操作會執(zhí)行應(yīng)用到數(shù)據(jù)庫

4.commit和rollback會顯式的提交事務(wù)

5.savepoint 事務(wù)點名;設(shè)置事務(wù)點

rollback to 事務(wù)點名;--在事務(wù)點之后的其他dml操作都會被取消

6.ddl語句隱式的提交事務(wù)

原子性 atomicity

事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。

一致性 consistency

事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。

隔離性 isolation

一個事務(wù)的執(zhí)行不能被其他事務(wù)干撓。

持續(xù)性 durability

也稱永久性,值一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該使永久性的。

注:事務(wù)不處理

1.表和行級別的鎖不會釋放

2.當(dāng)前會話的操作在其他會話中查不到

3.當(dāng)前事務(wù)可以回滾

4.當(dāng)前事務(wù)回滾段的資源不會釋放

總結(jié)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

內(nèi)外連接、組函數(shù)、DDL、DML和TCL

內(nèi)外連接、組函數(shù)、DDL、DML和TCL:前言 cross join ,是笛卡爾積;nature join 是自然連接。 正文 內(nèi)外連接 inner join inner join 的inner可以省略。 內(nèi)連接 在一個表中能夠找到在另一個表中與之對應(yīng)的記錄,來組成新的記錄顯示出來,舍棄表中在另一個表中沒有對應(yīng)記錄的記錄。 等值連接 一
推薦度:
標(biāo)簽: 連接 tcl 函數(shù)
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top