溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL 基礎之索引、閃回、臨時表(十八)

發(fā)布時間:2020-08-12 12:29:48 來源:網(wǎng)絡 閱讀:336 作者:yuri_cto 欄目:數(shù)據(jù)庫

創(chuàng)建索引:

自動

– 創(chuàng)建 PRIMARY KEY

– 創(chuàng)建 UNIQUE KEY


手動

– CREATE INDEX 語句

– CREATE TABLE 語句


create table  語句中 create index


 create table new_emp (employee_id number(6) primary key using index

(create index emp_id_idx on

new_emp(employee_id)),

first_name varchar2(20),

last_name varchar2(25));


select index_name, table_name from user_indexes  where table_name = 'new_emp';


基于函數(shù)的索引

  • 基于函數(shù)的索引就是一個基于表達式的索引

  • 索引表達式由列、常量、SQL 函數(shù)和用戶自定義函數(shù)構成的


create index upper_dept_name_idx on dept2(upper(department_name));


select * from dept2 where upper(department_name) = 'SALES';


刪除索引

使用 DROP INDEX 命令從數(shù)據(jù)字典中刪除索引:

drop index index;

從數(shù)據(jù)字典中刪除 UPPER_DEPT_NAME_IDX 索引:

drop index upper_dept_name_idx;

刪除索引,您必須是索引的擁有者或者有 DROP ANY INDEX權限


drop table dept80 purge;


FLASHBACK TABLE  語句

  • 一條語句就可以恢復到指定時間點。

  • 恢復表中的數(shù)據(jù)以及相關的索引和約束。

  • 可以根據(jù)某一時間點或者系統(tǒng)改變號(SCN) 來恢復表。


表意外修改的修復工具:

– 表恢復到一個較早的時間點

– 優(yōu)點:易用性、可用性、快速執(zhí)行

– 執(zhí)行到位(Is performed in place)


語法:

flashback table[schema.]table[,

[ schema.]table ]...

to { timestamp | scn } expr

[ { enable | disable } triggers ];


示例:

drop table emp2;

select original_name, operation, droptime from recyclebin;

flashback table emp2 to before drop;


臨時表

創(chuàng)建臨時表

create global temporary table cart on commit delete rows;


create global temporary table today_sales

on commit preserve rows as

select * from orders

where order_date = sysdate;


外部表

為外部表創(chuàng)建目錄

創(chuàng)建 DIRECTORY對象,對應外部數(shù)據(jù)源所在的文件系統(tǒng)上的目錄。

create or replace directory emp_diras '/.../emp_dir';

grant read on directory emp_dir to ora_21;


創(chuàng)建外部表

create table <table_name>

( <col_name> <datatype>, ... )

organization external

(type <access_driver_type>

default directory <directory_name>

access parameters

(...) )

location ('<location_specifier>')

reject limit [0 | <number> | unlimited];


使用ORACLE_LOADER 驅動創(chuàng)建外部表

create table oldemp (

fname char(25), lname char(25))

organization external

(type oracle_loader

default directory emp_dir

access parameters

(records delimited by newline

nobadfile

nologfile

fields terminated by ','

(fname position ( 1:20) char,

lname position (22:41) char))

location ('emp.dat'))

parallel 5

reject limit 200;


查詢外部表

select * from oldemp

使用ORACLE_DATAPUMP驅動創(chuàng)建外部表:

create table emp_ext

(employee_id, first_name, last_name)

organization external

(

type oracle_datapump

default directory emp_dir

location

('emp1.exp','emp2.exp')

)

parallel

as

select employee_id, first_name, last_name

from employees;

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI