建立索引:
自動– 建立 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就是把資料庫分成許多集合,每個集合包含了各種物件,如 表 檢視 儲存過程和索引等。不同的集合有不同的名字,預設情況下使用者名稱就是模式名。如果把乙個資料庫看成是乙個幢樓,大樓裡面的每個房間就是乙個模式,而房間裡面...