创建表

1、describe 表名  --查看表结构

定义列的时候变长字符数据类型必须指定最大长度,number可以是最高精度(最高到38位),也可以是指定的精度。

2、字符宽度和数值精度

char列的最大字符宽度是2000个字符。varchar2列可以有最多32000个字符。数值精度

insert语句中的值表中的实际值

精度为number(4,1)123.4123.4

123.44123.4

123.445123.5

12345.6插入失败

精度为number(4)123.4123

123.44123

123.5124

12345.6插入失败

精度为number(4,-1)123.4120

123.5120

125130

12345插入失败

精度为number123.4123.4

123.5123.5

125125

1234512345

3、创建表时可以加几种不同的约束。包括:候选键、主键、外键以及检查条件。有两种指定约束的方法,一种方法是作为列定义的一部分定义(称为列约束),另一种方法是在create table 语句的末尾定义(称为表约束)。限制多个列的子句必须是表约束。

①候选键(candidate key)是一列或多列的组合,其值唯一地标识了表中的一行。

constraint XXXX unique(XXX,XXX...);

②主键(primary key)是具有某些特殊性质的候选键之一。

constraint XXXX primary key;

4、指定索引表空间

create table test(

id number(5,2),

name varchar2(20),

constraint id_pk primary key (id) using index tablespace users);

①外键(foreign key)是基于另一个表的主键值的列的组合。

constraint XXXX foreign key(aaa) references category (aaa);

②check 约束

许多列必须具有处于某个范围或满足某些条件的值。

create table test(id number(1) check (id<=100));

删除表

drop table test;删除表仍然保留了表的空间,它们只是暂时通过“回收站”来访问。

drop table test purge; 删除表同事把它从“回收站”中清除。

如果表已经被删除,可以从“回收站”中清除所占的空间。

purge table test;

清除“回收站”中的所有内容:

purge recyclebin;

截断表

truncate table trouble;

更改表

添加列alter table test add(age number(2) not null );

修改列alter table test modify(age null );

添加或修改列的规则可以随时增加字符列的宽度。随时增加number列的数字位数。随时增加或减少number列中的小数位数,对于减少的情况需要表为空。

可以更改该列的数据类型。减少字符列的宽度。减少number列的数字位数。

创建只读表

alter table test read only;

alter table test read write;

更改当前使用的表

alter session set ddl_lock_timeout=60;

创建虚拟列

可以在表中创建虚拟列,而不是存储派生的数据。虚拟列可以基于同一行中的其他值(例如,将两列加起来)。在以前的版本中,需要创建视图来执行创建列值必须的函数。在oralce 11g 和12c中,可以将函数指定为表定义的一部分,这样就可以对虚拟列创建索引,并通过虚拟列创建分区表。

generated always as (xxxx) virtual

删除列

alter table test drop column age ;

也可以标记为"unused"

alter table test set unused column xxxx;

若标记一列为"unsed",则在删除该列之前不会释放此列以前占用的空间。

alter table test drop unused columns;

可以查询user_unused_col_tabs,all_unused_col_tabs以及dba_unused_col_tabs来查看所有其中含有标记为“unused”的列的表。

可以利用一条命令删除多列

alter table test drop(xxx,xxx);

如果删除的列是主键约束或唯一约束的一部分,那么在alter table 命令中必须使用cascade constraints子句。如果删除属于主键的列,oracle将同时删除该列和相应的主键索引。

根据一个表创建另一个表

create table test2 [nologging] as  select * from test;

注意:所选的列中有long数据类型,创建将失败。不会为新表自动创建源表上的约束,包括NOT NULL约束。

可以使用nologging改善向表中加载数据操作的性能。但创建完应该及时备份数据库。

创建索引组织表

索引组织表能根据表的主键列值对数据进行排序。索引组织表存储数据时就像整个表存储在一个索引中那样。索引有两个主要用途:

强制唯一性 在创建primary key 或unique约束时,Oracle创建索引来强调索引列的唯一性。

改善性能 当某个查询使用索引时,此查询的性能将得到显著改善。

索引组织表允许在索引中存储整个表的数据。普通的索引只存储索引列,而索引组织表则在索引中存储表中的所有列。

create table test (id number,name varchar2(20),consrtaint id_pk primary key(id,name ) organization index;

当主键由表中的大部分列构成时,使用索引组织表是最有效的。

集群

集群是存储表的一种方法,这些表密切相关,并经常一起连接到磁盘的同一区域。例如表 a 和表b 的数据行可以交错插入到称为集群的单个区域中,而不是将两个表放在磁盘上的不同扇区中。集群键可以是一列或多列,通过这些列通常可以将这些表在查询中连接起来。为了将表集群在一起,必须拥有这些将要集群在一起的表。

create cluster clustername (column datatype [,column datatype]...)[other options];

clustername 遵循表的命名约定,clustername将作为集群键使用的名称和数据类型。列名可以与将要放进集群中的表的一个列名相同,或为其他任何有效的名称。

序列

使用序列可以把唯一的数值分配给数据库中的列。不需要创建特殊的表和代码来记录使用中的唯一的数值。

create sequence customer_id increment by 1start with 1000;

使用nextval确保序列的值不断增加并保证获得唯一号码,此数值就会存储在currval中,以便在别的地方使用。

本公众号是个人学习工作笔记,希望大家发现问题能及时和我本人沟通,希望你与我共同成长。个人微信zgtj12306。

欢迎关注“自学Oracle”

oracle 序列和表关联,Oracle 创建和管理表、集群和序列相关推荐

  1. oracle 创建表空间_Oracle 创建和管理表

    (1)创建表 - CREATE TABLE ① Create table 创建表 准备条件:具备创建表的权限和存储空间:制定表名,列名,数据类型,尺寸 create table 语句 必须具备:cre ...

  2. mysql创建表关联_MySQL创建高级联表教程

    #MYSQL#这是我第七篇MySQL教程,本篇主要介绍的是如何创建高级联表查询,主要包括使用表的别名,和自连接,外连接,和使用聚合函数连接,已经如何创建链接的条件.希望对你有所帮助. 在MySQL中除 ...

  3. 创建emp表 oracle,Oracle中创建和管理表详解

    Oracle中创建和管理表详解 更新时间:2013年08月01日 15:44:16   作者: 以下是对Oracle中的创建和管理表进行了详细的分析介绍,需要的朋友可以过来参考下 SQL> /* ...

  4. Oracle 数据库创建表空间、创建用户指定表空间

    Oracle 数据库创建表空间.创建用户指定表空间 //创建临时表空间 create temporary tablespace user_temp tempfile 'D:\oracle\oradat ...

  5. sql 语句left join关联超过2张表时,随着left join一路向左,永远只能是最左边的关联表与新表关联吗?还是母表可以一直on下去?

    今天这个帖子要解决一个问题:oracle数据库表间通过left join关联超过2张表时,随着left join一路向左,永远只能是最左边的关联表与新表关联吗?还是母表可以一直on 下去? 利用sql ...

  6. 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解...

    salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解 建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schema ...

  7. salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解

    建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schema Builder查看表结构以及多表之间的关联关系,可以登录后点击setup在左侧搜索框输入schema ...

  8. MySql基础篇---003 SQL之DDL、DML、DCL使用篇:创建和管理表 ,数据处理之增删改,MySQL数据类型精讲 ,约束:联合主键

    第10章_创建和管理表 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 基础知识 1.1 一条数据存储的过程 存储数据是处理数据的第一步.只有正确地 ...

  9. MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)两个表使用条件从另外一个表获取数据更新本表

    MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)两个表使用条件从另外一个表获取数据更新本表 有两张表,info1, info2 . info1: info2: 方式一:要用info2中的 ...

最新文章

  1. 【eclipse】eclipse使用常见问题(持续更新)
  2. 使用CSS制作圆角效果
  3. linux 文件属性文件权限
  4. i5 11300H和i5 10300H 的区别
  5. ant 驱动 svnkit 下载代码
  6. 使用Maven配置JBoss / Wildfly数据源
  7. c语言语句的使用形式,C语言如何使用print语句
  8. 球变暖导致巨大灾难 及早应对海平面上升危害
  9. MongoDB小型文档型数据库使用
  10. C++中lower_bound函数和upper_bound函数
  11. 解决0RA-04031故障
  12. EViews-蒙特卡洛模型代码
  13. python猜数字游戏编程、直到猜对为止显示猜了几次_python编写猜数字小游戏
  14. unity 暂停按钮_Unity应用怎么暂停(Pause)
  15. 珠海分销系统官网开发笔记:wordpress中使用canonical标签修复版
  16. 计算机网络的社会环境分析_2020年昆仑银行分行社会招聘工作人员公告
  17. 使用easypoi导入导出excel,SSM和SpringBoot通用代码
  18. stm32中的或运算 ||
  19. ChatGPT通过中国数据库系统工程师(DBA)认证?
  20. 【android】向模拟器的sdcard中添加文件

热门文章

  1. 三国志战略版:三势贾的另类搭配,也可以这么强?
  2. 【Linux】Rsync基于SSH认证的使用(rsync 命令属于1 v 4 的命令、rsync常用参数基本用法)
  3. 网络切片使能千行百业,助5G无所不能,5G网络切片“切”的是什么?
  4. 阻止putty变成inactive
  5. 详解磁盘配额的设置方法
  6. Spring中的@Scheduled
  7. 笔记:期权定价-无套利理论
  8. 使用cmd命令窗口打开对应的应用程序
  9. Microsoft Office Document Image Writer 和 Microsoft XPS Document Writer (Office组件轻松把PDF文件转成Word文档)...
  10. IP数据包的路由转发