日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的区别,sql文件导入

發(fā)布時(shí)間:2024/9/27 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的区别,sql文件导入 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


1相關(guān)術(shù)語(yǔ)

語(yǔ)句

含義

操作

DML語(yǔ)句

Data Manipulation Language

數(shù)據(jù)庫(kù)操作語(yǔ)言

insert update delete select

DDL語(yǔ)言

Date definition Language

數(shù)據(jù)庫(kù)定義語(yǔ)言

create table;create view index sequence synonvm同義詞,truncate table

DCL語(yǔ)言

(Data control Language)

數(shù)據(jù)控制語(yǔ)言

commit rollback savepoint

2數(shù)據(jù)庫(kù)認(rèn)證

Oracle數(shù)據(jù)庫(kù)管理員認(rèn)證專員(OCA

Oracle Certified Associate

Oracle數(shù)據(jù)庫(kù)管理員認(rèn)證專家(OCP

Oracle Certified Professional

Oracle數(shù)據(jù)庫(kù)管理員認(rèn)證大師(OCM

Oracle Certified Master

3 insert語(yǔ)句

A插入一個(gè)完整記錄:

insert into emp values (1, 'aaa', 'clerk',7092, '17-12-80', 8000, NULL, 20);

B插入部分記錄:

insert into emp(empno,ename,deptno)values(2,'bb',20);

C插入空值(顯示和隱式)

D插入日期

insert into empvalues(3,'ccc','clerk',7092,sysdate,8000,NULL,20);

E創(chuàng)建腳本?取地址符 & ,通過(guò)這種方式可以讓用戶自定義輸入

SQL> insert into emp(empno,ename,deptno)

????? 2?values(&empno,&ename,20);

輸入 empno的值:?4

輸入 ename的值:?'cccc4'

原值???2: values(&empno,&ename,20)

新值???2: values(4,'cccc4',20)

?

已創(chuàng)建 1行。

F?select ename,job,&tt from emp;

4批量插入數(shù)據(jù)

A10號(hào)部門的員工copy到另外一個(gè)表中

創(chuàng)建表結(jié)構(gòu)

create table emp10

????as

???????select * from emp where 1=2;

批量插入數(shù)據(jù)

insert into emp10

select * from emp where deptno = 10;

5 update語(yǔ)句,語(yǔ)法結(jié)構(gòu)如下:

UPDATE??table

??????????? SET?? column = value [, column = value, ...]

??????????????????[WHERE ????????? condition];

update emp10

set deptno = 20

where empno = 7782;

6 delete語(yǔ)句

語(yǔ)法結(jié)構(gòu):

DELETE [FROM] table

[WHERE condition];

7 deletetruncate的區(qū)別

delete(刪除表的數(shù)據(jù))truncate表(truncate實(shí)質(zhì)把表drop然后重新建表)區(qū)別:

1delete逐條刪除,truncate先摧毀在重建

2delete語(yǔ)句是DML語(yǔ)句,truncateDDL語(yǔ)言

??A DML語(yǔ)句可以閃回?做錯(cuò)的并且提交了,可以通過(guò)閃回,撤銷操作

??B DDL語(yǔ)言不可以閃回?flashback

3delete是逐條刪除,會(huì)產(chǎn)生碎片,truncate不會(huì)產(chǎn)生碎片

??行移動(dòng)功能:要開(kāi)啟閃回功能,必須要開(kāi)啟行移動(dòng)功能。

4delete不會(huì)釋放空間 truncate會(huì)

5delete可以回滾?truncate不可以

6oracle delete快,mysql truncate

網(wǎng)絡(luò)上關(guān)于deletetruncate的區(qū)別的介紹:

語(yǔ)法:

delete from tablename;

truncate table tablename;

區(qū)別:

1、?delete from后面可以寫條件,truncate不可以

2、?delete from記錄是一條條刪的,所刪除的每條記錄都會(huì)進(jìn)日志,而truncate一次次刪掉整個(gè)頁(yè),因此日志里面只記錄頁(yè)釋放,簡(jiǎn)言之,delete from更新日志,truncate基本不,所用的事物日志空間較少。

3、?delete from刪空表后,會(huì)保留一個(gè)空的頁(yè),truncate在表中不會(huì)留有任何頁(yè)。

4、?當(dāng)使用行鎖執(zhí)行DELETE語(yǔ)句時(shí),將鎖定表中各行以便刪除。Truncate始終鎖定表和頁(yè),而不是鎖定各行。

5、?如果有identity產(chǎn)生的自增id列,delete from后仍然從上次的數(shù)開(kāi)始增加,即種子不變,truncate后,種子會(huì)恢復(fù)初始。

6、?truncate不會(huì)觸發(fā)delete的觸發(fā)器,因此truncate操作不記錄各個(gè)行刪除。

總結(jié):

1、?truncatedelete只刪除數(shù)據(jù),不刪除表的結(jié)構(gòu)(定義)

drop語(yǔ)句將刪除表的結(jié)構(gòu),被依賴的約束(constrain,觸發(fā)器(trigger,索引(index;依賴于該表的存儲(chǔ)過(guò)程/函數(shù)將保留,但是變?yōu)?/span>invalid狀態(tài)。

2、?delete語(yǔ)句是dml操作,這個(gè)操作會(huì)放到rollback segement中,事務(wù)提交之后才生效;如果有相應(yīng)的trigger,執(zhí)行的時(shí)候?qū)⒈挥|發(fā)truncate,dropddl操作,操作立即生效,原數(shù)據(jù)不放到rollback segment中,不能回滾。操作不觸發(fā)trigger.

3、?delete語(yǔ)句不影響表所占用的extent,高水線(high watermark)保持原位置不動(dòng),顯然drop語(yǔ)句將表所占用的空間全部釋放,truncate語(yǔ)句缺省情況下見(jiàn)空間釋放到minextents個(gè)extent,除非使用reuse storage;truncate會(huì)將高水線復(fù)位(回到最開(kāi)始)。

4、?速度,一般來(lái)說(shuō):drop > truncate > delete

5、?安全性:小心使用droptruncate,尤其沒(méi)有備份的時(shí)候,否則哭都來(lái)不及。

6、?使用上,想刪除部分?jǐn)?shù)據(jù)行用delete,注意帶上where子句。回滾段要足夠大。想刪除表,當(dāng)然用drop,想保留表而將所有數(shù)據(jù)刪除。如果和事務(wù)無(wú)關(guān),用truncate即可,如果和事務(wù)有關(guān),或者想觸發(fā)trigger,還是用delete,如果是整理表內(nèi)部的碎片,可以用truncate跟上reuse stroage,在重新導(dǎo)入/導(dǎo)入數(shù)據(jù)。

8從文件中導(dǎo)入數(shù)據(jù),通過(guò)命名delete truncate刪除表數(shù)據(jù)

從文件導(dǎo)入數(shù)據(jù)

SQL> set timing off;

SQL> set feedback off;

SQL> drop table testdelete purge;

SQL> @c:\Sql.sql;

SQL>

SQL> set timing on;?//最后刪除數(shù)據(jù)表的時(shí)候,把時(shí)間打開(kāi),記錄時(shí)間

SQL> delete from testdelete;

已用時(shí)間:?00: 00: 00.09

從文件導(dǎo)入數(shù)據(jù):

set timing off;

@c:\Sql.sql;????

set timing off;?

select count(*) from testdelete;

set timing on;?//最后刪除數(shù)據(jù)表的時(shí)候,把時(shí)間打開(kāi),記錄時(shí)間

truncate table testdelete;

已用時(shí)間:?00: 00: 00.51

總結(jié):

truncate表一般比delete表的速度快,但Oracle做了優(yōu)化,delete數(shù)據(jù)的時(shí)候更快些!

?

總結(jié)

以上是生活随笔為你收集整理的3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的区别,sql文件导入的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。