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:表所在的方案名(所属用户名)

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表参数,Oracle 表的创建 及相关参数相关推荐

  1. 【Android RTMP】音频数据采集编码 ( FAAC 音频编码参数设置 | FAAC 编码器创建 | 获取编码器参数 | 设置 AAC 编码规格 | 设置编码器输入输出参数 )

    文章目录 一. 头文件.成员变量准备 二. 创建 FAAC 编码器 三. 获取并设置 FAAC 编码器参数 四. 设置 FAAC 编码器编码标准 五. 设置 FAAC 编码器 AAC 编码规格 六. ...

  2. mysql8.0最低需要多少内存_MySQL8.0内存相关参数介绍

    本文来自读者投稿 作者:姚远 首先我们给出MySQL内存使用的计算公式: MySQL理论上使用的内存 = 全局共享内存 + max_connections×线程独享内存. 也就是:innodb_buf ...

  3. MySQL8.0内存相关参数介绍

    MySQL8.0内存相关参数介绍 首先我们给出MySQL内存使用的计算公式: MySQL理论上使用的内存 = 全局共享内存 + max_connections×线程独享内存. 也就是:innodb_b ...

  4. mysql8.0最低需要多少内存_MySQL8.0内存相关参数总结

    MySQL理论上使用的内存 = 全局共享内存 + max_connections×线程独享内存. 也就是:innodb_buffer_pool_size + innodb_log_buffer_siz ...

  5. IDEA JVM 性能优化 相关参数设置

    文章目录 IDEA JVM 性能优化 相关参数设置 IDEA JVM 性能优化 相关参数设置 点击 Help - Edit Custom VM Options -Xms256m -Xmx2048m - ...

  6. oracle级联删除表空间,Oracle表的创建.表空间创建删除,导入导出等

    创建表空间; 先在E盘建立oradate再在里面建一个temp, 再打开命令行cmd在写入sqlplus再写入sys/oracle@orcl as sysdba再写入 create tablespac ...

  7. oracle实验数据库和表,1oracle创建数据库和表.doc

    1oracle创建数据库和表.doc 实验一:创建数据库和表 一.实验目的 1. 掌握使用DBCA创建数据库 2. 掌握手工创建Oracle数据库的方法 3. 掌握创建数据表的方法 二.实验内容及步骤 ...

  8. Oracle修改表存储参数,Oracle存储结构之参数文件

    Oracle的参数文件非常之多,但最重要的当属数据库参数文件.而数据库参数文件有pfile和spfile两类.pfile需手动修改,是文本文件 Oracle的参数文件非常之多,但最重要的当属数据库参数 ...

  9. oracle数据库标志物,Oracle表的分类以及相关参数的详解

    oracle中有如下几种类型的表: 1.堆组织表(heap organized tables):常用的表类型,以堆的方式管理,当增加数据时,将使用段中第一个适合数据大小的空闲空间:当删除数据时,留下的 ...

最新文章

  1. NSString类详解
  2. 从源码角度看Android系统SystemServer进程启动过程
  3. 面试心得与总结——BAT、网易、蘑菇街
  4. 在Centos7 更改Docker默认镜像和容器的位置
  5. flutter 一个用户登录页面
  6. 请问用微信很少语音而且打字不喜欢打错别字的是什么样的人?能说明这样的人办事认真吗?
  7. 15 岁黑进系统,发挑衅邮件意外获 Offer,不惑之年捐出全部财产,Twitter CEO 太牛了!...
  8. 前端工作面试问题(上)---转
  9. Python: 如何将py文件转成exe文件?
  10. 节点文件将两个不同格式的XML文件,进行节点对照,并生成一个用于对照功能的XML...
  11. 淘宝客APP源码社交电商uniapp开发源码前端源码自营商城
  12. Adobe公司和谷歌公司共同开发的字体-思源黑体提供下载
  13. 计算机职业规划500字中专,计算机中专生职业规划范文500字中专生职业生涯规划书范文.doc...
  14. 2020年生肖码表图_2020年生肖排位表 鼠年号码岁数表
  15. pyodbc 测试连接 SQL Server 数据库
  16. word2vec及其优化
  17. postek二次开发_各类标签一机打尽博思得C168条码打印机评测
  18. 【STM32F4系列】【HAL库】【自制库】ps2手柄模块驱动
  19. 协程(一)——什么是协程
  20. bat批处理文件无法执行

热门文章

  1. 论文浅尝 | 异构图 Transformer
  2. 论文浅尝 - AAAI2020 | 迈向建立多语言义元知识库:用于 BabelNet Synsets 义元预测...
  3. 20190423面试记录
  4. redis为什么选择单线程工作模型
  5. 特殊乘法(字符串循环的结束标志)
  6. windows 安装 python3
  7. signed 与 unsigned 有符号和无符号数
  8. POJ 3928 amp; HDU 2492 Ping pong(树阵评价倒数)
  9. Hive安装与配置MySQL元数据库
  10. python-scrapy爬虫框架