oracle DML與DDL
一、數(shù)據(jù)庫語言介紹
DML(數(shù)據(jù)庫操作語言):其中包括
insert/delete/update/select等操作。
DDL(數(shù)據(jù)庫定義語言):其中包括create/alter/drop等操作。
區(qū)別:1、DDL是針對(duì)數(shù)據(jù)庫對(duì)象(例如:table,function,view,procedure,triger)等的定義。DML是對(duì)數(shù)據(jù)庫對(duì)象的操作,例如對(duì)數(shù)據(jù)庫表的增刪改查等等。2、DDL作為數(shù)據(jù)庫定義語言是不能進(jìn)行rollback(回滾),提交方式也是隱性提交。而DML是可以進(jìn)行rollback的,并且對(duì)于事務(wù)(transaction)的提交是顯式的(默認(rèn)),可以設(shè)置為隱式提交。
二、DDL與DML語法介紹
數(shù)據(jù)庫對(duì)象:表(table),索引(index),視圖(view),觸發(fā)器(Trigger),存儲(chǔ)過程(procedure),用戶(user),函數(shù)(function)。
DDL:
例如:
1、創(chuàng)建一張orcl_table表:create table orcl(id int,name varchar);
2、創(chuàng)建一個(gè)orcl_view視圖:create view orcl_view as select * from orcl_table;
注意:在數(shù)據(jù)庫中視圖本身是不存儲(chǔ)對(duì)象的,是引用數(shù)據(jù)庫表的查詢,可以理解為是數(shù)據(jù)庫表聯(lián)合查詢的一個(gè)超鏈接或者認(rèn)為是一種快捷方式,一旦引用的表的數(shù)據(jù)發(fā)生變化,那么視圖中的結(jié)果集也會(huì)發(fā)生變化,而且視圖效率較低,視圖存在的意義是將復(fù)雜查詢封裝,方便程序員的查詢使用。
3、創(chuàng)建orcl_index索引(索引是優(yōu)化中的重要一環(huán)):create index orcl_index on table table.cloumn。索引是作用于表的某一列或者某些列,可以提升查詢的效率。
4、創(chuàng)建orcl_procedure存儲(chǔ)過程:create procedure orcl_procedure (par1,par2,......),存儲(chǔ)過程的好處在于,編譯一次,多次執(zhí)行,可以有效減少網(wǎng)絡(luò)傳輸,提升效率,可以將存儲(chǔ)過程理解為程序塊。
5、創(chuàng)建orcl_function函數(shù):create function orcl_function,函數(shù)有返回值,可以接受輸入?yún)?shù),經(jīng)過函數(shù)體進(jìn)行運(yùn)算后返回結(jié)果給調(diào)用者,因?yàn)閛racle函數(shù)是非常豐富的,基本可以滿足99%的開發(fā)需求,因此在我的從業(yè)經(jīng)驗(yàn)中,幾乎沒有寫過自定義函數(shù)。
6、oracle非常大的一個(gè)優(yōu)勢就在于用戶權(quán)限的管理,創(chuàng)建用戶一般是由項(xiàng)目中的DBA人員進(jìn)行創(chuàng)建并分配權(quán)限,跟日常開發(fā)關(guān)系不大,這里就不再贅述。
還有諸如alter等的DDL操作,在后邊的分享中會(huì)一一介紹。
DML:
例如:
1、select
select * from orcl_table;(返回orcl_table中的所有數(shù)據(jù))。工作中99%的開發(fā)任務(wù)都與select密切關(guān)聯(lián)。
2、insert
①insert into orcl_table(column1,column2,...) values(value1,value2,....),如果不寫column則代表表中的每一個(gè)字段都插入值。
②insert into orcl_table select statement;(使用子查詢的結(jié)果插入到表中,工作中較常用)
3、update
update orcl_table set orcl_table.comlum = value(用得較少,也可以將子查詢的結(jié)果更新到表中去)。
4、delete
delete from orcl_table where conditions;(刪除符合條件的數(shù)據(jù))。where條件可選,如果不加則刪除所有數(shù)據(jù)。
總結(jié):以上的②③④的操作都是需要提交事務(wù)才會(huì)以數(shù)據(jù)塊的方式寫入到磁盤中,因此以上操作都是可以回滾的(有犯錯(cuò)的余地),但是提醒大家,做這種敏感操作的時(shí)候一定要小心。
