SQL 基础之索引、闪回、临时表(十八)

创建索引:

自动

– 创建 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 <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 驱动创建外部表

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;

时间: 2024-10-14 20:12:01

SQL 基础之索引、闪回、临时表(十八)的相关文章

Oracle SQL基础(3)-索引/触发器/视图操作

本文只列出索引,触发器,视图的简单操作语句 1.索引 a.创建 create index idx_name on fdh_client_info(name); --普通索引(单列索引) create unique index uni_idx_id on fdh_client(id); --唯一索引 create index union_idx_name_addr on fdh_client(name, address); --联合索引 b.查询索引 select * from user_inde

SQL 基础之多表查询(十)

JOINS 类型和它的语法 Natural joins(自然连接): – NATURAL JOIN 子句 – USING 子句 – ON 子句 自连接 非等值连接 Outer joins(外连接): – LEFT OUTER JOIN(左外连接) – RIGHT OUTER JOIN(右外连接) – FULL OUTER JOIN(全外连接) 笛卡尔积 – Cross join(交叉连接) 语法: select table1.column, table2.column from table1 [

C#_基础_部分类partial(十八)

在同一个命名空间下,只能定义一个相同类名的类,例如在一个命名空间下只能有一个 Person类. 部分类:理解为每个部分只是组成类的一部分,其实还是一个类,所有的成员都是共享的,也就是说在一个部分类中定义的变量, 在另一个部分类中可以使用,那么在一个部分类中定义的变量,在其他部分类中不能重复定义,可以理解为把一个类中的成员,分 开放到不同的类中. 通过案例演示: 1 using System; 2 using System.Collections.Generic; 3 using System.L

Oracle学习(15)【DBA向】:闪回

闪回Flashback 什么是闪回 l在Oracle的操作工程中,会不可避免地出现操作失误或者用户失误,例如不小心删除了一个表等,这些失误和错误可能会造成重要数 据的丢失,最终导致Oracle数据库停止. l在传统意义上,当发生数据丢失.数据错误问题时,解决的主要办法是数据的导入导出.备份恢复技术,这些方法都需要在发生错误 前,有一个正确的备份才能进行恢复. l为了减少这方面的损失,Oracle提供了闪回技术.有了闪回技术,就可以实现数据的快速恢复,而且不需要数据备份. 闪回的好处 恢复中,闪回

Oracle闪回技术详解

概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是介质丢失的错误,闪回技术就回天乏术了,还是得借助于Oracle一些高级的备份恢复工具如RAMN去完成(这才是Oracle强大备份恢复机制的精髓所在啊)  撤销段(UNDO SEGMENT) 在讲闪回技术前,需要先了解Oracle中一个逻辑结构--撤销段.因为大部分闪回技术

Oracle 闪回特性(FLASHBACK DATABASE)

--===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --===================================== 闪回技术通常用于快速简单恢复数据库中出现的认为误操作等逻辑错误,从闪回的方式可以分为基于数据库级别闪回.表级别闪回.事务 级别闪回,根据闪回对数据的影响程度又可以分为闪回恢复,闪回查询.闪回恢复将修改数据,闪回点之后的数据将全部丢失.而闪回查询则可 以查询数据被DML的

Oracle闪回技术(Flashback)

闪回技术有闪回表.闪回删除.闪回查询.闪回事务查询.闪回事务.闪回数据库.闪回数据归档.其中,闪回查询.闪回事务查询用来“观察”过去:闪回数据归档并不是一个独立的功能,其功能是扩展闪回查询的时间窗口:闪回表.闪回删表能够以表为单位“回到”过去:闪回事务能够以事务为单位“回到”过去:闪回数据库能够以数据库为单位“回到”过去. 一. 闪回表(Flashback Table) 闪回表是利用UNDO表空间的撤销数据,所以能把表闪回到多久之前受到undo_retention,UNDO表空间的数据文件是否启

开启数据库闪回功能

1.闪回功能必须,设置数据库为归档 SQL> select log_mode from v$database; LOG_MODE ------------------------ NOARCHIVELOG SQL> shutdown immediate; SQL> startup mount; 设置闪回区位置和大小 SQL> show parameter db_recovery NAME TYPE VALUE ---------- --------- ----------- db_

Oracle 11gR2数据库闪回功能--预防人为逻辑错误

Oracle 11gR2数据库闪回功能--预防人为逻辑错误 1.Flashback对于DJI ERP系统的作用? 对于一些人为操作的错误,比如批量删除了数据,我们可以通过Flashback功能来恢复.缺点是,此段时间内其他用户的正确操作也会丢失. a.设立一个闪回窗口,例如60分钟.当出现人为错误时,可以恢复到过去60分钟内的任何一个时间点. b.以某个时刻设定一个恢复点,以后出问题了,那怕过了几个月,都可以恢复到这个时刻上来.而且,只能恢复到这个时刻,而不能是这几个月内的任何一个时间点. 我们