Oracle 表的创建 及相关參数
1、 创建表完整语法
CREATE TABLE [schema.]table
(column datatype [, column datatype] … )
[TABLESPACE tablespace]
[PCTFREE integer]
[PCTUSED integer]
[INITRANS integer]
[MAXTRANS integer]
[STORAGE storage-clause]
[LOGGING | NOLOGGING]
[CACHE | NOCACHE] ];
说明:
Schema:表所在的方案名(所属username)
Table:表名
Column:字段名
Datatype:字段的数据类型
Tablespace:表所在的表空间名
控制数据空间使用的參数:
Pctfree:为了行长度增长而在每一个块中保留的空间的量(以占整个空间减去块头部后所剩余空间的百分比形式表示)。当剩余空间不足pctfree时,不再向该块中添加新行。
Pctused:在块剩余空间不足pctfree后,块已使用空间百分比必须小于pctused后,才干向该块中添加新行。
控制并发性參数:
INITRANS:在块中预先分配的事务项数,INITRANS对数据段的缺省值为1,对索引段的缺省值为2,以保证最低程度的并发。
当事务訪问表中的一个数据块时,该事务会在oracle块的头部中记录一个值,用于标记该事务正在使用这个oracle块。该事务结束时,会删除相应的条目。
比如。假设INITRANS设为3,则保证至少3个事务能够同一时候对块进行更改。
假设须要,也能够从块空暇空间内分配其他事务位置,以同意很多其他的事务并发改动块内的行。
MAXTRANS:限定能够分配给每一个块的最大事务项数,缺省值为255。设置后,该值限制事务位置对空间的使用。从而保证块内有足够的空间供行或者索引数据使用。
STORAGE:标识决定怎样将区分配给表的存储子句
i. INITIAL:初始区的大小
ii. NEXT:下一个区的大小
iii. PCTINCREASE:以后每一个区空间增长的百分比
iv. MINEXTENTS:段中初始区的数量
v. MAXEXTENTS:最大能扩展的区数
LOGGING:指定表的创建将记录到重做日志文件里。
它还指定全部针对该表的兴许操作都将被记录下来。这是缺省设置。
NOLOGGING:指定表的创建将不被记录到重做日志文件里。
CACHE:指定即使在运行全表扫描时。为该表检索的块也将放置在缓冲区快速缓存的LRU列表近期使用的一端。
NOCACHE:指定在运行全表扫描时,为该表检索的块将放置在缓冲区快速缓存的LRU列表近期未使用的一端。
案例1
通过设置表的NOLOGGING来产生更少的REDO
ORACLE数据库会对产生改变的操作记录REDO。比方DDL语句、DML语句,这些操作首先会放在redo buffer中,然后由LGER进程依据触发条件写到联机日志文件,假设数据库开启归档的话,还要在日志切换的时候归档。在这样一个完整的链条上的每一个环节。都可能会成为性能的瓶颈,所以须要引起DBA和数据库应用人员的注意。
以下案例中。当把一个表设置成NOLOGGING模式的时候,通过一定的插入操作。能够让oracle产生较少的REDO。
SQL> conn / as sysdba
SQL> archive log list --此时为归档模式
SQL> create table tj as select * from dba_objects where 1=2;
SQL> select count(*) from tj;
SQL> select table_name,logging from user_tables where table_name='TJ';
--观察logging属性值
SQL> set autotrace on stat
SQL> insert into tj select * from dba_objects; --观察redo size的统计值
SQL> rollback;
SQL> insert /*+append*/ into tj select * from dba_objects; --观察redo size的统计值
SQL> rollback;
SQL> alter table tj nologging;
SQL> select table_name,logging from user_tables where table_name='TJ';
--观察logging属性值
SQL> insert into tj select * from dba_objects; --观察redo size的统计值
SQL> rollback;
SQL> insert /*+append*/ into tj select * from dba_objects; --观察redo size的统计值
补充说明:设置Autotrace的命令
使用方法: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
--关闭跟踪运行计划和统计信息功能(默认关闭)。
SQL> set autotrace off;
--运行计划和统计信息都显示
SQL> set autotrace on ;
--仅仅显示运行计划和统计信息。不显示sql运行结果。
SQL> set autotrace traceonly;
--仅仅显示运行计划
SQL> set autotrace on explain;
--仅仅显示统计信息
SQL> set autotrace on statistics;
补充说明:归档模式与非归档模式间的转换命令
--1)关闭数据库
SQL>shutdown immediate
--2)把数据库启动到mount的模式
SQL>startup mount
--3)把数据库改为非归档模式 /归档模式
SQL>alter database noarchivelog;
或者
SQL>alter database archivelog;
--4)打开数据库
SQL>Alter database open;
--5)查看数据库归档模式的状态
SQL> archive log list
备注:假设在关闭归档日志时出现ORA-38774错误,请关闭flash闪回数据库模式。
SQL> alter database flashback off
案例2
创建一张基本表
Create tablespace exampletb
Datafile 'E:\ examp01.dbf' reuse;
CREATE TABLE scott.student
(id NUMBER(5) CONSTRAINT st_id_pk PRIMARY KEY,
name VARCHAR2(10) CONSTRAINT st_name NOT NULL,
phone VARCHAR2(11),
school_time DATE DEFAULT SYSDATE,
sex CHAR(1),
CONSTRAINT st_sex_ck CHECK (sex IN('F','M')),
CONSTRAINT st_ph_uk UNIQUE (name))
INITRANS 1 MAXTRANS 255
PCTFREE 20 PCTUSED 50
STORAGE( INITIAL 1024K NEXT 1024K PCTINCREASE 0 MINEXTENTS 1 MAXEXTENTS 5)
TABLESPACE exampletb
2、 改动表结构
Alter table 表名 add (列名 类型); --加入新列
Alter table 表名 modify (列名 类型); --改动列定义
Alter table 表名 drop column 列名; --删除列
Rename 表名 to 新表名 --改表名(表名前不能加方案名)
ALTER TABLE 表名 RENAME COLUMN 当前列名 TO 新列名; --改动列名
改动表结构案例
SQL> Alter table scott.student add (QQ number(10));
--为student表添加列存放QQ号
SQL> Alter table scott.student modify (QQ number(12));
--改动student表中名为QQ的列
SQL> Alter table scott.student rename COLUMN QQ to QQ_num;
--将student表中名为QQ的列改名QQ_num
SQL> Alter table scott.student drop column QQ_num;
--删除student表中名为QQ_num的列
SQL> insert into scott.student(id,name) values(1, 'lucy');
--向student表中插入一条记录
SQL> Alter table scott.student modify (sex char(1) default 'M');
--改动sex列的定义
SQL> insert into scott.student(id,name) values(2, 'Dell');
--向student表中插入一条记录
SQL> Alter table scott.student modify (sex char(1) default null);
--改动sex列的定义
SQL> insert into scott.student(id,name) values(3, 'Mary');
--向student表中插入一条记录
思考:oracle中列的默认值设置与改动。
3、 表的约束
Alter table 表名 add constraint 约束 ; --添加一个约束
Alter table 表名 drop constraint 约束名; --删除一个约束
alter table表名enable [validate/novalidate] constraint约束名;
--启用一个约束,validate/novalidate代表启用约束时是否对表中原有数据作检查。
alter table表名disable constraint约束名; --禁用一个约束
改动表约束案例
SQL> Alter table scott.student disable constraint st_sex_ck;
--禁用st_sex_ck约束
SQL> insert into scott.student(id,name,sex) values(4, 'Lily', 'N');
SQL> Alter table scott.student enable novalidate constraint st_sex_ck;
--启用st_sex_ck约束。但不检查已有数据。
SQL> select * from scott.student;
SQL> insert into scott.student(id,name,sex) values(5, 'Mark', 'N');
SQL>@$ORACLE_HOME/rdbms/admin/utlexpt1.sql --建立异常数据保存表
或者
@ G:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlexpt1.sql
--详细路径能够通过搜索utlexpt1.sql获取
SQL>alter table scott.student enable validate constraint st_sex_ck exceptions into exceptions; -- 将异常数据装入异常表
SQL> select * from scott.student where rowid in(select row_id from exceptions);
--查看相应的原表中的异常数据
SQL>Alter table scott.student drop constraint st_sex_ck; --删除约束st_sex_ck
Oracle 表的创建 及相关參数的更多相关文章
- Spark 性能相关參数配置具体解释-任务调度篇
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完好, ...
- oracle表空间创建及管理
一.数据文件和数据库逻辑存储结构: 一个表空间包含一个或多个数据文件,一个表空间包含一个或多个段,一个段包含一个或多个区,一个区包含一个或多个连续的数据库块,一个数据库块包含一个或多个操作系统块.段是 ...
- Chromium与CEF的多进程模型及相关參数
CEF基于Chromium,也是多进程模型.关于进程模型.參考这里:https://www.chromium.org/developers/design-documents/process-model ...
- oracle 表的创建与管理 约束
在 Oracle 之中数据表就被称为数据库对象,而对象的操作语法一共有三种:· 创建对象:CREATE 对象类型 对象名称 [选项]:· 删除对象:DROP 对象类型 对象名称 [选项]:· 修改对象 ...
- oracle 表空间创建和删除
oracle数据库:数据库对象以及表数据都存储在表空间中,创建用户时可以指定对应的表空间.这样用户可以在各自的表空间中操作数据,互不干扰. 1. 表空间创建 若不清楚表空间对应文件的路径,可以登录系统 ...
- Spark 性能相关參数配置具体解释-shuffle篇
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完好, ...
- jvm相关參数,调优
常见的jvm參数例如以下 -Xmx1024m:设置JVM最大可用内存为1024M. -Xms1024m:设置JVM初始内存为1024m. 此值能够设置与-Xmx同样,以避免每次垃圾回收完毕后JVM又一 ...
- Effective JavaScript Item 22 使用arguments来创建接受可变參数列表的函数
本系列作为Effective JavaScript的读书笔记. 在Item 21中,介绍了结合apply方法实现的可变參数列表函数average,它实际上仅仅声明了一个数组作为參数,可是利用apply ...
- oracle表分区创建
一.什么是分区表表分区有以下优点: 1.数据查询:数据被存储到多个文件上,减少了I/O负载,查询速度提高. 2.数据修剪:保存历史数据非常的理想. 3.备份:将大表的数据分成多个文件,方便备份和恢复. ...
随机推荐
- zzuli 1905 小火山的跳子游戏
Description 小火山和火山火山在一块玩跳子游戏.规则如下: 1:跳子的起始位置为0,棋盘大小从1到N 2:每次跳子跳k步. 例如当前位置为i, 那么下一步为i + k 3:跳 ...
- Android开发——使用ADB Shell命令实现模拟点击(支付宝自动转账实现)
首先声明,本人反对一切利用技术的违法行为 本文的实现代码已经销毁,本文以介绍流程为主 1.这里所说的模拟点击不是在自己的APP里点击,点自己APP上的控件没什么好说的 不仅是支付宝转账,其他的获取别人 ...
- CentOS7中,vnc分辨率设置。
使用geometry参数进行调整 例如,我们需要将分辨率调整到800x600 [root@secdb ~]# vncserver -geometry 800x600 New 'secdb:5 (roo ...
- [luoguP2420] 让我们异或吧(dfs + 异或的性质)
传送门 因为异或满足结合律和交换律. a^b^b=a 所以这个题直接求根节点到每个点路径上的异或值. 对于每组询问直接输出根到两个点的异或值的异或的值. ——代码 #include <cstdi ...
- bzoj 3207 花神的嘲讽计划Ⅰ 主席树+hash
花神的嘲讽计划Ⅰ Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3112 Solved: 1086[Submit][Status][Discuss] ...
- 一份关于webpack2和模块打包的新手指南(一)
webpack已成为现代Web开发中最重要的工具之一.它是一个用于JavaScript的模块打包工具,但是它也可以转换所有的前端资源,例如HTML和CSS,甚至是图片.它可以让你更好地控制应用程序所产 ...
- T1231 最优布线 codevs
http://codevs.cn/problem/1231/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 学校需要将n ...
- zookeeper原理浅析(二)
参考:https://www.cnblogs.com/leocook/p/zk_1.html 代码:https://github.com/littlecarzz/zookeeper 1. 数据模型 1 ...
- Jmeter参数Parameters和Body Data区别
1.如图: 2.有文章说,Parameters是get的参数:Body Data是post的参数:get的参数存在于url中,post的参数存在于body中: 但是我使用jmeter3.3版本测试 ...
- mongo开启验证
mongodb刚安装完, 创建超级用户 $mongo #进入mongo控制台 MongoDB shell version v3.4.10 connecting to: mongodb://127.0. ...