oracle 常用表操作

 创建表

  create table 表名(字段 类型,字段 类型)
  create table employee(id number,
      name varchar2(20),
      pass varchar2(20)

  );

  通过查询创建一张新表
  create table emp1 as select empno,ename,job from employee;
删除表
  drop table 表名
  drop table emp1
添加字段
  alter table 表名 add 字段;
  alter table employee add (dept varchar2(50));
修改字段的类型
  alter table employee modify (dept char(2));
删除一个字段
  alter table employee drop column dept;

 

五个约束
  primary key
  foreign key
  not null
  unique
  check

 

实例:

  部门
  create table dept(did number primary key,
      name varchar2(100) unique

  );
  经理,外键为列级
  create table manager(mid number primary key,
      dept number references dept(did),
      name varchar2(20) not null,
      sex char(2) check(sex in('男','女')),
      email varchar2(40) unique

  );
  经理,外键为表级
  create table manager(mid number,
      dept number,
      name varchar2(20) not null,
      sex char(2) check(sex in('男','女')),
      email varchar2(40) unique,
      constraint pk_g primary key(mid),
      constraint fk_g foreign key(dept) references dept(did)
  );
  使用alter添加主外键
    alter table manager add constraint pk_g primary key (mid)
    alter table manager add constraint fk_g foreign key(dept) references dept(did)
  删除约束
    alter table manager drop constraint fk_g;

清空表 ,不能回滚
  truncate table manager;
修改表名称
  rename dept to newdept;

 

根据条件删除

  delete from manager where mid=1;

删除所有的记录
  delete from manager;
  commit;

 

回滚
  rollback;
设置一个保存点
  savepoint aa;
  rollback to aa; 回滚

 

外键的级联
  on update 和 on delete 后面可以跟的词语有四个:
    no action 表示不做任何操作,
    set null 表示在外键表中将相应字段设置为null
    set default 表示设置为默认值
    cascade 表示级联操作,就是说,如果主键表中被参考字段更新,外键表中也更新,主键表中的记录被删除,外键表中改行也相应删除

 

    create table people(id number( primary key,
        name varchar2(40),
        mid number references manager(mid) on delete set null

    )

添加注释,也可以在创建表是加在字段后
  comment on table table_name is '表注释';
  comment on column table_name.columns is '列注释';

 

 

当前用户的表 ,all_tables为所有用户的,dba_tables包括系统表在内的
  select table_name from user_tables;
获取当前用户表字段,all_tab_columns,dba_tab_columns
  select * from user_tab_columns where table_name='用户表';
获取表注释
  select * from user_tab_comments
获取字段注释
  select * from user_col_comments

 

posted @ 2015-12-17 16:40  Iamabc  阅读(176)  评论(0编辑  收藏  举报