[计算机软件及应用]第6章数据表.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机软件及应用]第6章数据表

从表USER_CONSTRAINTS中查看所有约束的名字、定义 SELECT constraint_name, constraint_type search_condition FROM user_constraints WHERE table_name = EMP; 从视图 USER_CONS_COLUMNS中查看约束关联的列 SELECT constraint_name, column_name FROM user_cons_columns WHERE table_name = EMP; 查询约束信息 临时表 Oracle使用create table命令创建的数据表称为永久表或普通表。在Oracle中还有另外一种特殊的数据表——临时表。 临时表简介; 会话级临时表; 事务级临时表; 查看临时表属性信息; 临时表的应用。 临时表简介 首先需要明确的是,临时表的临时并非指其存在性而言。也就是说,除非使用DROP TABLE命令来删除临时表,否则,一旦创建将一直存在。在存在性上,和普通表没有任何区别。 其临时性,指的是所存储数据的临时性。也就是说,临时表虽然一直存在,但其中的数据会在某种条件下被Oracle数据库自动清空。 临时表数据清空的条件有两种:一是事务提交或回滚;二是会话结束。 临时表中的数据只在当前会话或当前事务中是有效的 创建临时表 根据临时表中数据被释放的时间不同,临时表分为 事务级别的临时表和会话级别的临时表两类。 创建临时表时,采用如下不同的参数: ON COMMIT DELETE ROWS //事务级临时表 --事务提交时临时表中的数据清除 ON COMMIT PRESERVE ROWS //会话级临时表 --会话结束后临时表中的数据清除 会话级临时表 创建临时表应该使用命令 create global temporary table 命令。 例如: create global temporary table tmp_users_session (user_id int, user_name varchar2(20), user_email varchar2(30)) on commit preserve rows 事务级临时表 事务级临时表的创建同样使用create global temporary table命令。 将on commit preserve rows变更为on commit delete rows,即提交时删除表中记录。 例如: create global temporary table tmp_users_transaction (user_id int, user_name varchar2(20), user_email varchar2(30)) on commit delete rows 临时表的应用情况 1.大表分割:大表分割成多个小表,对小表进行操作,提高查询速度 2.解决并行问题:多用户、多进程同时访问数据表时,往往出现并行问题使用临时表 3.作为数据缓存:在程序段中,可能需要对若干数据进行复杂的运算,创建临时表,可以减少计算复杂度 特殊的表dual 在所有的Oracle数据表中,有一个非常特殊的表——dual。该表是每个数据库创建时默认生成的。该表仅有一列和一行数据,在数据库开发中有着非常特殊的作用 dual表的应用; 不可以随意修改dual表。 分析dual表 在PL/SQL Developer或者SQL*Plus中,可以利用DESC命令查看DUAL表的结构。 dual表的应用场景 在Oracle数据库中,dual表实际是作为一个虚表的概念存在的。也就是说,dual表存在的意义并非为了存储数据。更多时候,dual表被用来作为from的源表,是个虚表。 Oracle的查询语句必须满足: select * from table 例子: select sysdate from dual; select 3+3*9 from dual; 修改DUAL表对查询结果的影响 Oracle10g以前的版本,对DUAL表的修改对于查询结果是有影响的。 Oracle10g以后没有影响,都保证与单条记录一样 不能删除该表 主要内容小结 create table test_table (id number, name varchar2(20)); describe test_table; alter table test_table add (status varchar2(3)); describe test_table; alter ta

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档