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 ...
随机推荐
- 使用Hyper-V安装Ubuntu16.04 Server 网络配置
由于最近在研究Docker, 于是需要用到虚拟机,安装Ubuntu 16.04到Hyper-V并部署Docker.这个过程中填平了几个小坑,为了大家以后遇到类似情况节省时间,我将这几个小坑的问题和解决 ...
- 21:开发脚本管理服务端LVS案例
[root@lb03 scripts]# cat lv_manager.sh #!/bin/bash #定义只能是root用户执行 ];then echo "permission deny ...
- 电脑的文件怎么拷贝复制到VMware虚拟机
我们有时候想要在电脑和虚拟机之间复制粘贴文件,当然最笨的方法是用U盘进行复制转移,但是这样也太落伍了吧,那么我们怎么利用虚拟机自带的功能,然后将电脑的文件复制拷贝到VMware虚拟机中呢?有些朋友不太 ...
- 创建一个动作-Action类:
让我们创建一个Java文件HelloWorldAction.java的Java资源> SRC下一个的包名com.yiibai.struts2与下面的内容. package com.yiibai. ...
- jQuery DOM 元素方法
函数 描述 .get() 获得由选择器指定的 DOM 元素. .index() 返回指定元素相对于其他指定元素的 index 位置. .size() 返回被 jQuery 选择器匹配的元素的数量. . ...
- Mysql闪回技术之 binlog2sql
1.下载 https://github.com/danfengcao/binlog2sql http://rpmfind.net Search: python-pip pip 是一个Python包管理 ...
- 防火墙系列之firewall
firewalld 介绍 防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口.它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (com ...
- log4j日志文件乱码问题的解决方法
近日在AIX上用log4j打印日志,出现乱码,经过努力解决问题. 症状:在默认语言非中文(或者说默认语言不支持中文的)的Windows.Linux.Unix上,用log4j打印日志,出现乱码,常见的就 ...
- MySQL基本操作(+参考手册)
1.MySQL 5.1参考手册 2.基础教程 3.常用举例入下: 1 连接数据库:mysql -h主机地址 -u用户名-p用户密码 2 数据库的提示符:mysql> 3 退出数据库:exit(回 ...
- 二、docker入门
docker入门 使用场景: 面向产品.面向开发.面向测试.面向运维.面向自动化.面向微服务.面向大规模的分布式架构(微信红包) 虚拟化解决方案: 商业解决方案: VMware vSphere,VMw ...