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

2021-09-21 03:07:41 字數 2678 閱讀 3236

建立索引:

自動– 建立 primary key

– 建立 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';

基於函式的索引

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

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

刪除索引

使用 drop index 命令從資料字典中刪除索引:

drop index index;

從資料字典中刪除 upper_dept_name_idx 索引:

drop index upper_dept_name_idx;

刪除索引,您必須是索引的擁有者或者有 drop any index許可權

drop table dept80 purge;

flashback table  語句

表意外修改的修復工具:

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

– 優點:易用性、可用性、快速執行

– 執行到位(is performed in place)

語法:flashback table[schema.]table[,

[ schema.]table ]...

to expr

[ triggers ];

示例:drop table emp2;

select original_name, operation, droptime from recyclebin;

flashback table emp2 to before drop;

臨時表

建立臨時表

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;

外部表

為外部表建立目錄

建立 directory物件,對應外部資料來源所在的檔案系統上的目錄。

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

grant read on directory emp_dir to ora_21;

建立外部表

create table

( , ... )

organization external

(type

default directory

access parameters

(...) )

location ('')

reject limit [0 | | unlimited];

使用oracle_loader 驅動建立外部表

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驅動建立外部表:

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

asselect employee_id, first_name, last_name

from employees;

sql基礎之表關聯

左連線 left join 下面有三張表a,b a表 b表 總結 左連線就是先把left join 左邊的表 a 的所有記錄先顯示出來,然後再根據on後面的條件匹配另一張表 b 但是如果說匹配到多條資料,然後就會把表a的資料複製一遍和後面表的資料一起顯示出來。其次如果a表的資料多,b表沒有就用nul...

關於索引的sql語句優化之降龍十八掌

1 前言客服業務受到sql語句的影響非常大,在規模比較大的局點,往往因為乙個小的sql語句不夠優化,導致資料庫效能急劇下降,小型機idle所剩無幾,應用伺服器斷連 超時,嚴重影響業務的正常執行。因此,稱低效的sql語句為客服業務的 惡龍 並不過分。資料庫的優化方法有很多種,在應用層來說,主要是基於索...

SQL基礎之模式與表

一 模式 schema 的概念 當我剛學到模式這個概念時,特別不理解。其實,schema就是把資料庫分成許多集合,每個集合包含了各種物件,如 表 檢視 儲存過程和索引等。不同的集合有不同的名字,預設情況下使用者名稱就是模式名。如果把乙個資料庫看成是乙個幢樓,大樓裡面的每個房間就是乙個模式,而房間裡面...