Oracle 创建表,更新表,删除表的一系列操作

在本次笔记中,会介绍表的创建,包括索引的类型,设置字段为自增的序列,

1、创建表

create table 表名(
字段名1 字段类型,
字段名2 字段类型,
constraint pk primary key(字段名1), -- 创建唯一的主键
constraint ck_len check length(字段名1) >=2,
constraint ck_in 字段名1 in (条件),
constraint fk foreign key (外键) references 表名(主键)
)
comment on table 表名 is ‘表注释条件’;
comment on column 列名 is ‘列注释条件’;
--添加索引
create 索引类型 indent 
--设置字段名为自增的序列
在oracle中没有自增的序列字段,mysql中可以在创建表字段时使用auto_increment 
在oracle中设置字段为自增序列时,可以使用创建序列,然后创建触发器进行自增序列的生成

--创建索引

create 索引类型 index 索引名 on 表名(字段名)
索引的类型: 
          省略一般为普通的索引;
          唯一索引有unique;
          组合索引,在多列或者是两列以上的字段上设置组合索引;
          位图索引(Bitmap indexes):具有少量重复值的列(如性别、国家等),可以节省空间并提高查询效率;
          位图联结索引(Bitmap Join Indexes):用于优化多个表之间的连接操作,特别是当连接条件涉及低基数(唯一值较少)列时;
 
   

--创建字段的自增序列

create or replace sequence 序列名
start with 开始的序列数
minvalue 最小的序列数,不指定的话是默认没有最小值的
maxvalue 最大的序列数,不指定的话是默认没有最大值的
increment by 步长数
nocache/cache 不缓存/缓存数
nocycle/cycle 不循环/循环数

--创建自增序列的触发器

create or replace trigger 触发器名
before|after insert update delete on 表名
for each row
  if :new.自增序列的字段名 is null then
          select 自增序列名.nextval into :new.自增序列的字段名 from dual;
  end if;
end;

下面对表的一些相关操作

--表的复制

--复制表的所有内容
create table 表名 as select * from 复制的表名;
--只复制表的字段,不复制数据
create table 表名 as select * from 复制的表名 where 1<>1;
--复制表的某些字段
create table 表名 as select 字段1,字段2,... from 复制的表名 
--只复制表的某些字段
create table 表名 as select 字段1,字段2,... from 复制的表名 where 1<>1 

--表的重命名

rename 旧表名 to 新表名

--表的删除

--删除整个表
drop table 表名 
--删除表,purge不可回滚
drop table 表名 purge
--删除表中数据
truncate table 表名 
delete from 表名
--根据条件删除表中的某些数据
delete from 表名 where 删除的条件

--添加表字段

--添加新的字段
alter table 表名 add (字段名1 字段类型,字段名2 字段类型)

--修改字段类型

--修改已有的字段类型
alter table 表名 modify (字段名 新的字段类型或新的字段长度)

--修改字段名

alter table 表名 rename column 旧字段名 to 新字段名

--删除表字段

alter table 表名 drop column列名

--添加表数据

insert into 表名(字段名1,字段名2,...) values(字段名1值,字段名2值)

--修改/更新表中数据

--更新
update 表名称 set 字段名1 = 值,字段名2 = 值,... where 更新的条件 
--基于另一个表进行更新
update 表名称 set (字段名1,字段名2,...)=(select 字段名1,字段名2,...from 表名 where 查询条件)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值