SQL 基础之索引、闪回、临时表(十八)
admin
2023-05-26 15:01:11
0

创建索引:

自动

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


基于函数的索引

  • 基于函数的索引就是一个基于表达式的索引

  • 索引表达式由列、常量、SQL 函数和用户自定义函数构成的


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  语句

  • 一条语句就可以恢复到指定时间点。

  • 恢复表中的数据以及相关的索引和约束。

  • 可以根据某一时间点或者系统改变号(SCN) 来恢复表。


表意外修改的修复工具:

– 表恢复到一个较早的时间点

– 优点:易用性、可用性、快速执行

– 执行到位(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;


临时表

创建临时表

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

as

select employee_id, first_name, last_name

from employees;

相关内容

热门资讯

特朗普为何罕见出手救日元?友谊... 今年以来,日元汇率持续走弱。近日,日元对美元汇率一度跌至近40年来低点。美日这次罕见的联手并非传统的...
“制茶大师”“烹饪大师”称号接... 澎湃新闻记者 陈良贤 王亚赛又有一个行业开始清理“大师”称号。近期,中国茶叶流通协会发公告称,决定撤...
湖北一地桥梁栏杆被大风吹倒摔碎... 8月4日,有网友曝光了湖北嘉鱼县一座桥梁栏杆全部倒塌摔碎的事件,说在破碎栏杆中未看到任何钢筋,质疑桥...
游客参观兵马俑时停电,官方回应... 摸黑面对兵马俑,是一种什么体验?8月5日,多位参观秦始皇兵马俑的游客发文称,4日下午游览时突遇场馆内...
三星发布zHBM和zNAND-... 【CNMO科技消息】近日,三星参加美国加州举办的“未来存储与内存会议”(FMS 2026)。大会上公...
中国成功发射卫星互联网低轨23... 北京8月4日电 (记者 马帅莎)据中国航天科技集团消息,北京时间8月4日16时52分,中国在海南商业...
台湾启动“汉光演习”,学者:设... 据凤凰卫视报道,台湾军方今天启动一年一度的“汉光演习”,台湾问题专家认为,台军的演习假想完全不符合实...
鸿蒙智行尊界V800官宣搭载面... IT之家 8 月 5 日消息,在今天的尊界时代旗舰 MPV 及华为全场景新品发布会上,华为常务董事、...
鸿蒙生态里程碑!微信鸿蒙版安装... 【CNMO科技消息】8月5日,CNMO科技了解到,微信鸿蒙版迎来重要进展,华为应用市场显示,微信鸿蒙...
奔驰强停商铺门前,店主劝阻反遭... 奔驰强停商铺门前,店主劝阻反遭车上两男子殴打致骨折,打人者事后开车逃跑,监控记录下清晰车牌,长沙警方...