Oracle表与约束关系
手动回收表的存储方式:
SQL> alter table aux_emp deallocate unused; //回收所有未使用的存储空间
表已更改。
回收aux_emp的存储空间,保留50K未使用的存储空间
SQL> alter table aux_emp allocate extent(size 100K); 表已更改。 SQL> alter table aux_emp deallocate unused keep 50k; 表已更改。
改变表的读写模式
Oracle在11g之前的版本中实现只读表的方法是通过授权间接实现的,影响面很大。使用文中介绍的只读表(read-only table)技术我们就掌握了细粒度控制表行为的方法。
重命名表:
将aux_emp重新命名为aux_employee
SQL> rename aux_emp to aux_employee; 表已重命名。
SQL> alter table aux_employee rename to aux_emp;
表已更改。
维护表
1.为表和列添加注释
语法为 comment on table table is
comment on column table.column is
为aux_emp表和annual_sal列添加注释
SQL> comment on table aux_emp is '辅助员工信息表'; 注释已创建。
SQL> comment on column aux_emp.annual_sal is '员工年工资' ; 注释已创建。
2.删减表
Oracle 数据库中,删减表有一下3中方法:
(1)使用Delete
(2)使用drop删除表后在重建表
(3)使用truncate删除表中全部数据
truncate语句可以快速、高效的删除表中的所有记录。truncate 是DDL语句,执行后马上提交,不会产生任何重做日志、回退信息,因此truncate操作语句不能回滚。
truncate table aux_emp 说明默认选项,被删减表中只会保留由参数Minentents指定的区的最小个数
truncate table aux_emp drop all storage; 删除数据段
truncate table aux_emp reuse storage; 被删减表中的所有存储空间都被回收。
3.删除表
如果要删除的表中包含被其他外键引用的主键列或唯一性约束列,并且希望在删除该表的同时删除其他表中相关的外键约束。需要使用cascade constraints字句。
drop table departments cascade constrains;
在删除一个表时,oracle将进行的操作
删除表中的所有记录
删除数据字典中该表的定义
删除与该表相关的所有索引和触发器。
依赖于该表的数据库对象处于invalid状态
为该表定义的同义词不会被删除,但是使用时会报错。
为该表定义的同义词不会被删除,但是使用时将返回错误。
如果要回收该表的存储空间,可以使用purge子句
drop table aux_emp purge;
4.分析表
1.使用DBMS_STATS包手机表统计信息。
SQL> begin
2 dbms_stats.gather_table_stats('ehr','employees');
3 end;
4 / PL/SQL 过程已成功完成。
可以使用analyze语句清楚数据字典中表的统计信息
SQL> analyze table employees delete statistics; 表已分析。
(2)验证表的存储结构
通过对表存储结构进行完整性验证,用户可以提前知道表中是否存在损坏的数据块。
analyze table employees validate structure;
SQL> analyze table employees validate structure; 表已分析。 SQL> analyze table employees validate structure cascade; 表已分析。 SQL> analyze table employees validate structure cascade fast; 表已分析。
Oracle表与约束关系的更多相关文章
- Oracle表级约束和列级约束
Oracle表级约束和列级约束 1. 表级定义约束 指的是在定义完一个表所有列之后,再去定义所有相关的约束. 注意:not null 约束只能在列级上定义. 2. 列级定义约束 指的是在定义一个表的每 ...
- Oracle—表、约束、索引、表空间、分区、序列、统计信息
表.约束.索引.表空间.分区.序列.统计信息 一.表及其操作 1.创建表 create table 表名 ( 字段名1 字段类型 默认值 是否为空 , 字段名2 字段类型 默认值 是否为空, 字段名3 ...
- Oracle表的约束
表的约束定义:表的约束是 ORACLE 数据库中应用在表数据上的一系列强制性规则 按照约束用途分类: PRIMARY KEY:主键约束 FOREIGN KEY:外键约束 CHECK:检查约束 UNIQ ...
- Oracle 表管理 约束 索引
表的约束与完整性: 1.实体完整性 主键唯一性 2.域完整性 不能向number中插入varchar 3.参照完整性 外键 以别的表的字段作为外键,再插入该表时所插入外键的值必须在被参照表中该字段有那 ...
- Oracle笔记之约束
约束用于保证数据库中某些数据的完整性,给某一列添加一个约束可以保证不满足约束的数据是绝对不会被接受的. 约束主要有那么五种类型:非空约束.唯一约束.主键约束.外键约束.校验约束. 使用如下命令检索某个 ...
- Oracle day05 建表_约束
表的创建 标准的建表语法 : CREATE TABLE [schema.] table (column datatype [DEFAULT expr], ... ); 使用子查询创建表的语法 CREA ...
- oracle之二表和表空间的关系
表和表空间的关系 建一个使用缺省值的表空间SQL> create tablespace a datafile '/u01/data/urpdb/a01.dbf' size 10m; 利用orac ...
- Oracle表名、列名、约束名的长度限制
Oracle数据库版本11.2.0.1.0 Oracle表名.列名.约束名的长度限制 1.查询用户所有的表 select * from USER_TABLES; 2.查询用户所有表的列 select ...
- oracle 表迁移方法 (二) 约束不失效
DB:11.2.0.3.0 在oracle 表迁移方法 (一)中,只是move了一张普通的表,如果表的字段带有主键约束呢 ? [oracle@db01 ~]$ sqlplus / as sysdba ...
随机推荐
- Doing Homework again(杭电1789)
Doing Homework again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- 彻底解决maven Cannot change version of project facet Dynamic Web Module to 3.0?
这个问题是由于maven默认的jdk和默认的Dynamic Web Module版本问题引起的. 这个问题断断续续解决了复发了,今天找打了一个方法 第一,首先要在maven中配置这个插件 <pl ...
- 超级拷贝scp
scp -r 超级拷贝,其是ssh的一个组件,通过ssh访问来拷贝文件.首先保证已安装openssh-server. 用法:scp -r 目标用户名@目标ip:目标文件绝对路径 存放位置 $ scp ...
- Python 字典初始化dict()和{}
参考:https://doughellmann.com/blog/2012/11/12/the-performance-impact-of-using-dict-instead-of-in-cpyth ...
- C++标准库之condition_variable
conditon_variable(条件变量)用于线程间同步 condition_variable有5个函数,函数名及对应的功能如下: wait阻塞自己,等待唤醒 wait_for阻塞自己,等待唤醒, ...
- Eclipse 创建 XML 文件
Eclipse 创建 XML 文件 打开新建 XML 文件向导 你可以使用新建 XML 文件向导来创建 XML 文件.打开向导的方式有: 点击 File 菜单并选择 New > Other 点击 ...
- wchar与char字符转换的探究
在Xcode 模拟器环境下.測试wchar_t与char的转换: void convert_test() { setlocale(LC_ALL, "zh_CN.UTF-8"); c ...
- Javascript间歇调用和超时调用
间歇调用:每隔指定的时间就执行一次代码 超时调用:在指定的时间过后执行代码 HTML Code 12345678910111213141516171819 <!DOCTYPE html& ...
- PDO drivers no value in Windows
学习php编程遇到 Uncaught exception 'PDOException' with message 'could not find driver' 或者 Undefined class ...
- Kettle 7启动 Spoon.bat 时报错“A Java Exception has occurred.”的解决方法
最近在研究Kettle 时出现启动时报错“A Java Exception has occurred.”的问题.刚开始没搞明白是什么原因,后来发现是jdk版本的问题.出现这个错误原因是 Kettle ...