--查看表的结构

desc ygb;

select * from user_tab_columns
where table_name='YGB';

--新建表ygb

create table ygb(
  bh number(3),
  eid varchar2(6) constraint eid_p primary key,
  ename varchar2(10),
  bdate date,
  sex char(1),
  city varchar2(20)
);

JOHN@ test10g> create table tbstest
  2  (id int,
  3   dt date
  4  )
  5  tablespace tbs_test;    --指定表存放的表空间

--通过查询新建表

create table emptest as  
select * from emp;

如果此表有几百万行,并且你的时间不允许,那么还有两种方法可以提高创建含有大量数据的新表的速度。可以使用 parallel 和 nologging 选项来提高装载大表的速度。parallel 选项允许你用多个进程并行执行数据加载,并且 nologging 选项指示不要把该信息记录进重做日志文件和回滚段(除了为内务处理目的外)。如下所示:

create table employee_new
as select * from employees
parallel degree 4
nologging;

另一种方法是将一个表简单的从一个表空间移动到另一个表空间。

alter table employee move new_tablespace;

当移动一个表时,行的 rowid 改变了,因而使该表的索引不可用。你必须重新建立索引或者在你移动该表后重建它们。

--重命名表

alter table ygb rename to newname;

--删除表

drop table emp;                          --删除表
drop table emp purge;                    --删除表,不放到回收站
drop table emp cascade constraints;      --将约束一起删除

truncate table emp;                      --截断表

--修改表的结构

alter table emp add (job_id number);                        --追加列 
alter table emp modify (job_id number(4,0) default 1001);   --修改列
alter table emp drop column job_id;                         --删除列 
  alter table emp drop (job_id);
alter table emp rename column job_id to jobid;              --重命名列
income integer generated always as (salary+jiangjin);       --虚拟列

如果要删除列的那个表中包含了大量的数据,你可以将该列标记为未用,而不用完全删除数据。你在任何查询或试图中都不会看到该列,并且所有定义在该列上的所有依赖对象(如约束和索引)都被删除。事实上,用词方法可以快速“删除”一个大数据列。

alter table emp set unused column job_id;    --标记未使用列

然后,可以在某个维护时间中使用以下命令永久删除这两列。

alter table emp drop unused columns;          --删除未使用列

如果认为表中行太多可能潜在的消耗撤销空间,可以用可选的 checkpoint 子句删除一列。通过在一定数目的行后使用检查点,将在删除该列的同时减少撤销数据的产生。参见下面的例子。每当在emp中删除10000行,数据库就使用一个检查点:

alter table emp drop unused columns checkpoint 10000;

alter table emp read write;     --读写状态
alter table emp read only;      --只读状态

可以在只读表上执行以下操作:
select
create/alter/drop index
alter table add/modify/drop/enable/disable constraint
进行物理特性更改的 alter table
rename table 和 alter table rename to
drop table

--创建会话级临时表

create global temporary table temp_tb1(col_a varchar2(30)) 
on commit preserve rows;
 
--创建事务级临时表

create global temporary table temp_tb2(col_a varchar2(30)) 
on commit delete rows

--insert

insert into ygb
values(bhseq.nextval,101,'A','2-3-86','男','西安');

--update

update gzb
set salary=salary*1.1
where eid=108;

--delete

delete from ygb
where eid=108;

--查看表的大小

IKKI@ test11g> select segment_name,segment_type,bytes from user_segments
  2  where segment_name='EMP';

SEGMENT_NAME    SEGMENT_TYPE  BYTES
--------------- ----------    ----------
EMP             TABLE         65536

Oracle基础 10 表 table的更多相关文章

  1. Oracle基础 01 表空间 tablespace

    --查看表空间 select * from dba_tablespaces; select * from v$tablespace; select * from dba_data_files; --查 ...

  2. Oracle基础:表空间名称大小写问题

    现场环境:  操作系统:windows            Oracle版本:10g 今天在通过imp导入数据时,日志提示TS_W5_D表空间不存在.感觉很奇怪,导入用户的表空间是ts_w5_d,并 ...

  3. oracle基础-创建表空间

    一. 创建表空间的完整格式 CREATE [UNDO|TEMPORARY] TABLESPACE tablespace_name       DATAFILE 'path/filename' [SIZ ...

  4. Oracle基础 表分区

    Oracle基础 表分区 一.表分区 (一)表分区的分类 1.范围分区(range) 2.散列分区(hash) 3.列表分区(list) 4.复合分区:范围-哈希(range-hash).范围-列表( ...

  5. Oracle基础(七)数据表

    一.创建表 语法: CREATE TABLE [schema.]table (column datatype[,column datatype[,...]); 说明: CREATE TABLE:为创建 ...

  6. (3)Oracle基础--表

    · 认识表 Oracle中的表都是存储在表空间中,具有以下特点:  <1> 数据的基本存储单元  <2> 二维结构 行:又称为‘记录’ 列:又称为‘字段或域’  <3&g ...

  7. openresty开发系列15--lua基础语法4表table和运算符

    openresty开发系列15--lua基础语法4表table和运算符 lua中的表table 一)table (表)Table 类型实现了一种抽象的"关联数组".即可用作数组,也 ...

  8. oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别

    create table  as select * from和insert into select from两种表复制语句区别 create table targer_table as select ...

  9. Oracle 数据库基础学习 (三) Oracle 四个表结构

    Oracle 四个表的 emp dept  salgrade  bunus 的结构,记住有利于后期SQL语句的学习 雇员表(emp) No. 字段 类型 描述 1 empno NUMBER(4) 表示 ...

随机推荐

  1. 数论3——gcd&&lcm

    gcd(a, b),就是求a和b的最大公约数 lcm(a, b),就是求a和b的最小公倍数 然后有个公式 a*b = gcd * lcm     ( gcd就是gcd(a, b), ( •̀∀•́ ) ...

  2. Ext.Net中如何获取组件

    我们在编写函数function的时候,常常需要用到页面上的组件.这时候就需要调用组件. 在Ext.net中,调用组件可以用.App.ID.(ID指的是想要调用的组件的ID). 例如: 我写一个函数需要 ...

  3. 【Linux】——搭建redis

    1.准备安装文件 redis-3.0.5.tar.gz redis-desktop-manager(可视化管理工具) 2.解压.编译 软件存放目录:/usr/local/software 解压存放路径 ...

  4. 使用window.getSelection()获取div中选中文字内容及位置

    div添加一个弹出事件: $(document).ready(function () { $("#marked-area").mouseup(function (e) { $sco ...

  5. dechex()

    dechex() 函数把十进制转换为十六进制生成验证码的时候用到了

  6. 简单配置 Tomcat 的 Server.xml(war包发布)

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" ...

  7. ES mapping的写入与查看

    Elasticsearch索引mapping的写入.查看与修改 https://blog.csdn.net/napoay/article/details/52012249 首先创建一个索引: curl ...

  8. 在VS2012中设置默认启动

    Visual Studio 2012一个解决方案中多个项目,如果想选择哪个项目就设置哪个项目为启动项就好了. 第一种方法,工具===〉〉选项===〉〉〉项目解决方案===〉〉〉对于新的解决方案,使用单 ...

  9. BZOJ4446 SCOI2015小凸玩密室(树形dp)

    设f[i][j]为由根进入遍历完i子树,最后一个到达的点是j时的最小代价,g[i][j]为由子树内任意一点开始遍历完i子树,最后一个到达的点是j时的最小代价,因为是一棵完全二叉树,状态数量是nlogn ...

  10. [洛谷P1407][国家集训队]稳定婚姻

    题目大意:有$n$对夫妻和$m$对情人,如果一对情人中的两人都离婚了,那么他们可以结为夫妻.对于每一对夫妻,若他们离婚后所有人依然可以结婚,那么就是不安全的,否则是安全的.问每一对夫妻是否安全. 题解 ...