设为首页 收藏本站
查看: 941|回复: 0

[经验分享] SQL 基础之索引、闪回、临时表(十八)

[复制链接]

尚未签到

发表于 2018-10-20 12:06:14 | 显示全部楼层 |阅读模式
  创建索引:
  自动
  – 创建 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;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-624043-1-1.html 上篇帖子: SQL 基础之管理方案对象(十七) 下篇帖子: SQL 基础之管理对象与数据字典视图(十九)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表